<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://alteeve.com/w/index.php?action=history&amp;feed=atom&amp;title=Anvil%21_Networking</id>
	<title>Anvil! Networking - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://alteeve.com/w/index.php?action=history&amp;feed=atom&amp;title=Anvil%21_Networking"/>
	<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Anvil!_Networking&amp;action=history"/>
	<updated>2026-06-09T20:49:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://alteeve.com/w/index.php?title=Anvil!_Networking&amp;diff=7331&amp;oldid=prev</id>
		<title>Digimer: Created page with &quot;{{howto_header}}  The Anvil! Cluster implements four main network types, each of which there could be one or more of.   = Anvil! Networks =  {| class=&quot;wikitable&quot; !style=&quot;white-space:nowrap; text-align:center;&quot;|Network Name !style=&quot;white-space:nowrap; text-align:center;&quot;|Prefix !style=&quot;white-space:nowrap; text-align:center;&quot;|Subnet !style=&quot;white-space:nowrap; text-align:center;&quot;|Used By !style=&quot;white-space:nowrap; text-align:center;&quot;|Description |- !style=&quot;white-space...&quot;</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Anvil!_Networking&amp;diff=7331&amp;oldid=prev"/>
		<updated>2023-10-22T16:17:26Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{howto_header}}  The &lt;a href=&quot;/w/index.php?title=Anvil!_Cluster&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Anvil! Cluster (page does not exist)&quot;&gt;Anvil! Cluster&lt;/a&gt; implements four main network types, each of which there could be one or more of.   = Anvil! Networks =  {| class=&amp;quot;wikitable&amp;quot; !style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Network Name !style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Prefix !style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Subnet !style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Used By !style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Description |- !style=&amp;quot;white-space...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Páàjì titun&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{howto_header}}&lt;br /&gt;
&lt;br /&gt;
The [[Anvil! Cluster]] implements four main network types, each of which there could be one or more of. &lt;br /&gt;
&lt;br /&gt;
= Anvil! Networks =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Network Name&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Prefix&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Subnet&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Used By&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:left;&amp;quot;|Back-Channel Network&lt;br /&gt;
|BCN&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.20{x}/16&amp;lt;/span&amp;gt;&lt;br /&gt;
|All Machines&lt;br /&gt;
|The BCN is used for cluster communications and monitoring of [[foundation pack]] equipment. &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:left;&amp;quot;|Internet-Facing Network&lt;br /&gt;
|IFN&lt;br /&gt;
|class=&amp;quot;span&amp;quot;; style=&amp;quot;text-align:center;&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;user defined&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|All Machines&lt;br /&gt;
|The IFN is the connection between the servers hosted on the Anvil! and the user&amp;#039;s main network. The subnet of this network is, therefor, defined by you.&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:left;&amp;quot;|Storage Network&lt;br /&gt;
|SN&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.10{x}/16&amp;lt;/span&amp;gt;&lt;br /&gt;
|Nodes, some DR&lt;br /&gt;
|The SN is used for storage replication and nothing else. This is often connected back to back between [[subnodes]] in an Anvil! node. When connecting to a DR host&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:left;&amp;quot;|Migration Network&lt;br /&gt;
|MN&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;|&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.199/16&amp;lt;/span&amp;gt;&lt;br /&gt;
|Nodes&lt;br /&gt;
|The MN is an &amp;#039;&amp;#039;optional&amp;#039;&amp;#039; back-to-back network link used between subnodes. When this network is available, when a hosted server live-migrates, the contents of the server&amp;#039;s RAM is copied over this dedicated network. When this network is not available, RAM copy happens over the BCN (which, in some high load cases, could cause contention). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Back-Channel Network ==&lt;br /&gt;
&lt;br /&gt;
Back-Channel Networks are the primary networks used by the various Anvil! cluster machines. Examples;&lt;br /&gt;
&lt;br /&gt;
* Commands from the Striker dashboard are transmitted to the nodes and DR hosts via the BCN.&lt;br /&gt;
* [[Scancore]] used the BCN to communicate with [[UPS]]es, [[PDU]]s, [[IPMI]] out-of-band management interfaces, etc.&lt;br /&gt;
* Servers being live-migrated between subnodes, when the [[MN]] is not available, copies over the BCN&lt;br /&gt;
&lt;br /&gt;
Most clusters have a single BCN, which uses the subnet &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.201/16&amp;lt;/span&amp;gt;. If there&amp;#039;s need for a second BCN, it would be &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.202/16&amp;lt;/span&amp;gt;, and so forth, with the third digit of the second octet matching the network&amp;#039;s sequence number (ie: BCN1 uses &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.201.x.y&amp;lt;/span&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
=== Device IP Addresses ===&lt;br /&gt;
&lt;br /&gt;
{{note|1=The IPs assigned to devices on the BCN match how IPs are assigned on other networks. The way IPs are assigned will be discussed in detail here.}}&lt;br /&gt;
&lt;br /&gt;
In the BCN, SN and MN, the third octet of the IP indicates the device type, and the fourth octet defines the sequence number. The third octet will be between &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;1~9&amp;lt;/span&amp;gt; for Strikers and foundation pack devices. The third octet of &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10&amp;lt;/span&amp;gt; and higher is assigned to nodes and DR hosts. &lt;br /&gt;
&lt;br /&gt;
Lets lay this out in a table so that it makes more sense. For this example, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.201/16&amp;lt;/span&amp;gt; will be used as we&amp;#039;re in the BCN section. Note that, where applicable, the same third and fourth octets will be used for the SN and MN also.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Device&lt;br /&gt;
!Third Octet&lt;br /&gt;
!Example (first device)&lt;br /&gt;
|-&lt;br /&gt;
|Ethernet Switches&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|1&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|Switched [[PDU]]&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|2&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|Managed [[UPS]]&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|3&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|Striker Dashboard&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|4&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|Striker [[IPMI]]&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|5&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The octets &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;6&amp;lt;/span&amp;gt; through &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;9&amp;lt;/span&amp;gt; are not yet assigned to any device type.&lt;br /&gt;
&lt;br /&gt;
Anvil! [[nodes]] start with the octet &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10&amp;lt;/span&amp;gt; for node 1, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt; for node 2, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;14&amp;lt;/span&amp;gt; for node 3, and so on. The reason for jumping by two is to allow for the next octet up to be used by the subnode&amp;#039;s IPMI interface. Lets look at an example;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Node&lt;br /&gt;
!Subnode&lt;br /&gt;
!BCN 1 - IP&lt;br /&gt;
!IPMI - IP&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 1 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-01&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a01n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a01n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 2 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-02&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a02n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;13&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a02n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;13&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 3 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-03&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;15&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;15&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 4 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-04&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a04n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;17&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;17&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 5 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-05&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a05n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;19&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a05n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;19&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{note|1=Generally, [[DR Hosts]] are assigned to a node, matching its hardware. This isn&amp;#039;t required, a DR host can protect servers from multiple nodes, but the IP assignment is based around peering DR hosts to nodes. As such, DR hosts have host names and IPs that link them to a node. If you plan to use a DR host for multiple nodes, you can connect it to which ever node you like. The naming and IPs are not used to enforce any actual linkages.}}&lt;br /&gt;
&lt;br /&gt;
With the above note said, we&amp;#039;ll show an example where there is a DR host per node.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Node&lt;br /&gt;
!DR Host&lt;br /&gt;
!BCN 1 - IP&lt;br /&gt;
!IPMI - IP&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-anvil-01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a01dr01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-anvil-02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a02dr01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;13&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-anvil-03&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03dr01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;15&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-anvil-04&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a04dr01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;17&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-anvil-05&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a05dr01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.201.&amp;#039;&amp;#039;&amp;#039;19&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you wanted to link additional DR hosts to a given node, you can do so by setting the fourth octet to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt;, etc. &lt;br /&gt;
&lt;br /&gt;
== Internet-Facing Network ==&lt;br /&gt;
&lt;br /&gt;
This is the network used to connect machines in the Anvil! cluster to your network. For fully-offline installations, this could better be called the &amp;#039;&amp;#039;&amp;#039;Intranet-Facing Network&amp;#039;&amp;#039;&amp;#039;, but either way, &amp;#039;&amp;#039;&amp;#039;IFN&amp;#039;&amp;#039;&amp;#039; is an accurate acronym. &lt;br /&gt;
&lt;br /&gt;
The IFN is used for all traffic going into and out of the servers hosted on the Anvil! node(s). It is also the network used to connect to the Striker Dashboard&amp;#039;s web interface, using to manage the Anvil! cluster. Lastly, when needed, it is usually the network used by [[Alteeve]] (with a support contract) to connect into the Anvil! cluster to provide support. Beyond this, the Anvil! does all it can to minimize it&amp;#039;s use of the IFN, reserving as much bandwidth as possible for the hosted servers.&lt;br /&gt;
&lt;br /&gt;
When the IFN is not yet defined, we recommend that the same method of using the third octet to identify the device type, and the fourth octet to define the device sequence number. Understandably though, this is rarely possible. As such, it is up to you to decide how IPs on the IFN are allocated to the various machines in the cluster.&lt;br /&gt;
&lt;br /&gt;
== Storage Network ==&lt;br /&gt;
&lt;br /&gt;
Storage in an Anvil! node is kept synchronously replicated between the two subnodes over a dedicated network connection. This replication traffic uses the dedicated &amp;#039;&amp;#039;&amp;#039;Storage Network&amp;#039;&amp;#039;&amp;#039;, and nothing else uses that network to ensure minimum latency and maximum bandwidth. &lt;br /&gt;
&lt;br /&gt;
This works by capturing the incoming write to storage from the guest server, and sending a copy to the peer subnode. When the data reaches persistent storage (or protected cache, like flash-backed write cache), the server&amp;#039;s storage driver is told that the right is complete. This way, if the active subnode is destroyed without warning, the server will reboot on the surviving subnode, and recover just as is it was a normal server that lost power. &lt;br /&gt;
&lt;br /&gt;
The storage network can be run through a switch, or it can be back-to-back connection between the subnodes. The subnet is &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.10x&amp;lt;/span&amp;gt;, where &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&amp;#039; indicates the specific storage network. In almost all installations, there is only one storage network, and so the subnet is usually &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.101/16&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The storage network can be used for replication to [[DR hosts]], but it isn&amp;#039;t required. When switching infrastructure is fast enough, running the SN through switches will allow the DR&amp;#039;s storage network connection to receive the replication data on that dedicated network. However, given DR hosts are usually outside the local location, it&amp;#039;s not often possible for this to be done. So in most cases, the storage network is connected back-to-back in the nodes, and the DR replication traffic will be sent over the BCN (or IFN, if that&amp;#039;s the only available link).&lt;br /&gt;
&lt;br /&gt;
=== Device IP Addresses ===&lt;br /&gt;
&lt;br /&gt;
The IP addresses used on the &amp;#039;&amp;#039;&amp;#039;SN&amp;#039;&amp;#039;&amp;#039; match the &amp;#039;&amp;#039;&amp;#039;BCN&amp;#039;&amp;#039;&amp;#039; IPs, save for the different subnet (ie: &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.201.10.1&amp;lt;/span&amp;gt; on the BCN 1, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.101.10.1&amp;lt;/span&amp;gt; on the SN 1). &lt;br /&gt;
&lt;br /&gt;
Given that there is no IPMI on the storage network, the third octet indicating the node simply jumps by two. For example;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Node&lt;br /&gt;
!Subnode&lt;br /&gt;
!SN 1 - IP&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 1 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-01&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a01n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a01n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 2 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-02&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a02n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a02n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 3 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-03&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 4 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-04&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a04n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 5 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-05&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a05n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a05n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.101.&amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Migration Network ==&lt;br /&gt;
&lt;br /&gt;
When the Anvil! determines that the active host for a server is degraded, or when an operator chooses to move a server for any reason, a frozen clone of the server is created on the peer subnode. The RAM, actively in use, starts to be copied over to the frozen copy of the server. This is the process that determines how long a live migration will take to complete. &lt;br /&gt;
&lt;br /&gt;
Without a migration network, the RAM copy is done over the BCN. However, the BCN must go through a switch, and that often sets a limit on the bandwidth available, both because of the cost of higher speed switches, and also because of competing with other network traffic. &lt;br /&gt;
&lt;br /&gt;
The migration network is an optional network used exclusively for copying the RAM of running servers during live migration. This is almost always run back-to-back between the subnodes in an Anvil! node, and it is not used for any other purpose. As such, a migration network can greatly reduce the time for live migrations to complete. &lt;br /&gt;
&lt;br /&gt;
=== Subnode IP Assignement ===&lt;br /&gt;
&lt;br /&gt;
Given that nothing else uses the MN, there is no reason for a second MN to exist. So the subnet is almost always &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;10.199/16&amp;lt;/span&amp;gt;. As above, the third and fourth octets indicate the node and subnode sequence. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;white-space:nowrap; text-align:center;&amp;quot;|Node&lt;br /&gt;
!Subnode&lt;br /&gt;
!MN 1 - IP&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 1 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-01&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a01n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a01n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 2 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-02&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a02n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a02n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;12&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 3 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-03&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;14&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 4 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-04&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a04n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a03n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Node 5 (&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;an-anvil-05&amp;lt;/span&amp;gt;)&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a05n01&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|an-a05n02&lt;br /&gt;
|class=&amp;quot;code&amp;quot;|10.199.&amp;#039;&amp;#039;&amp;#039;18&amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Network Interface Types =&lt;br /&gt;
&lt;br /&gt;
In the Anvil!, there are three types of network types. &lt;br /&gt;
&lt;br /&gt;
== Interfaces ==&lt;br /&gt;
&lt;br /&gt;
A network interface is a single, traditional network interface. Specifically, an &amp;#039;&amp;#039;&amp;#039;interface&amp;#039;&amp;#039;&amp;#039; is a physical connection to a specific port on a switch, or another machine. &lt;br /&gt;
&lt;br /&gt;
== Bonds ==&lt;br /&gt;
&lt;br /&gt;
A bonded interface is a virtual interface, made up using two physical network interfaces. The two real interfaces are &amp;quot;bonded&amp;quot; together to function as a single interface, but with the benefit of fault tolerance. If the active interface fails, the backup interface will take over extremely quickly, preventing any connections from being dropped or interrupted.&lt;br /&gt;
&lt;br /&gt;
More specifically, the Anvil! uses &amp;quot;[https://www.ibm.com/docs/ja/linux-on-systems?topic=recommendations-bonding-modes mode=1 (active-backup)]&amp;quot; bonds. This bonding mode provides the fastest fault-detection and recovery out of all the available bonding modes in Linux. &lt;br /&gt;
&lt;br /&gt;
Note that it is the only mode that does &amp;#039;&amp;#039;NOT&amp;#039;&amp;#039; aggregate bandwidth. That is to say, bonding two 10 Gbps interfaces results in a bonded interface that runs at 10 Gbps, &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; 20 Gbps. The reason for this is primarily the speed of fault detection and recovery, but also to ensure consistent performance in a fault condition. &lt;br /&gt;
&lt;br /&gt;
As a principle of [[Intelligent Availability]]; If 10 Gbps (in this example) is not fast enough for normal operation, then faster interfaces should be used. If 10 Gbps is fast enough, then there&amp;#039;s no reason to aggregate the bandwidth to 20 Gbps (which would fall to 10 Gbps on link failure). &lt;br /&gt;
&lt;br /&gt;
== Bridges ==&lt;br /&gt;
&lt;br /&gt;
A bridge is a virtual &amp;quot;ethernet switch&amp;quot;. A bridged interface (which can connect to a bond or simple interface) acts as a &amp;quot;bridge&amp;quot; between hosted servers and the outside network. &lt;br /&gt;
&lt;br /&gt;
Each server will have one (or more) virtual network interfaces. These interfaces, outside the server, needs to &amp;quot;plug into&amp;quot; a switch. Being that the servers are virtual, this connection is done using a special &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vnetX&amp;lt;/span&amp;gt; interface that is created when the server boots, and is deleted when the server migrates or shuts off. This transient &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vnetX&amp;lt;/span&amp;gt; device acts like a network cable, and &amp;quot;plugs into&amp;quot; a bridge.&lt;br /&gt;
&lt;br /&gt;
The bridge itself connects to the outside world, almost always via a bridge interface, which in turn sends and receives data on the active interface to the outside world. &lt;br /&gt;
&lt;br /&gt;
By default, all servers created on the Anvil! nodes have a single network interface connected to the &amp;#039;&amp;#039;Internet-Facing Network&amp;#039;&amp;#039; bridge. Optionally, an operator could add a second interface to connect to the &amp;#039;&amp;#039;Back-Channel Network&amp;#039;&amp;#039; if desired, or simply move the existing interface off of the IFN bridge over to the BCN bridge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Digimer</name></author>
	</entry>
</feed>