<div dir="ltr">Hi , all<div><br></div><div>When using neutron (especially with DVR), I find it difficult to debug problems with lots of ovs rules, complicated iptables rules, network namespaces, routing tables, ... </div><div><br></div><div>So I create <a href="https://github.com/yeasy/easyOVS"></a><a href="https://github.com/yeasy/easyOVS"></a><a href="https://github.com/yeasy/easyOVS">easyOVS</a>, in summary, it can</div><div><br></div><div><ul style="padding:0px 0px 0px 2em;margin-top:0px;margin-bottom:16px;color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif;line-height:25.6000003814697px"><li>Format the output and use color to make it clear and easy to compare.</li><li>Associate the OpenStack information (e.g., vm ip) on the virtual port or rule</li><li>Query openvswitch,iptables,namespace information in smart way.</li><li>Check if the DVR configuration is correct.</li><li>Smart command completion, try tab everywhere.</li><li>Support runing local system commands.</li></ul></div><div>In latest 0.5 version, it supports checking your dvr configuration and running states, e.g., on a compute node, I run 'dvr check' command, then it will automatically check the configuration files, bridges, ports, network spaces, iptables rules,... like</div><div><br></div><div><div> No type given, guessing...compute node</div><div>=== Checking DVR on compute node ===</div><div>>>> Checking config files...</div><div># Checking file = /etc/sysctl.conf...</div><div># Checking file = /etc/neutron/neutron.conf...</div><div># Checking file = /etc/neutron/plugins/ml2/ml2_conf.ini...</div><div>file /etc/neutron/plugins/ml2/ml2_conf.ini Not has [agent]</div><div>file /etc/neutron/plugins/ml2/ml2_conf.ini Not has l2_population = True</div><div>file /etc/neutron/plugins/ml2/ml2_conf.ini Not has enable_distributed_routing = True</div><div>file /etc/neutron/plugins/ml2/ml2_conf.ini Not has arp_responder = True</div><div># Checking file = /etc/neutron/l3_agent.ini...</div><div><<< Checking config files has warnings</div><div><br></div><div>>>> Checking bridges...</div><div># Existing bridges are br-tun, br-int, br-eno1, br-ex</div><div># Vlan bridge is at br-tun, br-int, br-eno1, br-ex</div><div><<< Checking bridges passed</div><div><br></div><div>>>> Checking vports ...</div><div>## Checking router port = qr-b0142af2-12</div><div>### Checking rfp port rfp-f046c591-7</div><div>Found associated floating ips : <a href="http://172.29.161.127/32">172.29.161.127/32</a>, <a href="http://172.29.161.126/32">172.29.161.126/32</a></div><div>### Checking associated fpr port fpr-f046c591-7</div><div>### Check related fip_ns=fip-9e1c850d-e424-4379-8ebd-278ae995d5c3</div><div>Bridging in the same subnet</div><div>fg port is attached to br-ex</div><div>floating ip 172.29.161.127 match fg subnet</div><div>floating ip 172.29.161.126 match fg subnet</div><div>Checking chain rule number: neutron-postrouting-bottom...Passed</div><div>Checking chain rule number: OUTPUT...Passed</div><div>Checking chain rule number: neutron-l3-agent-snat...Passed</div><div>Checking chain rules: neutron-postrouting-bottom...Passed</div><div>Checking chain rules: PREROUTING...Passed</div><div>Checking chain rules: OUTPUT...Passed</div><div>Checking chain rules: POSTROUTING...Passed</div><div>Checking chain rules: POSTROUTING...Passed</div><div>Checking chain rules: neutron-l3-agent-POSTROUTING...Passed</div><div>Checking chain rules: neutron-l3-agent-PREROUTING...Passed</div><div>Checking chain rules: neutron-l3-agent-OUTPUT...Passed</div><div>DNAT for incoming: 172.29.161.127 --> 10.0.0.3 passed</div><div>Checking chain rules: neutron-l3-agent-float-snat...Passed</div><div>SNAT for outgoing: 10.0.0.3 --> 172.29.161.127 passed</div><div>Checking chain rules: neutron-l3-agent-OUTPUT...Passed</div><div>DNAT for incoming: 172.29.161.126 --> 10.0.0.216 passed</div><div>Checking chain rules: neutron-l3-agent-float-snat...Passed</div><div>SNAT for outgoing: 10.0.0.216 --> 172.29.161.126 passed</div><div>## Checking router port = qr-8c41bfc7-56</div><div>Checking passed already</div><div><<< Checking vports passed</div></div><div><br></div><div><br></div><div>Welcome for any feedback, and welcome for any contribution!</div><div><br></div><div>I am trying to put this project into stackforge to let more people can use and improve it, any thoughts if it is suitable?</div><div><br></div><div><a href="https://review.openstack.org/#/c/212396/">https://review.openstack.org/#/c/212396/</a><br></div><div><br></div><div>Thanks for any help or suggestion!</div><div><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><font color="#999999">Best wishes!<br>Baohua<br></font></div>
</div></div>