<?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=Networking_in_Xen_4.x</id>
	<title>Networking in Xen 4.x - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://alteeve.com/w/index.php?action=history&amp;feed=atom&amp;title=Networking_in_Xen_4.x"/>
	<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Networking_in_Xen_4.x&amp;action=history"/>
	<updated>2026-05-06T03:55: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=Networking_in_Xen_4.x&amp;diff=2166&amp;oldid=prev</id>
		<title>Digimer: Created page with &#039;{{howto_header}}  This section is based on [http://wiki.xensource.com/xenwiki/XenNetworking this] link, which is fairly old. I am trying to sort out what exactly has changed in X…&#039;</title>
		<link rel="alternate" type="text/html" href="https://alteeve.com/w/index.php?title=Networking_in_Xen_4.x&amp;diff=2166&amp;oldid=prev"/>
		<updated>2010-09-19T22:46:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;{{howto_header}}  This section is based on [http://wiki.xensource.com/xenwiki/XenNetworking this] link, which is fairly old. I am trying to sort out what exactly has changed in X…&amp;#039;&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;
This section is based on [http://wiki.xensource.com/xenwiki/XenNetworking this] link, which is fairly old. I am trying to sort out what exactly has changed in Xen 4.0 and may not have all the details right. Please feel free to jump in and make changes if you see a mistake or a place that could be improved.&lt;br /&gt;
&lt;br /&gt;
= Definitions =&lt;br /&gt;
&lt;br /&gt;
== dom0 ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;real&amp;quot; OS on a Xen server is not real at all, but in fact just another virtual machine with special access to the hardware. This first virtual machine is known as &amp;#039;&amp;#039;&amp;#039;dom0&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== domU ==&lt;br /&gt;
&lt;br /&gt;
Any virtual machines created on a Xen server &amp;#039;&amp;#039;other&amp;#039;&amp;#039; than the special &amp;#039;&amp;#039;&amp;#039;dom0&amp;#039;&amp;#039;&amp;#039; is called a &amp;#039;&amp;#039;&amp;#039;domU&amp;#039;&amp;#039;&amp;#039; server. Generally this is used in documentation to describe any particular virtual machine. When a specific virtual machine is to be referenced, it is called &amp;#039;&amp;#039;&amp;#039;dom1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;dom2&amp;#039;&amp;#039;&amp;#039;, ..., &amp;#039;&amp;#039;&amp;#039;domN&amp;#039;&amp;#039;&amp;#039;. The number of the virtual machine is important as it relates to the underlying network setup. The given number is not user assignable, but is set when the virtual machine is created. Please note that, even if a virtual machine is destroyed, it&amp;#039;s number is not recycled. Thus, you may well have something like &amp;#039;dom0&amp;#039;, &amp;#039;dom1&amp;#039;, &amp;#039;dom3&amp;#039;, &amp;#039;dom5&amp;#039; if, at some point, you created a &amp;#039;dom2&amp;#039; and &amp;#039;dom4&amp;#039; and then destroyed them.&lt;br /&gt;
&lt;br /&gt;
== ethX ==&lt;br /&gt;
&lt;br /&gt;
Normally, this is the name of a &amp;quot;main&amp;quot; ethernet device. However, under Xen, this does &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NOT&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; reflect the real hardware once the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;xend&amp;lt;/span&amp;gt; daemon has started!&lt;br /&gt;
&lt;br /&gt;
Under Xen, what &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt;&amp;#039; refers to depends on where you are. Under &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;span&amp;gt;, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt;&amp;#039; is a virtual ethernet device which has a copy of the real ethernet device&amp;#039;s MAC and IP addresses. On &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt;, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt;&amp;#039; is a virtual ethernet device connecting to a matching &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vifX.Y&amp;lt;/span&amp;gt; device created on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; by Xen when &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt; was started. See the &amp;#039;&amp;#039;&amp;#039;vifX.Y&amp;#039;&amp;#039;&amp;#039; definition below.&lt;br /&gt;
&lt;br /&gt;
If you followed the HowTo on creating a [[https://alteeve.com/index.php/Two_Node_Fedora_13_Cluster_-_Xen-Based_Virtual_Machine_Host_on_DRBD%2BCLVM|Two Node Xen cluster on Fedora 13]], then &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; also acts as the bridge.&lt;br /&gt;
&lt;br /&gt;
Replace &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;#039; in &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt;&amp;#039; with a number reflecting a given ethernet device. For example, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;&amp;#039; is the first ethernet device, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt;&amp;#039; the second and so on.&lt;br /&gt;
&lt;br /&gt;
== pethX ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;pethX&amp;lt;/span&amp;gt; device(s) exist only on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
When &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;xend&amp;lt;/span&amp;gt; starts, it renames the &amp;quot;real&amp;quot; &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt;&amp;#039; to &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;pethX&amp;lt;/span&amp;gt;&amp;#039; in order to create a virtual copy of it. This is done to facilitate bridging and routing. So then, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;pethX&amp;lt;/span&amp;gt; devices are in fact the interfaces to the real hardware ethernet devices.&lt;br /&gt;
&lt;br /&gt;
Replace &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;#039; in &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;pethX&amp;lt;/span&amp;gt;&amp;#039; with a number reflecting a given ethernet device. For example, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;peth0&amp;lt;/span&amp;gt;&amp;#039; is the first ethernet device, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;peth1&amp;lt;/span&amp;gt;&amp;#039; the second and so on.&lt;br /&gt;
&lt;br /&gt;
== vethX ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vethX&amp;lt;/span&amp;gt; device(s) exist only on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; and only for a short time during &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;xend&amp;lt;/span&amp;gt; startup. &lt;br /&gt;
&lt;br /&gt;
During the Xen startup process, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; is brought down and it&amp;#039;s MAC and IP addresses are copied to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vethX&amp;lt;/span&amp;gt;. Once done, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; is renamed to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;pethX&amp;lt;/span&amp;gt; to move it out of the way. Then &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vethX&amp;lt;/span&amp;gt; is renamed to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; to take the place of the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;pethX&amp;lt;/span&amp;gt; interface. As such, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vethX&amp;lt;/span&amp;gt; devices exist for only a short time. You should never need to worry about or factor in these devices into your networking plans.&lt;br /&gt;
&lt;br /&gt;
Replace &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;#039; in &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vethX&amp;lt;/span&amp;gt;&amp;#039; with a number reflecting a given virtual ethernet device. For example, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;veth0&amp;lt;/span&amp;gt;&amp;#039; is the first virtual ethernet device, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;veth1&amp;lt;/span&amp;gt;&amp;#039; the second and so on.&lt;br /&gt;
&lt;br /&gt;
== vifX.Y ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vifX.Y&amp;lt;/span&amp;gt; devices exist only on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;; in this section, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;#039; matches the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt; number, &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;&amp;#039; matches a given &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; device on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; and &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Z&amp;lt;/span&amp;gt;&amp;#039; matches a given &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; device inside a &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt;. I know this is a little odd, but you need to get this clear in order to see how things connect here.&lt;br /&gt;
&lt;br /&gt;
These are Xen&amp;#039;s virtual interfaces used to connect an &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; device on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; to a &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;pethZ&amp;lt;/span&amp;gt; device on a &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt;. Please be aware that there need not be any correlation between &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt;! This is why &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;#039; and &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Z&amp;lt;/span&amp;gt;&amp;#039; are used separately here.&lt;br /&gt;
&lt;br /&gt;
Specifically, when Xen starts a &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt;, that virtual machine&amp;#039;s ID# plus a given &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; device number are used to create one or more virtual interfaces inside &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt;. For example, if you want to connect &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom4&amp;lt;/span&amp;gt;, you will do so via &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;vif4.0&amp;lt;/span&amp;gt; where &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;4&amp;lt;/span&amp;gt;&amp;#039; matches the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt; ID# and &amp;#039;&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;&amp;#039; matches the ethernet device number in &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt;. The actual routing goes through &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;xenbr0&amp;lt;/span&amp;gt;. If this is still confusing, take a look at the network map below.&lt;br /&gt;
&lt;br /&gt;
== virbrX ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;virbrX&amp;lt;/span&amp;gt; device(s) exist only on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Xen uses software bridges to route traffic within it&amp;#039;s virtual network. These can be thought of as a &amp;quot;switch&amp;quot; your would find in any normal network. They serve to connect a given ethernet device on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt; to a given ethernet device in a &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt; virtual machine. A different bridge is created for each &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; device on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom0&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you followed the HowTo on creating a [[https://alteeve.com/index.php/Two_Node_Fedora_13_Cluster_-_Xen-Based_Virtual_Machine_Host_on_DRBD%2BCLVM|Two Node Xen cluster on Fedora 13]], then &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;virbrX&amp;lt;/span&amp;gt; is not used. Instead, the virtual &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;ethX&amp;lt;/span&amp;gt; also acts as the bridge.&lt;br /&gt;
&lt;br /&gt;
== Network Map - Putting it all together ==&lt;br /&gt;
&lt;br /&gt;
This map is a sample of a four-[[VM]] setup in a single Xen host. You will notice that &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth1&amp;lt;/span&amp;gt; is not connected to any &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;domU&amp;lt;/span&amp;gt;&amp;#039;s because, in this case, it is used for the DRBD channel. All virtual machines have a connection to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt; because that is the virtual machine network&amp;#039;s &amp;quot;back channel&amp;quot;. In practice, there is no internet connection on &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth0&amp;lt;/span&amp;gt;, and thus on the &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;xenbr0&amp;lt;/span&amp;gt; bridge, except through the firewall, &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom1&amp;lt;/span&amp;gt;. The &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;dom6&amp;lt;/span&amp;gt; shows a link to &amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;eth2&amp;lt;/span&amp;gt;, which would give it a direct connection to the Internet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  _________________________________________________________&lt;br /&gt;
 | dom0                                   _______________  |&lt;br /&gt;
 |_______    _______                     |______    dom1 | |&lt;br /&gt;
 = peth0 |=-| eth0  |-----------[vif1.0]-= eth0 |        | |&lt;br /&gt;
 |-______|  |       |---------\          |-_____|        | |&lt;br /&gt;
 |          |   B   |-------\ |          |               | |&lt;br /&gt;
 |          |   r   |-----\ | |          |______         | |&lt;br /&gt;
 |          |   i   |   /-+-+-+-[viv1.2]-= eth1 |        | |&lt;br /&gt;
 |          |   d   |   | | | |          |-_____|        | |&lt;br /&gt;
 |          |   g   |   | | | |          |_______________| |&lt;br /&gt;
 |          |   e   |   | | | |                            |&lt;br /&gt;
 |          |_______|   | | | |           _______________  |&lt;br /&gt;
 |_______    _______    | | | |          |______    dom2 | |&lt;br /&gt;
 = peth1 |=-| eth1  |   | | | \-[viv2.0]-= eth0 |        | |&lt;br /&gt;
 |-______|  |       |   | | |            |-_____|        | |&lt;br /&gt;
 |          |   B   |   | | |            |               | |&lt;br /&gt;
 |          |   r   |   | | |            |               | |&lt;br /&gt;
 |          |   i   |   | | |            |               | |&lt;br /&gt;
 |          |   d   |   | | |            |               | |&lt;br /&gt;
 |          |   g   |   | | |            |_______________| |&lt;br /&gt;
 |          |   e   |   | | |             _______________  |&lt;br /&gt;
 |          |_______|   | | |            |______    dom4 | |&lt;br /&gt;
 |           _______    | | \---[viv4.0]-= eth0 |        | |&lt;br /&gt;
 |_______   | eth2  |---/ |              |-_____|        | |&lt;br /&gt;
 = peth2 |=-|       |---\ |              |               | |&lt;br /&gt;
 |-______|  |   B   |   | |              |               | |&lt;br /&gt;
 |          |   r   |   | |              |               | |&lt;br /&gt;
 |          |   i   |   | |              |               | |&lt;br /&gt;
 |          |   d   |   | |              |_______________| |&lt;br /&gt;
 |          |   g   |   | |               _______________  |&lt;br /&gt;
 |          |   e   |   | |              |______    dom6 | |&lt;br /&gt;
 |          |_______|   | \-----[viv6.0]-= eth0 |        | |&lt;br /&gt;
 |                      |                |-_____|        | |&lt;br /&gt;
 |                      |                |               | |&lt;br /&gt;
 |                      |                |______         | |&lt;br /&gt;
 |                      \-------[viv6.2]-= eth1 |        | |&lt;br /&gt;
 |                                       |-_____|        | |&lt;br /&gt;
 |                                       |               | |&lt;br /&gt;
 |                                       |_______________| |&lt;br /&gt;
 |_________________________________________________________|&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Real World Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: These have not been updated for Xen 4.0 yet.&lt;br /&gt;
&lt;br /&gt;
[[Sample Xen 2-node Cluster Network Map|This]] is one an example of networking inside a two node cluster.&lt;br /&gt;
&lt;br /&gt;
[[File:SampleXen2NodeClusterMap.png|1238px|Map of a Sample 2-node Cluster]]&lt;br /&gt;
&lt;br /&gt;
{{footer}}&lt;/div&gt;</summary>
		<author><name>Digimer</name></author>
	</entry>
</feed>