Application Test of Openflow flow Table-- Logic isolation
1. Build the topology
A three-layer binary tree network was built, and the pingall connectivity test could not be completed by turning on SimpleSwitch4.py, so the topology was changed to a simple line, four switches (OF13) were connected into a line, and two hosts were hung under each switch, and h2--h8 in turn
S1 = net.addSwitch ('S1, cls=OVSKernelSwitch, protocols='OpenFlow13', mac='00:00:00:00:00:11')
S2 = net.addSwitch ('S2, cls=OVSKernelSwitch, protocols='OpenFlow13', mac='00:00:00:00:00:12')
S3 = net.addSwitch ('s 3clients, cls=OVSKernelSwitch, protocols='OpenFlow13', mac='00:00:00:00:00:13')
S4 = net.addSwitch ('s4miles, cls=OVSKernelSwitch, protocols='OpenFlow13', mac='00:00:00:00:00:14')
H2 = net.addHost ('H2, ip='10.0.0.1', defaultRoute=None, mac='00:00:00:00:00:01')
H3 = net.addHost ('h3pm, ip='10.0.0.2', defaultRoute=None, mac='00:00:00:00:00:02')
H4 = net.addHost ('h4pm, ip='10.0.0.3', defaultRoute=None, mac='00:00:00:00:00:03')
H5 = net.addHost ('h5pm, ip='10.0.0.4', defaultRoute=None, mac='00:00:00:00:00:04')
H6 = net.addHost ('h6pm, ip='10.0.0.5', defaultRoute=None, mac='00:00:00:00:00:05')
H7 = net.addHost ('H7legs, ip='10.0.0.6', defaultRoute=None, mac='00:00:00:00:00:06')
H7 = net.addHost ('H7legs, ip='10.0.0.7', defaultRoute=None, mac='00:00:00:00:00:07')
H8 = net.addHost ('h8legs, ip='10.0.0.8', defaultRoute=None, mac='00:00:00:00:00:08')
Net.addLink (S1, H2)
Net.addLink (S1, H3)
Net.addLink (S2, h4)
Net.addLink (S2, h5)
Net.addLink (S3, H6)
Net.addLink (S3, H7)
Net.addLink (S4, H7)
Net.addLink (S4, H8)
Net.addLink (S1, S2)
Net.addLink (S2, S3)
Net.addLink (S3, S4)
2. Turn on the ryu controller
Command: sudo ryu-manager-- observe-links simple_switch_13.py ofctl_rest.py rest_topology.py
Ofctl_rest.py: the API reserved for sending and viewing the flow table later
3. Conduct connectivity test
Use the pingall command to test the connectivity of the topology in the mininet interface
4. Use Postman to view the flow table of each switch
Check the connection of each port and make preparations for logical isolation (know the port between the host and the switch, and have a good idea when sending out the flow table)
5. Logical isolation
5.1. test the DELETE method
Enter the http://127.0.0.1:8080/stats/flowentry/clear/1 method in the Postman Url column and select DELETE.
That is, delete all flow tables on S1, so H2 and h3 will be cut off from the outside world and tested with pingall:
Success.
5.2. test the Modify command (POST) method
The flow table is sent successfully (cut off the message of finding host 7 on switch 2 from port 1, and the action set is set to empty), and test pingall
Success.
Continue testing, modify the information on switch 1 from port 1 to find host 8 (below) and h4 look for H8 message on host 2 (unmapped)
Mininet Test:
Success.
6. Summary
Through the above methods, a simple logical isolation function can be achieved.