<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raymond</id>
	<title>Internet Computer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raymond"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/Raymond"/>
	<updated>2026-04-10T00:01:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Networking_Guide&amp;diff=7034</id>
		<title>Node Provider Networking Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Node_Provider_Networking_Guide&amp;diff=7034"/>
		<updated>2024-01-19T22:01:30Z</updated>

		<summary type="html">&lt;p&gt;Raymond: Make the ipv4 addresse count more concise&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide is designed to provide an overview of the networking requirements and guide Node Providers through setting up their servers into a rack with functioning networking.&lt;br /&gt;
&lt;br /&gt;
Configuring networks is not trivial. You should be familiar with IP networking, network equipment and network cabling.  &lt;br /&gt;
&lt;br /&gt;
Resources to learn about networking: &lt;br /&gt;
&lt;br /&gt;
* [https://learningnetwork.cisco.com/s/article/200-301-ccna-study-materials CCNA Study Materials]&lt;br /&gt;
* Kevin Wallace [https://www.youtube.com/@kwallaceccie YouTube Training Videos]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFINITY does not provide support for network configuration.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you hire technical assistance, keep decentralization and security in mind. Use a local technician you personally know and carefully monitor their work.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
To join your servers to the Internet Computer (IC) you will need:&lt;br /&gt;
&lt;br /&gt;
* 10G Network equipment&lt;br /&gt;
** [[wikipedia:Small_Form-factor_Pluggable|SFP+]] or [[wikipedia:10_Gigabit_Ethernet|Ethernet]]&lt;br /&gt;
** Switch(es)&lt;br /&gt;
** Cabling&lt;br /&gt;
** Quantity determined by number of nodes deployed&lt;br /&gt;
* Rackspace in a data center&lt;br /&gt;
* Internet connection&lt;br /&gt;
** Bandwidth&lt;br /&gt;
*** ~300Mbps per node&lt;br /&gt;
*** Ingress/egress ratio is currently 1:1. We expect egress (serving responses to client queries) to increase faster than ingress in the future.&lt;br /&gt;
*** This should guide how many servers to deploy and the appropriate ISP connection speed&lt;br /&gt;
*** E.g. a 1Gbps connection will support up to 3 IC nodes.&lt;br /&gt;
** One IPv6 /64 subnet - each node gets multiple IPv6 addresses&lt;br /&gt;
** One IPv4 address for every 4 nodes in a given data center per node provider (IPv4 addresses cannot be shared between node providers). See [[Node Provider Networking Guide#Appendix 1: Number of IPv4 Addresses Required|Appendix 1]] for table.&lt;br /&gt;
** &#039;&#039;&#039;All IP addresses are assigned statically&#039;&#039;&#039; and automatically by IC-OS&lt;br /&gt;
*** This is configured in the [[IC-OS Installation Runbook#6. Add configuration|IC-OS Installation Runbook]]&lt;br /&gt;
&lt;br /&gt;
== Network Cabling ==&lt;br /&gt;
When racking and stacking your servers, ensure the &#039;&#039;&#039;at least one 10G network port&#039;&#039;&#039; on each server is connected to the 10G switch. SFP+ and Ethernet are supported.&lt;br /&gt;
&lt;br /&gt;
[[File:Supermicro 1124US-TNRP 1U server rear photo diagram.png]]&lt;br /&gt;
&lt;br /&gt;
For example, on a Supermicro 1U server, the 10G ports are in a cluster as seen above. Vendors differ.  &lt;br /&gt;
&lt;br /&gt;
Connect the 10G switch to the ISP endpoint - this could be the Top Of Rack (TOR) switch or other box. &lt;br /&gt;
&lt;br /&gt;
== Network Configuration ==&lt;br /&gt;
Node machines require:&lt;br /&gt;
&lt;br /&gt;
* The ability to acquire a public static IPv6 address on a /64 subnet&lt;br /&gt;
* An IPv6 gateway to communicate with other nodes on the broad internet&lt;br /&gt;
* Unfiltered internet access&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One of every four nodes requires:&lt;br /&gt;
&lt;br /&gt;
* The ability to acquire a public static IPv4 address&lt;br /&gt;
* An IPv4 gateway to communicate with other nodes on the broad internet&lt;br /&gt;
* Unfiltered internet access&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are many many ways to configure the network and some details depend on the ISP and data center. Here are some [[Example Network Configuration Scenarios]]. &lt;br /&gt;
&lt;br /&gt;
See the [[Node Provider Networking Troubleshooting Guide]] for help. &lt;br /&gt;
&lt;br /&gt;
== BMC Setup Recommendations ==&lt;br /&gt;
&lt;br /&gt;
=== What’s a BMC? ===&lt;br /&gt;
The [[wikipedia:Intelligent_Platform_Management_Interface#Baseboard_management_controller|Baseboard Management Controller (BMC)]] grants control of the underlying server hardware.&lt;br /&gt;
&lt;br /&gt;
BMC’s have notoriously poor security. Vendors may name their implementation differently (Dell -&amp;gt; iDRAC, HPE -&amp;gt; iLO, etc.).&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&lt;br /&gt;
==== Change the password ====&lt;br /&gt;
BMC’s usually come with a common password. Log in via crash cart, KVM or the web interface and change it to something [https://krebsonsecurity.com/password-dos-and-donts/ strong].&lt;br /&gt;
&lt;br /&gt;
==== No broad internet access ====&lt;br /&gt;
It is highly recommended: &#039;&#039;&#039;do not expose your BMC&#039;&#039;&#039; to the broad internet. This is a safety precaution against attackers.&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
* Don’t connect the BMC to the internet.&lt;br /&gt;
** Maintenance or node recovery will require physical access in this case.&lt;br /&gt;
** Any BMC activities occur via SSH on the host (unreliable on many mainboard vendors) or via crash cart.&lt;br /&gt;
* Connect the BMC to a separate dumb switch, and the dumb switch connects to a Rack Mounted Unit (RMU).&lt;br /&gt;
* Connect the BMC to a managed switch, and create a separate VLAN&lt;br /&gt;
&lt;br /&gt;
This can get complicated. It’s outside the scope of this document to explain how to do this.&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
&lt;br /&gt;
* [https://security.stackexchange.com/questions/46351/best-practice-for-accessing-management-port-of-firewall StackExchange - Best practice for accessing management port of firewall]&lt;br /&gt;
* [https://www.supermicro.com/products/nfo/files/IPMI/Best_Practices_BMC_Security.pdf Supermicro Guidance]&lt;br /&gt;
* [https://www.unicomengineering.com/blog/ipmi-best-practices/ Unicom Guidance]&lt;br /&gt;
&lt;br /&gt;
== What NOT to do ==&lt;br /&gt;
&lt;br /&gt;
=== Don’t use external firewalls, packet filters, rate limiters ===&lt;br /&gt;
Don’t block or interfere with any traffic to the node machines. This can disrupt node machine functionality. Occasionally ports are opened for incoming (and outgoing) connections when new versions of node software are deployed. &lt;br /&gt;
&lt;br /&gt;
==== What about network security? ====&lt;br /&gt;
IC-OS manages its own software firewalls and rate limiters strictly and is designed with security as a primary principle. &lt;br /&gt;
&lt;br /&gt;
=== Don&#039;t configure the switch to use LACP bonding ===&lt;br /&gt;
This feature is on the roadmap for investigation but IC nodes do not support LACP bonding at the moment. Configuring it on the switch may cause problems with nodes.&lt;br /&gt;
&lt;br /&gt;
== How DFINITY manages its servers ==&lt;br /&gt;
See reference DFINITY [[Gen-2 Data Center runbook|data center runbook]].&lt;br /&gt;
&lt;br /&gt;
== Final Checklist ==&lt;br /&gt;
&lt;br /&gt;
* Did you deploy a 10G switch?&lt;br /&gt;
* Is at least &#039;&#039;&#039;one 10G port&#039;&#039;&#039; on each server plugged into the 10G switch?&lt;br /&gt;
* Do you have &#039;&#039;&#039;one IPv6 /64 prefix&#039;&#039;&#039; allocated from your ISP?&lt;br /&gt;
* Do you have at least &#039;&#039;&#039;one IPv4 address for every four nodes&#039;&#039;&#039; allocated?&lt;br /&gt;
* Does each node have ~300Mbps bandwidth? &lt;br /&gt;
* Is your &#039;&#039;&#039;BMC inaccessible&#039;&#039;&#039; from the broad internet?&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Gen-2 Network Requirements|Gen2 Network Requirements]] - more detailed, possibly out of date.&lt;br /&gt;
&lt;br /&gt;
== Appendix 1: Number of IPv4 Addresses Required ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;# Nodes&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;# IPv4 Addresses&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1 to 4&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|5 to 8&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|9 to 12&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|13 to 16&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|17 to 20&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|21 to 24&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|25 to 28&lt;br /&gt;
|7&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Raymond</name></author>
	</entry>
</feed>