1.总述
在前面的介绍里我是用ovs-docker命令向docker容器内添加eth口,但是添加的eth口在电脑重启后会消失,严重影响了实验进度,于是尝试用veth pair来进行连接。
最后发现:重启电脑之后连接的veth也会被清除,所以两种方法都一样的.....
参考:
Linux 虚拟网络设备 veth-pair(namespace、Bridge、OVS )_veth pair 和bridge-优快云博客
2.OVS连接docker
(1)创建两个veth pair
ip l a veth0 type veth peer name ovs-veth0
ip l a veth1 type veth peer name ovs-veth1
(2)分别连接OVS和docker容器
需要注意,需要得到docker容器的PID,使用docker top <容器名>得到。参考:
ip l s veth0 netns 3303
ovs-vsctl add-port OVS1 ovs-veth0
ip l s ovs-veth0 up
(3)分别给两个容器配置IP并启用
需要进入docker容器内进行:
ip addr add 10.1.1.2/24 dev veth0
ip link set veth0 up
需要注意在ifconfig里是不能看到veth口和操作的。
(4)配置完成,可以ping通
3.ODL查看
因为之前连接ODL的controller需要配置流表下发才能ping通,所以我查看了OVS1上的流表,发现是我以前下发的流表没有自动删除,然后删除的原来的eth口的编号正好被新加的veth口顶掉了,所以不需要再下发流表了。
可以看到拓扑如下: