Hi Takeshi, I am following the below steps: 1) sudo python as.py ---> runs successfully 2) On a new terminal: sudo mininet/util m r1 ---> Gives me a new prompt but not sure if i am in a new separate namespace. Pls confirm if this is the correct way 3) On a new terminal: sudo mininet/util m r2 ---> Gives me a new prompt but not sure if i am in a new separate namespace. Pls confirm if this is the correct way 4) I executed the following on the supposedly r1 and r2 terminals: r1(supposedly): sudo ryu-manager ryu/services/protocols/bgp/application.py --bgp-app-config-file bgpconfig1.py r2(supposedly): sudo ryu-manager ryu/services/protocols/bgp/application.py --bgp-app-config-file bgpconfig2.py
However I am getting the following errors on both the supposedly r1 and r2 terminal. ------------------------------------------------------- Error creating socket: [Errno 98] Address already in use hub: uncaught exception: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line 59, in _launch return func(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/base.py", line 256, in start self._run(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/core.py", line 238, in _run server_thread.wait() AttributeError: 'NoneType' object has no attribute 'wait' ----------------------------------------------------- Pls Guide. Am i doing something wrongly?. I am also attaching the two config files( bgpconfig1.py & bgpconfig2.py) Thanks On Thu, Apr 12, 2018 at 2:22 PM, Yi Tseng <a86487...@gmail.com> wrote: > Hi, > > You need to write the configuration for your bgp routers, I think > bgp_sample_conf.py includes everything you need, all you need is to modify > values in that configuration > > After that, you can run Ryu bgp application directly in two network > namespace with two configuration. > > I never try Ryu BGP application before, for more information, please > follow instruction here: > https://ryu.readthedocs.io/en/latest/app/bgp_application.html > > Yi > > > 2018-04-11 21:46 GMT+08:00 Pynbiang Hadem <pynbiang.ha...@gmail.com>: > >> Hi Takeshi, >> >> I Think i have managed to enter the namespace of r1 using the* m >> command.* >> *Now, I have one more doubt;* How can we execute ryu >> <https://github.com/osrg/ryu>/ryu >> <https://github.com/osrg/ryu/tree/master/ryu>/services >> <https://github.com/osrg/ryu/tree/master/ryu/services>/protocols >> <https://github.com/osrg/ryu/tree/master/ryu/services/protocols>/bgp >> <https://github.com/osrg/ryu/tree/master/ryu/services/protocols/bgp>/*application.py >> *in r1 and r2 and get communication between r1 and r2 to happen?. >> Do we need the ryu <https://github.com/osrg/ryu>/ryu >> <https://github.com/osrg/ryu/tree/master/ryu>/services >> <https://github.com/osrg/ryu/tree/master/ryu/services>/protocols >> <https://github.com/osrg/ryu/tree/master/ryu/services/protocols>/bgp >> <https://github.com/osrg/ryu/tree/master/ryu/services/protocols/bgp>/*bgp_sample_conf.py >> *or the configuration done on r1 and r2 by your script is sufficient?. >> >> Thanks >> Hadem >> >> On Wed, Apr 11, 2018 at 6:32 PM, Pynbiang Hadem <pynbiang.ha...@gmail.com >> > wrote: >> >>> Hi Takeshi, >>> >>> Would you mind showing some example to enter the namespace of r1. I >>> can't seemed to figure it out. >>> >>> Thanks >>> Hadem >>> >>> On Fri, Mar 16, 2018 at 1:15 PM, Yi Tseng <a86487...@gmail.com> wrote: >>> >>>> 1) >>>> Yes, this is normal >>>> 2) >>>> You need to enter network namespace of r1, and use telnet to access >>>> quagga console >>>> >>>> To enter the namespace, you can use *m* command >>>> https://github.com/mininet/mininet/blob/master/util/m >>>> >>>> 2018-03-16 0:20 GMT+08:00 Pynbiang Hadem <pynbiang.ha...@gmail.com>: >>>> >>>>> Hi Takeshi, >>>>> >>>>> I am able to run it now, however, there are two things: >>>>> *1) I am getting errRun mesages as below:* >>>>> ----------------------------- >>>>> >>>>> mininet@mininet-vm:~/bgp-3as$ sudo python as.py >>>>> *** errRun: ['grep', '-c', 'processor', '/proc/cpuinfo'] >>>>> 1 >>>>> 0*** Setting resource limits >>>>> *** errRun: ['which', 'mnexec'] >>>>> /usr/bin/mnexec >>>>> 0*** errRun: ['which', 'ifconfig'] >>>>> /sbin/ifconfig >>>>> ... >>>>> ... >>>>> *** errRun: ['stty', 'echo', 'sane', 'intr', '^C'] >>>>> 0mininet> >>>>> >>>>> ------------------------------ >>>>> *Is this normal?.* >>>>> >>>>> *2) How can i login to r1 console?. I want to run some bgpd command >>>>> like* >>>>> * bgpd-R1# sh ip bgp* >>>>> >>>>> Thanks >>>>> Hadem >>>>> >>>>> >>>>> On Tue, Mar 13, 2018 at 10:07 PM, Yi Tseng <a86487...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> Please don't drop mailing list >>>>>> >>>>>> I just update it, please check again >>>>>> >>>>>> Yi >>>>>> >>>>>> 2018-03-13 18:19 GMT+08:00 Pynbiang Hadem <pynbiang.ha...@gmail.com>: >>>>>> >>>>>>> Hi Takeshi, >>>>>>> >>>>>>> I run the topology file *as.py* from *bgp-3as* and i got the >>>>>>> following error messages. Pls help >>>>>>> >>>>>>> mininet@mininet-vm:~/bgp-3as$ sudo python as.py >>>>>>> *** errRun: ['grep', '-c', 'processor', '/proc/cpuinfo'] >>>>>>> 1 >>>>>>> 0*** Setting resource limits >>>>>>> *** errRun: ['which', 'mnexec'] >>>>>>> /usr/bin/mnexec >>>>>>> 0*** errRun: ['which', 'ifconfig'] >>>>>>> /sbin/ifconfig >>>>>>> 0*** h1 : ('unset HISTFILE; stty -echo; set +m',) >>>>>>> unset HISTFILE; stty -echo; set +m >>>>>>> *** h2 : ('unset HISTFILE; stty -echo; set +m',) >>>>>>> unset HISTFILE; stty -echo; set +m >>>>>>> *** h3 : ('unset HISTFILE; stty -echo; set +m',) >>>>>>> unset HISTFILE; stty -echo; set +m >>>>>>> *** r1 : ('unset HISTFILE; stty -echo; set +m',) >>>>>>> unset HISTFILE; stty -echo; set +m >>>>>>> *** r2 : ('unset HISTFILE; stty -echo; set +m',) >>>>>>> unset HISTFILE; stty -echo; set +m >>>>>>> *** r3 : ('unset HISTFILE; stty -echo; set +m',) >>>>>>> unset HISTFILE; stty -echo; set +m >>>>>>> *** r1 : ('ip link add name r1-eth0 address e6:07:c4:3d:f1:ad type >>>>>>> veth peer name r2-eth0 address 62:7d:bb:f1:1b:0b netns 1545',) >>>>>>> >>>>>>> added intf r1-eth0 (0) to node r1 >>>>>>> moving r1-eth0 into namespace for r1 >>>>>>> *** r1 : ('ifconfig', 'r1-eth0', 'up') >>>>>>> >>>>>>> added intf r2-eth0 (0) to node r2 >>>>>>> moving r2-eth0 into namespace for r2 >>>>>>> *** r2 : ('ifconfig', 'r2-eth0', 'up') >>>>>>> *** r2 : ('ip link add name r2-eth1 address a6:4f:64:39:2b:af type >>>>>>> veth peer name r3-eth0 address a2:49:d6:30:b2:d8 netns 1547',) >>>>>>> >>>>>>> added intf r2-eth1 (1) to node r2 >>>>>>> moving r2-eth1 into namespace for r2 >>>>>>> *** r2 : ('ifconfig', 'r2-eth1', 'up') >>>>>>> >>>>>>> added intf r3-eth0 (0) to node r3 >>>>>>> moving r3-eth0 into namespace for r3 >>>>>>> *** r3 : ('ifconfig', 'r3-eth0', 'up') >>>>>>> *** h1 : ('ip link add name h1-eth0 address 1e:d7:9d:cf:13:61 type >>>>>>> veth peer name r1-eth1 address 22:e8:9b:a9:38:85 netns 1543',) >>>>>>> >>>>>>> added intf h1-eth0 (0) to node h1 >>>>>>> moving h1-eth0 into namespace for h1 >>>>>>> *** h1 : ('ifconfig', 'h1-eth0', 'up') >>>>>>> >>>>>>> added intf r1-eth1 (1) to node r1 >>>>>>> moving r1-eth1 into namespace for r1 >>>>>>> *** r1 : ('ifconfig', 'r1-eth1', 'up') >>>>>>> *** h2 : ('ip link add name h2-eth0 address fe:c0:a8:2d:37:ab type >>>>>>> veth peer name r2-eth2 address c6:20:a0:db:c1:cb netns 1545',) >>>>>>> >>>>>>> added intf h2-eth0 (0) to node h2 >>>>>>> moving h2-eth0 into namespace for h2 >>>>>>> *** h2 : ('ifconfig', 'h2-eth0', 'up') >>>>>>> >>>>>>> added intf r2-eth2 (2) to node r2 >>>>>>> moving r2-eth2 into namespace for r2 >>>>>>> *** r2 : ('ifconfig', 'r2-eth2', 'up') >>>>>>> *** h3 : ('ip link add name h3-eth0 address fa:69:19:e0:af:d8 type >>>>>>> veth peer name r3-eth1 address de:d4:a5:1d:32:f1 netns 1547',) >>>>>>> >>>>>>> added intf h3-eth0 (0) to node h3 >>>>>>> moving h3-eth0 into namespace for h3 >>>>>>> *** h3 : ('ifconfig', 'h3-eth0', 'up') >>>>>>> >>>>>>> added intf r3-eth1 (1) to node r3 >>>>>>> moving r3-eth1 into namespace for r3 >>>>>>> *** r3 : ('ifconfig', 'r3-eth1', 'up') >>>>>>> *** Configuring hosts >>>>>>> h1 *** h1 : ('ifconfig', 'h1-eth0', '10.0.1.1/24', 'up') >>>>>>> *** h1 : ('ifconfig lo up',) >>>>>>> h2 *** h2 : ('ifconfig', 'h2-eth0', '10.0.2.1/24', 'up') >>>>>>> *** h2 : ('ifconfig lo up',) >>>>>>> h3 *** h3 : ('ifconfig', 'h3-eth0', '10.0.3.1/24', 'up') >>>>>>> *** h3 : ('ifconfig lo up',) >>>>>>> r1 *** r1 : ('ifconfig', 'r1-eth0', '10.0.0.4/8', 'up') >>>>>>> *** r1 : ('ifconfig lo up',) >>>>>>> r2 *** r2 : ('ifconfig', 'r2-eth0', '10.0.0.5/8', 'up') >>>>>>> *** r2 : ('ifconfig lo up',) >>>>>>> r3 *** r3 : ('ifconfig', 'r3-eth0', '10.0.0.6/8', 'up') >>>>>>> *** r3 : ('ifconfig lo up',) >>>>>>> >>>>>>> *** h1 : ('ip r add 0.0.0.0/0 via 10.0.1.254',) >>>>>>> *** h2 : ('ip r add 0.0.0.0/0 via 10.0.2.254',) >>>>>>> *** h3 : ('ip r add 0.0.0.0/0 via 10.0.3.254',) >>>>>>> *** r1 : ('ip a del 10.0.0.4/8 dev r1-eth0',) >>>>>>> *** r2 : ('ip a del 10.0.0.5/8 dev r2-eth0',) >>>>>>> *** r3 : ('ip a del 10.0.0.6/8 dev r3-eth0',) >>>>>>> *** r1 : ('ip a add 10.0.1.254/24 dev r1-eth1',) >>>>>>> *** r2 : ('ip a add 10.0.2.254/24 dev r2-eth2',) >>>>>>> *** r3 : ('ip a add 10.0.3.254/24 dev r3-eth1',) >>>>>>> *** r1 : ('ip a add 192.168.1.1/24 dev r1-eth0',) >>>>>>> *** r2 : ('ip a add 192.168.1.2/24 dev r2-eth0',) >>>>>>> *** r2 : ('ip a add 192.168.2.1/24 dev r2-eth1',) >>>>>>> *** r3 : ('ip a add 192.168.2.2/24 dev r3-eth0',) >>>>>>> *** r1 : ('/usr/lib/quagga/zebra -d -f zebra.conf -z >>>>>>> /var/run/quagga/zebra-r1.api -i /var/run/quagga/zebra-r1.pid',) >>>>>>> vty_read_config: failed to open configuration file >>>>>>> /home/mininet/bgp-3as/zebra.conf: No such file or directory >>>>>>> can't open configuration file [zebra.conf] >>>>>>> *** r1 : ('/usr/lib/quagga/bgpd -d -f r1.conf -z >>>>>>> /var/run/quagga/zebra-r1.api -i /var/run/quagga/bgpd-r1.pid',) >>>>>>> *** r2 : ('/usr/lib/quagga/zebra -d -f zebra.conf -z >>>>>>> /var/run/quagga/zebra-r2.api -i /var/run/quagga/zebra-r2.pid',) >>>>>>> vty_read_config: failed to open configuration file >>>>>>> /home/mininet/bgp-3as/zebra.conf: No such file or directory >>>>>>> can't open configuration file [zebra.conf] >>>>>>> *** r2 : ('/usr/lib/quagga/bgpd -d -f r2.conf -z >>>>>>> /var/run/quagga/zebra-r2.api -i /var/run/quagga/bgpd-r2.pid',) >>>>>>> *** r3 : ('/usr/lib/quagga/zebra -d -f zebra.conf -z >>>>>>> /var/run/quagga/zebra-r3.api -i /var/run/quagga/zebra-r3.pid',) >>>>>>> vty_read_config: failed to open configuration file >>>>>>> /home/mininet/bgp-3as/zebra.conf: No such file or directory >>>>>>> can't open configuration file [zebra.conf] >>>>>>> *** r3 : ('/usr/lib/quagga/bgpd -d -f r3.conf -z >>>>>>> /var/run/quagga/zebra-r3.api -i /var/run/quagga/bgpd-r3.pid',) >>>>>>> *** Starting CLI: >>>>>>> *** errRun: ['stty', 'echo', 'sane', 'intr', '^C'] >>>>>>> >>>>>>> >>>>>>> Thanks >>>>>>> Hadem >>>>>>> >>>>>>> On Mon, Mar 12, 2018 at 11:11 AM, Yi Tseng <a86487...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> [+mininet mailing list] >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I think what you need to do is to create 6 network namespace and >>>>>>>> run quagga+zebra process inside 3 of namespace. >>>>>>>> >>>>>>>> No switch(and controller) in your topology. >>>>>>>> >>>>>>>> All you need is to install mininet and quagga(via apt-get) and >>>>>>>> enable ip forwarding on your host machine >>>>>>>> >>>>>>>> And run this example, this example creates 3 AS with 3 hosts, AS >>>>>>>> exchanges prefix information using BGP message >>>>>>>> https://github.com/TakeshiTseng/SDN-Work/blob/master/mininet >>>>>>>> /bgp-3as/ >>>>>>>> >>>>>>>> Yi >>>>>>>> >>>>>>>> 2018-03-11 16:21 GMT+08:00 Pynbiang Hadem <pynbiang.ha...@gmail.com >>>>>>>> >: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Can anyone suggest how i can achieve the target objective in >>>>>>>>> mininet and ryu. >>>>>>>>> >>>>>>>>> Thanks >>>>>>>>> Hadem >>>>>>>>> >>>>>>>>> On Sun, Mar 11, 2018 at 11:30 AM, knet solutions < >>>>>>>>> knetsolutio...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> Hi , >>>>>>>>>> >>>>>>>>>> KNet is alternative for Mininet. Host systems are based on >>>>>>>>>> docker not namespace. KNet supports traditional routers(bird routing >>>>>>>>>> daemon), Servers also as hosts. >>>>>>>>>> >>>>>>>>>> But openvswitches are in the host system. Not in separate >>>>>>>>>> namespace or docker contrainers. >>>>>>>>>> >>>>>>>>>> I thought, you are looking for traditional BGP router in your >>>>>>>>>> topology. Thats why i suggested this. >>>>>>>>>> >>>>>>>>>> I guess, you need openvswitch in separate namespace / docker >>>>>>>>>> container . Currently KNet doesnt support this. >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> Suresh. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Sat, Mar 10, 2018 at 11:22 AM, Pynbiang Hadem < >>>>>>>>>> pynbiang.ha...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Suresh, >>>>>>>>>>> >>>>>>>>>>> 1) KNet should be installed on Mininet or without Mininet?. >>>>>>>>>>> 2) To achieve independent namespaces for each switches, do we >>>>>>>>>>> need Quagga and Zebra?. >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> Hadem >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Sat, Mar 10, 2018 at 10:24 AM, Pynbiang Hadem < >>>>>>>>>>> pynbiang.ha...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Thanks Suresh from KNet. >>>>>>>>>>>> >>>>>>>>>>>> I will read the documentation, try it out and get back to you >>>>>>>>>>>> for help, clarification and advice. >>>>>>>>>>>> >>>>>>>>>>>> Thanks >>>>>>>>>>>> Hadem >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Fri, Mar 9, 2018 at 8:46 PM, knet solutions < >>>>>>>>>>>> knetsolutio...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> Check knet. It supports router node(bird routing daemon). you >>>>>>>>>>>>> can setup such topology. >>>>>>>>>>>>> >>>>>>>>>>>>> http://knet-topology-builder.readthedocs.io/en/latest/ >>>>>>>>>>>>> >>>>>>>>>>>>> I can help you. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks >>>>>>>>>>>>> suresh >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Mar 9, 2018 at 8:13 PM, Pynbiang Hadem < >>>>>>>>>>>>> pynbiang.ha...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I want to simulate BGP connectivity between 3 ASes in Mininet >>>>>>>>>>>>>> with one host in each AS as below: >>>>>>>>>>>>>> >>>>>>>>>>>>>> h1 -- AS1 -- AS2 -- AS3 -- h3 >>>>>>>>>>>>>> h2 >>>>>>>>>>>>>> >>>>>>>>>>>>>> How can i create the topology so that each AS is represented >>>>>>>>>>>>>> by a switch/router and each router is in a separate namespace? >>>>>>>>>>>>>> What are the requirements to setup such an environment? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>> Hadem >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> ------------------------------------------------------------ >>>>>>>>>>>>>> ------------------ >>>>>>>>>>>>>> Check out the vibrant tech community on one of the world's >>>>>>>>>>>>>> most >>>>>>>>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> Ryu-devel mailing list >>>>>>>>>>>>>> Ryu-devel@lists.sourceforge.net >>>>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> >>>>>>>>>>>>> *Regards, * >>>>>>>>>>>>> *Knet solutions.* >>>>>>>>>>>>> >>>>>>>>>>>>> https://github.com/knetsolutions/KNet >>>>>>>>>>>>> http://knet-topology-builder.readthedocs.io/ >>>>>>>>>>>>> http://knetsolutions.in/ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> *Regards, * >>>>>>>>>> *Knet solutions.* >>>>>>>>>> >>>>>>>>>> https://github.com/knetsolutions/KNet >>>>>>>>>> http://knet-topology-builder.readthedocs.io/ >>>>>>>>>> http://knetsolutions.in/ >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> ------------------------------------------------------------ >>>>>>>>> ------------------ >>>>>>>>> Check out the vibrant tech community on one of the world's most >>>>>>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>>>>>>> _______________________________________________ >>>>>>>>> Ryu-devel mailing list >>>>>>>>> Ryu-devel@lists.sourceforge.net >>>>>>>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Yi Tseng (a.k.a Takeshi) >>>>>>>> Taiwan National Chiao Tung University >>>>>>>> Department of Computer Science >>>>>>>> W2CNLab >>>>>>>> >>>>>>>> https://takeshi.tw >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Yi Tseng (a.k.a Takeshi) >>>>>> Taiwan National Chiao Tung University >>>>>> Department of Computer Science >>>>>> W2CNLab >>>>>> >>>>>> https://takeshi.tw >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Yi Tseng (a.k.a Takeshi) >>>> Taiwan National Chiao Tung University >>>> Department of Computer Science >>>> W2CNLab >>>> >>>> https://takeshi.tw >>>> >>> >>> >> > > > -- > Yi Tseng (a.k.a Takeshi) > Taiwan National Chiao Tung University > Department of Computer Science > W2CNLab > > https://takeshi.tw >
bgpconfig1.py
Description: Binary data
bgpconfig2.py
Description: Binary data
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel