使用open vswitch构建虚拟网络

三、使用open vswitch构建虚拟网络

1、构建物理机和物理机相互连接的网络

在安装open vswitch的主机上有两块网卡,分别为eth0、eth1,把这两块网卡挂接到open vswitch的网桥上,然后有两台物理机host1、host2分别连接到eth0和eth1上,实现这两台物理机的通信。构建结果图如下:


执行以下命令:

1
2
3
4
5
#ovs-vsctl add-br br0 //建立一个名为br0的open vswitch网桥
               
#ovs-vsctl add-port br0 eth0 //把eth0挂接到br0中
               
#ovs-vsctl add-port br0 eth1 //把eth1挂接到br0中

 

2、构建虚拟机与虚拟机相连的网络

在安装open vswitch的主机上安装两个虚拟机,把两个虚拟机的网卡都挂接在open vswitch的网桥上,实现两台虚拟机的通信,构建结果图如下:


执行以下命令:

# ovs-vsctl add-br br0 //建立一个名为br0的open vswitch网桥

如果使用vbox或virt-manager把bridge设置为br0即可,如果使用cli kvm则先创建两个文件,用于虚拟网卡的添加于删除。假设这两个文件分别为/etc/ovs-ifup和/etc/ovs-ifdown,则向这两个文件中写入以下内容

/etc/ovs-ifup

--------------------------------------------------------------------

1
2
3
4
5
6
7
8
9
#!/bin/sh
          
          
          
switch= 'br0'
          
/sbin/ifconfig $1 0.0.0.0 up
          
ovs-vsctl add-port ${switch} $1

--------------------------------------------------------------------

 

/etc/ovs-ifdown

--------------------------------------------------------------------

1
2
3
4
5
6
7
8
9
#!/bin/sh
         
         
         
switch= 'br0'
         
/sbin/ifconfig $1 0.0.0.0 down
         
ovs-vsctl del-port ${switch} $1

--------------------------------------------------------------------

使用以下命令建立虚拟机

1
2
3
4
5
6
7
8
9
10
11
kvm -m 512 -net nic,macaddr=00:11:22:33:44:55-net \
        
tap,script= /etc/ovs-ifup ,downscript= /etc/ovs-ifdown-drive \
        
file = /path/to/disk-image ,boot=on
        
kvm -m 512 -net nic,macaddr=11:22:33:44:55:66-net \
        
tap,script= /etc/ovs-ifup ,downscript= /etc/ovs-ifdown-drive \
        
file = /path/to/disk-image ,boot=on

3、构建虚拟机与物理机相连的网络

在装有open vswitch的主机上有一个物理网卡eth0,一台主机通过网线和eth0相连,在open vswitch的主机上还装有一台虚拟机,把此虚拟机和连接到eth0的主机挂接到同一个网桥上,实现两者之间的通信,构建结果图如下:

执行命令:

1
2
3
4
5
6
7
8
9
# ovs-vsctl add-br br0 //建立一个名为br0的open vswitch网桥
        
# ovs-vsctl add-port br0 eth0 //把eth0挂接到br0中
        
# kvm -m 512 -net nic,macaddr=00:11:22:33:44:55-net \
        
tap,script= /etc/ovs-ifup ,downscript= /etc/ovs-ifdown-drive \
        
file = /path/to/disk-image ,boot=on    //ovs-ifup 和ovs-ifdown和上一节中相同

 

4、构建网桥和网桥相连的网络

以上操作都是将多个主机(物理机或虚拟机)连接到同一个网桥上,实现它们之间的通信,但是要构建复杂的网络,就需要多个网桥,在装有open vswitch的主机上建立两个网桥,实现它们之间的连接,构建结果如下:

执行命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ovs-vsctl add-br br0    // 添加一个名为br0的网桥
       
ovs-vsctl add-br br1    // 添加一个名为br1的网桥
       
       
       
ovs-vsctl add-port br0 patch-to-br1    // 为br0添加一个虚拟端口
       
ovs-vsctl set interface patch-to-br1 type =patch      //把patch-to-br1的类型设置为patch
       
ovs-vsctl set interface patch-to-br1 options:peer=patch-to-br0    
//把对端网桥和此网桥连接的端口名称设置为patch-to-br0
       
       
       
ovs-vsctl add-port br1 patch-to-br0    // 为br1添加一个虚拟端口
       
ovs-vsctl set interface patch-to-br0 type =patch      // 把patch-to-br0的类型设置为patch
       
ovs-vsctl set interface patch-to-br0 options:peer=patch-to-br1     // 把对端网桥和此网桥连接的端口名称设置为patch-to-br1

 

ovs-vsctl set interface patch-to-br0type=patch 和ovs-vsctl set interface patch-to-br0 options:peer=patch-to-br1是对ovs-database的操作,有有兴趣的同学可以参考ovs-vswitchd.conf.db.5

5、在不同的主机之间构建网桥之间的连接

在两台机器上分别安装上open vswitch并创建网桥,分别为两个网桥添加物理网卡,然后通过网线连接两个网桥,实现两个网桥之间的互通。构建结果图如下:

执行命令:

 

host1

----------------------------------------------------------

1
2
3
#ovs-vsctl add-br br0             //添加名为br0的网桥
      
#ovs-vsctl add-port br0 eth0       //把eth0挂接到br0上

 

host2

----------------------------------------------------------

1
2
3
#ovs-vsctl add-br br0             //添加名为br0的网桥
      
#ovs-vsctl add-port br0 eth0       //把eth0挂接到br0上

 

然后使用网线把host1的eth0和host2的eth0相连即可。

 

使用上边五种方法的组合就可以构建出各种复杂的网络,为各种实验提供网络的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值