在一台机器上建立一个虚拟机的网络

目标就是在一台物理机上运行>=2个的虚拟机,每一个虚拟机中都运行openvswitch或是直接用brctl-utils工具。

在每一个虚拟机中再起若干个ttylinux虚拟机,这样就可以组成了一个网络,由多个bridge组成。

虚拟机用qemu来创建。实现这个环境的难点就在于多个网卡的创建,并能正确的工作,经过摸索和搜索资料,终于知道了如何让NICs正常工作了。

创建两个网卡很简单:qemu ... -net nic -net tap,ifname=tap0 -net nic -net tap,ifname=tap1

然后将tap0,tap1加到bridge上去,我试过将它们分别加到不同的bridge上去,当然这些bridge都是在同一台物理主机上的,但是仍然不可以,会发现这种现象:ping一次后发现网络中不断的看到arp消息,似乎永无止境。

最后的解决办法就是加vlan:

qemu .. -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 -net nic,vlan=1 -net tap,vlan=1,ifname=tap1

将tap0和tap1加入到相同的bridge上都不会有问题。


用上面的办法在物理机上创建两个虚拟机, VM1,VM2,对应的tap为:

tap10,tap11

tap20,tap21

将它们加入bridge.

brctl addif br0 tap10

brctl addif br0 tap11

brctl addif br0 tap20

brctl addif br0 tap21

当然可以用脚本的方式来自动将tap加入到bridge中:-net tap,script=./up.sh

在VM1中再创建一个bridge:br01

VM1中有两个网卡 :eth0,eth1

eth0是用VM之间进行通信的,eth1是用来接入 br01的。

brctl addif br01 eth1

在 VM1中再创建两个虚拟机 :ttyvm11,ttyvm12,对应的 tap为:tap101,tap102.将tap加入bridge:

brctl addif br01 tap101

brctl addif br01 tap102

对于VM2按照 VM1的方式也创建两个虚拟机:ttyvm21,ttyvm22....


假设ttyvm11的ip为:1.1.1.2

     ttyvm21的ip为:1.1.1.3

那么现在ttyvm11应该是可以ping通ttyvm21了。

利用这种方式就可以在一台机器上来搭建测试多ovs 运行的状况了。


你可能感兴趣的:(在一台机器上建立一个虚拟机的网络)