Automatic add flow to ovs switch that connected to docker hosts

若如初见. 提交于 2019-12-10 11:42:27

问题


I'm working on creating SDN topology with OVS and docker containers as a host. my sample topology is: one ovs switch and 2 hosts(docker container) connected to it.

HOST1 (container1) <----> OVS <----> HOST2 (container2)

first i start my opendaylight controller and connect my ovs switch to it by "ovs-vsctl set-controller s1 tcp:ip:port" after that i run 2 docker container with "docker run -dit --net=none --name host1 ubuntu:16.04 /bin/bash" and then i used "ovs-docker" command to connect my containers to the ovs. i can see my switch showing up on opendaylight dlux but i cant ping from one container to another. the problem is that the odl doesn't update the flow table automatically here is "ovs-ofctl dump-flows s1" output

cookie=0x2b00000000000001, duration=2494.398s, table=0, n_packets=0, n_bytes=0, idle_age=2494, priority=100,dl_type=0x88cc actions=CONTROLLER:65535 cookie=0x2b00000000000001, duration=2494.387s, table=0, n_packets=18, n_bytes=756, idle_age=665, priority=0 actions=drop

BUT when i restart the controller again, everything work fine and flows are added to my ovs switch and i can ping from one container to another.

cookie=0x2b00000000000000, duration=3.087s, table=0, n_packets=0, n_bytes=0, idle_age=3, priority=2,in_port=1 actions=output:2,CONTROLLER:65535 cookie=0x2b00000000000001, duration=3.087s, table=0, n_packets=0, n_bytes=0, idle_age=3, priority=2,in_port=2 actions=output:1,CONTROLLER:65535 cookie=0x2b00000000000001, duration=2919.471s, table=0, n_packets=0, n_bytes=0, idle_age=2919, priority=100,dl_type=0x88cc actions=CONTROLLER:65535 cookie=0x2b00000000000001, duration=2919.46s, table=0, n_packets=18, n_bytes=756, idle_age=1090, priority=0 actions=drop

I know i can push flows by openflow pluing rest api to the flow table but assume you have too many ports(hosts) connected to the switch, you have to send flow entry one by one. so is there any way send event to Opendaylight controller to make it update the switch flow table automatically?


回答1:


I solved the problem, its look like l2switch feature has timestamp-update-interval on its Address Tracker, that set to 600000 by default, so after decrease this value(set to 5), ODL controller pushed the flows to the switch...here is full documentation that can help for starting... https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:L2_Switch




回答2:


I suspect you are hitting a bug in the l2switch project. Here is a list of open issues you could browse, but in general the l2switch project is lightly maintained and as long as you have a valid workaround, I would just go with it :)



来源:https://stackoverflow.com/questions/49625705/automatic-add-flow-to-ovs-switch-that-connected-to-docker-hosts

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!