Docker+OVS 搭建域间网络
来源:互联网 发布:今晚小非农数据公布 编辑:程序博客网 时间:2024/05/22 04:51
这是本人硕士毕业论文其中一个小实验的代码测试环境的搭建过程:
环境:VM(ubuntu14.04)
相关软件:docker1.2, OVS1.3, ovs-docker脚本, 包含eclipse的docker Image
搭建后的效果:各个容器使用不同ip网段模拟域间系统,相互之间可以通过配置OVS实现互通,各个容器内可以运行eclipse 实时的修改/运行宿主机上 project。
1、新建容器作为controller, 共用宿主机上project所在目录,net选择none
docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/sdn/simrp:/home/simrp --net=none --name s1 eclipse1.1
2、宿主机中使用ovs-docker建立网桥连接docker
sudo ./ovs-docker add-port br1 eth1 s1 --ipaddress=10.0.1.1/24
3、设置网桥ip,并将网桥连接到容器中的controller
sudo ifconfig br1 10.0.1.2/24
sudo ovs-vsctl set-controller br1 tcp:10.0.1.1:6653
4、为各容器中添加默认路由:
在宿主机中操作,
docker inspect -f '{{.State.Pid}}' c6916035d5bf //获取容器的pid, 例如pid=3992
sudo nsenter -t 3992 -n ip route add default via 10.0.2.1 dev eth1 // 添加默认路由
OR
sudo nsenter -t `docker inspect -f '{{.State.Pid}}' s2` -n ip route add default via 10.0.2.1 dev eth1 //注意··与‘’区别
5、网桥添加流表
双向流表arp icmp tcp.
ovs-ofctl add-flow br1 "idle_timeout=0,priority=1,tcp,nw_dst=10.0.2.1,action=output:2"