Adding Linux VLAN and bridge interfaces using libvirt

Always wanted to now how to add interfaces (VLANs or bridges) to your Linux hypervisor without dealing with the distribution specific network configuration to serve guest networks ?

Just use libvirt or its command line tool virsh to accomplish this tutorial.

First create a XML file containing your physical network layout. In this example I have a bonded Ethernet interface (bond0) and create a new Ethernet interface bond0.10 which tags the Ethernet traffic to VLAN ID 10. It is just a arbitrary number in this example but I always suggest to tag all VM guest traffic using a bridge. Ideally those bridges are running on top a bonding interface which is sometimes called teaming. Using the Linux bonding driver you can aggregate multiple interfaces to a logical interfaces which can enhance bandwidth. Your switch should support IEEE 802.3AD aggregation protocols like LACP otherwise I recommend to use active-passive bonding to enhance reliability against NIC or switch failures.

<interface type='bridge' name='br10'> 
  <start mode='onboot'/> 
  <bridge> 
    <interface type='vlan' name='bond0.10'> 
      <vlan tag='10'> 
        <interface name='bond0'/> 
      </vlan> 
    </interface> 
  </bridge> 
</interface>


 

Finally create your libvirt/Linux interface

sudo virsh iface-define br10.xml
sudo virsh iface-start br10

Now adding a libvirt network using this XML file. I just create a network called vlan10 and connect it to the previous created bridge.

<network connections='1'>
 <name>vlan10</name>
 <forward mode='bridge'/>
 <bridge name='br10' />
</network>

Time to assemble your libvirt network.

sudo virsh net-define vlan10.xml
sudo virsh net-start vlan10
sudo virsh net-autostart vlan10

If everything is done right just check it using virsh again :

virsh # iface-list
Name State MAC Address
--------------------------------------------
bond0 active 00:1d:09:70:a5:a2
br10 active 00:1d:09:70:a5:a2
lo active 00:00:00:00:00:00

virsh # net-list

Name State Autostart Persistent
-------------------------------------------------
default active yes yes
vlan10 active yes yes


 

virsh # net-info vlan10
Name vlan10
UUID a19fa2be-161a-f7cc-a776-e645a990eee2
Active: yes
Persistent: yes
Autostart: yes
Bridge: br10

For the RedHat or CentOS guys who want to know how bonding interfaces can be created, just add the file  ifcfg-bond0 (the number must be incremented with every new interface)

DEVICE=bond0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"



Finally assign multiple Ethernet interfaces, at least one for mode 1 (active-passive), to this bonding device by adding the following lines in each ifcfg-ethX file:

SLAVE="yes"
MASTER="bond0"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值