设置网络接口设备的类型为“internal”。对于 internal 类型的的网络接口,OVS 会同时在 Linux 系统中创建一个可以用来收发数据的模拟网络设备。我们可以为这个网络设备配置 IP 地址、进行数据监听等等。
1 2 3 4 5 6 7 8 9 10
$ ovs-vsctl set Interface p0 type=internal $ ethtool -i p0 driver: openvswitch version: firmware-version: bus-info: supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no
为了避免网络接口上的地址和本机已有网络地址冲突,我们可以创建一个虚拟网络空间 ns0,把 p0 接口移入网络空间 ns0,并配置 IP 地址为 192.168.1.100
1 2 3 4
$ ip netns add ns0 $ ip link set p0 netns ns0 $ ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0 $ ip netns exec ns0 ifconfig p0 promisc up
使用同样的方法创建端口 p1、p2
表 2. 创建的端口信息
端口说明
p0
IP 地址: 192.168.1.100/24
网络名称空间: ns0
网络接口 MAC 地址: 66:4e:cc:ae:4d:20
OpenFlow Port Number: 100
p1
IP 地址: 192.168.1.101/24
网络名称空间: ns1
网络接口 MAC 地址: 46:54:8a:95:dd:f8
OpenFlow Port Number: 101
p2
IP 地址: 192.168.1.102/24,
网络名称空间: ns2
网络接口 MAC 地址: 86:3b:c8:d0:44:10
OpenFlow Port Number: 102
创建所有的端口之后, 查看 OVS 交换机的信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$ ovs-vsctl show 30282710-d401-4187-8e13-52388f693df7 Bridge ovs-switch Port "p0" Interface "p0" type: internal Port "p2" Interface "p2" type: internal Port "p1" Interface "p1" type: internal Port ovs-switch Interface ovs-switch type: internal
使用 ovs-ofctl 创建并测试 OpenFlow 命令