在ovs结构中,如果网络拓扑是vxlan或gre,则有两个bridge,分别是br-int和br-tun,br-int叫集成网桥,用于连接起上方的各个设备(包括vm、dhcp-agent、l3-agent),br-tun叫隧道网桥,隧道既可以是gre,也可以是vxlan,br-tun负责在原始报文中加入gre或vxlan报文头。相当于软件实现了vtep设备(对于vxlan而言)
以下是本人使用和收集的OVS相关配置命令:
建立 VXLAN Network ID (VNI) 和指定的 OpenFlow port number, eg: VNI=5566, OF_PORT=9
ovs-vsctl set interface vxlan type=vxlan option:remote_ip=x.x.x.x option:key=5566 ofport_request=9 |
VNI flow by flow
ovs-vsctl set interface vxlan type=vxlan option:remote_ip=140.113.215.200 option:key=flow ofport_request=9 |
设置 VXLAN tunnel id
ovs-ofctl add-flow ovs-br in_port=1,actions=set_field:5566->tun_id,output:2 |
查询out-of-band $ in-band
ovs-vsctl get controller ovs-br connection-mode |
Out-of-band
ovs-vsctl set controller ovs-br connection-mode=out-of-band |
In-band (default)
ovs-vsctl set controller ovs-br connection-mode=in-band |
移除 hidden flow
ovs-vsctl set bridge br0 other-config:disable-in-band=true |
设置 GRE tunnel
vs−vsctl add−port ovs-br ovs-gre -- set interface ovs-gre type=gre options:remote_ip=1.2.3.4 |
设置 Vlan trunk
ovs-vsctl add-port ovs-br eth0 trunk=3,4,5,6 |
设置已 add 的 port 为 access port, vlan id 9
ovs-vsctl set port eth0 tag=9 |
网络工程是一门大学问,虽然本科四年里偶有涉及,硕士阶段专攻了一年多的路由交换原理,到目前开始从事网络安全开发工作,我也不敢说自己精通网络,深知自身仍然还有很多要学的地方,而对于网络知识的学习,我觉得最好的方式莫过于搞一套网络设备来慢慢折腾,模拟一个个应用场景,敲一下各种配置命令,能够一步步照着做了,想弄明白网络就不是难事,总的来说,急不得,在了解理论的基础上,动手实践理解会更深刻,还有一点就是多做记录,正所谓好记性不如烂笔头,我推荐做一个自己的博客或者使用笔记软件,记录自己平时的实践和理论学习。
参考网站:
http://blog.csdn.net/beginning1126/article/details/41172365
http://blog.csdn.net/tantexian/article/details/46707175