ovs & ryu & mininet

[root@kunpeng82 mininet]# ryu --version
ryu 4.34
[root@kunpeng82 mininet]#

 

 

[root@kunpeng82 ryu-master]# find ./ -name simple_switch_13.py
./ryu/app/simple_switch_13.py
./build/lib/ryu/app/simple_switch_13.py
[root@kunpeng82 ryu-master]# cd ryu/app/
[root@kunpeng82 app]# ryu-manager --verbose simple_switch_13.py ofctl_rest.py rest_topology.py
loading app simple_switch_13.py
loading app ofctl_rest.py
loading app rest_topology.py
require_app: ryu.topology.switches is required by rest_topology
loading app ryu.controller.ofp_handler
loading app ryu.topology.switches
loading app ryu.controller.ofp_handler
instantiating app None of DPSet
creating context dpset
creating context wsgi
instantiating app simple_switch_13.py of SimpleSwitch13
instantiating app ofctl_rest.py of RestStatsApi
instantiating app rest_topology.py of TopologyAPI
instantiating app ryu.controller.ofp_handler of OFPHandler
instantiating app ryu.topology.switches of Switches
BRICK dpset





[root@kunpeng82 mininet]# mn --controller=remote,ip=127.0.0.1,port=6653 *** Creating network *** Adding controller *** Adding hosts: h1 h2 *** Adding switches: s1 *** Adding links: (h1, s1) (h2, s1) *** Configuring hosts h1 h2 *** Starting controller c0 *** Starting 1 switches s1 ... *** Starting CLI: mininet>

 

 

 

http://10.10.16.82:8080/stats/desc/1

 

 

 

 

 

[root@kunpeng82 custom]# vi test.py
#!/user/bin/env python
from mininet.topo import Topo
class MyTopo(Topo):
    def build(self):
        left=[]
        left.append(self.addHost("h1"))
        left.append(self.addHost("h2"))
        right=[]
        right.append(self.addHost("h3"))
        right.append(self.addHost("h4"))
        switchs=[]
        switchs.append(self.addSwitch("s1"))
        switchs.append(self.addSwitch("s2"))

        self.addLink(left[0],switchs[0])
        self.addLink(left[1],switchs[0])
        self.addLink(right[0],switchs[1])
        self.addLink(right[1],switchs[1])
        self.addLink(switchs[0],switchs[1])


topos={'mytopo':(lambda : MyTopo())}
"test.py" [New] 22L, 648C written
[root@kunpeng82 custom]#  mn --controller=remote,ip=127.0.0.1,port=6653 --custom test.py --topo mytopo
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4 
*** Adding switches:
s1 s2 
*** Adding links:
(h1, s1) (h2, s1) (h3, s2) (h4, s2) (s1, s2) 
*** Configuring hosts
h1 h2 h3 h4 
*** Starting controller
c0 
*** Starting 2 switches
s1 s2 ...
*** Starting CLI:
mininet>  pingall
*** Ping: testing ping reachability
h1 -> h2 h3 h4 
h2 -> h1 h3 h4 
h3 -> h1 h2 h4 
h4 -> h1 h2 h3 
*** Results: 0% dropped (12/12 received)
mininet> 

 

 

http://10.10.16.82:8080/stats/switches

 

 

http://10.10.16.82:8080/stats/flow/1

 

 

{"1": [{"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 238, "duration_sec": 264, "duration_nsec": 728000000, "packet_count": 3, "length": 104, "flags": 0, "actions": ["OUTPUT:1"], "match": {"in_port": 2, "dl_src": "ba:61:1d:41:32:b8", "dl_dst": "2e:1c:03:0e:97:18"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 140, "duration_sec": 264, "duration_nsec": 724000000, "packet_count": 2, "length": 104, "flags": 0, "actions": ["OUTPUT:2"], "match": {"in_port": 1, "dl_src": "2e:1c:03:0e:97:18", "dl_dst": "ba:61:1d:41:32:b8"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 238, "duration_sec": 264, "duration_nsec": 711000000, "packet_count": 3, "length": 104, "flags": 0, "actions": ["OUTPUT:1"], "match": {"in_port": 3, "dl_src": "42:d8:65:f5:84:82", "dl_dst": "2e:1c:03:0e:97:18"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 140, "duration_sec": 264, "duration_nsec": 709000000, "packet_count": 2, "length": 104, "flags": 0, "actions": ["OUTPUT:3"], "match": {"in_port": 1, "dl_src": "2e:1c:03:0e:97:18", "dl_dst": "42:d8:65:f5:84:82"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 238, "duration_sec": 264, "duration_nsec": 694000000, "packet_count": 3, "length": 104, "flags": 0, "actions": ["OUTPUT:1"], "match": {"in_port": 3, "dl_src": "82:cb:85:fa:1a:09", "dl_dst": "2e:1c:03:0e:97:18"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 140, "duration_sec": 264, "duration_nsec": 691000000, "packet_count": 2, "length": 104, "flags": 0, "actions": ["OUTPUT:3"], "match": {"in_port": 1, "dl_src": "2e:1c:03:0e:97:18", "dl_dst": "82:cb:85:fa:1a:09"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 238, "duration_sec": 264, "duration_nsec": 675000000, "packet_count": 3, "length": 104, "flags": 0, "actions": ["OUTPUT:2"], "match": {"in_port": 3, "dl_src": "42:d8:65:f5:84:82", "dl_dst": "ba:61:1d:41:32:b8"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 140, "duration_sec": 264, "duration_nsec": 672000000, "packet_count": 2, "length": 104, "flags": 0, "actions": ["OUTPUT:3"], "match": {"in_port": 2, "dl_src": "ba:61:1d:41:32:b8", "dl_dst": "42:d8:65:f5:84:82"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 238, "duration_sec": 264, "duration_nsec": 658000000, "packet_count": 3, "length": 104, "flags": 0, "actions": ["OUTPUT:2"], "match": {"in_port": 3, "dl_src": "82:cb:85:fa:1a:09", "dl_dst": "ba:61:1d:41:32:b8"}, "table_id": 0}, {"priority": 1, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 140, "duration_sec": 264, "duration_nsec": 655000000, "packet_count": 2, "length": 104, "flags": 0, "actions": ["OUTPUT:3"], "match": {"in_port": 2, "dl_src": "ba:61:1d:41:32:b8", "dl_dst": "82:cb:85:fa:1a:09"}, "table_id": 0}, {"priority": 0, "cookie": 0, "idle_timeout": 0, "hard_timeout": 0, "byte_count": 4756, "duration_sec": 280, "duration_nsec": 242000000, "packet_count": 66, "length": 80, "flags": 0, "actions": ["OUTPUT:CONTROLLER"], "match": {}, "table_id": 0}]}

 

[root@kunpeng82 devuser]# ovs-vsctl show
ec7f002f-352c-476c-8348-5f2c86c8194f
    Bridge "s1"
        Controller "ptcp:6654"
        Controller "tcp:127.0.0.1:6653"
            is_connected: true
        fail_mode: secure
        Port "s1-eth2"
            Interface "s1-eth2"
        Port "s1-eth3"
            Interface "s1-eth3"
        Port "s1-eth1"
            Interface "s1-eth1"
        Port "s1"
            Interface "s1"
                type: internal
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
    Bridge "s2"
        Controller "ptcp:6655"
        Controller "tcp:127.0.0.1:6653"
            is_connected: true
        fail_mode: secure
        Port "s2-eth1"
            Interface "s2-eth1"
        Port "s2-eth2"
            Interface "s2-eth2"
        Port "s2-eth3"
            Interface "s2-eth3"
        Port "s2"
            Interface "s2"
                type: internal
    ovs_version: "2.12.0"
[root@kunpeng82 devuser]#

 

mininet> pingall
*** Ping: testing ping reachability
h1 -> h2 h3 h4 
h2 -> h1 h3 h4 
h3 -> h1 h2 h4 
h4 -> h1 h2 h3 
*** Results: 0% dropped (12/12 received)
mininet> 

 

 

[root@kunpeng82 devuser]# mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(h1, s1) (h2, s1) 
*** Configuring hosts
h1 h2 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet>  h1 ping -c1 h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=56.3 ms

--- 10.0.0.2 ping statistics ---
mininet> c0 ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::4a57:2ff:fe64:e7ac  prefixlen 64  scopeid 0x20<link>
Bridge "s1"
        Controller "tcp:127.0.0.1:6653"
            is_connected: true
        Controller "ptcp:6654"
        fail_mode: secure
        Port "s1-eth1"
            Interface "s1-eth1"
        Port "s1"
            Interface "s1"
                type: internal
        Port "s1-eth2"
            Interface "s1-eth2"
    ovs_version: "2.12.0"

 

 

mininet>  h1 ping -c1 h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=27.9 ms

--- 10.0.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 27.933/27.933/27.933/0.000 ms
mininet> 
[root@kunpeng82 devuser]# tcpdump -en -i s1-eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on s1-eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
04:19:05.351105 e6:47:6c:1c:37:ff > 76:e5:f9:33:ee:a7, ethertype IPv4 (0x0800), length 98: 10.0.0.1 > 10.0.0.2: ICMP echo request, id 49794, seq 1, length 64
04:19:05.378990 76:e5:f9:33:ee:a7 > e6:47:6c:1c:37:ff, ethertype IPv4 (0x0800), length 98: 10.0.0.2 > 10.0.0.1: ICMP echo reply, id 49794, seq 1, length 64
04:19:08.807438 da:ef:fd:00:f4:cf > 33:33:00:00:00:02, ethertype IPv6 (0x86dd), length 70: fe80::d8ef:fdff:fe00:f4cf > ff02::2: ICMP6, router solicitation, length 16
04:19:10.407444 e6:47:6c:1c:37:ff > 76:e5:f9:33:ee:a7, ethertype ARP (0x0806), length 42: Request who-has 10.0.0.2 tell 10.0.0.1, length 28
04:19:10.434746 76:e5:f9:33:ee:a7 > e6:47:6c:1c:37:ff, ethertype ARP (0x0806), length 42: Request who-has 10.0.0.1 tell 10.0.0.2, length 28
04:19:10.434763 e6:47:6c:1c:37:ff > 76:e5:f9:33:ee:a7, ethertype ARP (0x0806), length 42: Reply 10.0.0.1 is-at e6:47:6c:1c:37:ff, length 28
04:19:10.447963 76:e5:f9:33:ee:a7 > e6:47:6c:1c:37:ff, ethertype ARP (0x0806), length 42: Reply 10.0.0.2 is-at 76:e5:f9:33:ee:a7, length 28

 

posted on 2020-05-23 22:34  tycoon3  阅读(422)  评论(0编辑  收藏  举报

导航