Hi Iwase,
Thanks for getting back to me.
I have tried some of your suggestions, but still doesn't seem to be able to
connect to the API.
*My config files look like this:*
! OSPF configuration for r3
!
hostname r3
password zebra
!
router ospf
passive-interface r3-eth0
network 10.0.3.0/24 area 0.0.0.0
network 10.1.100.0/24 area 0.0.0.0
!
log stdout
*and*
! Configuration for zebra (NB: it is the same for all routers)
!
hostname zebra
password zebra
log stdout
*I have been running the example with this command, but also tried
different ports (2600, 2601, 2604):*
$ sudo ryu-manager sample_dumper.py --verbose --zapi-router-id 10.1.100.3
--zapi-server-host /var/run/quagga/zebrar3.api --zapi-server-port 2600
lzma module is not available
Registered VCS backend: git
Registered VCS backend: hg
Registered VCS backend: svn
Registered VCS backend: bzr
loading app sample_dumper.py
instantiating app None of ZServer
creating context zserver
instantiating app sample_dumper.py of ZServerDumper
BRICK ZServer
PROVIDES EventZClientDisconnected TO {'ZServerDumper': set([])}
PROVIDES EventZebraRouterIDAdd TO {'ZServer': set([])}
PROVIDES EventZebraInterfaceAdd TO {'ZServer': set([])}
PROVIDES EventZebraHello TO {'ZServer': set([])}
PROVIDES EventZebraIPv4RouteAdd TO {'ZServer': set([]), 'ZServerDumper':
set([])}
PROVIDES EventZebraIPv6RouteAdd TO {'ZServer': set([]), 'ZServerDumper':
set([])}
PROVIDES EventZebraIPv4RouteDelete TO {'ZServer': set([]),
'ZServerDumper': set([])}
PROVIDES EventZClientConnected TO {'ZServerDumper': set([])}
PROVIDES EventZebraIPv6RouteDelete TO {'ZServer': set([]),
'ZServerDumper': set([])}
CONSUMES EventZebraRouterIDAdd
CONSUMES EventZebraInterfaceAdd
CONSUMES EventZebraHello
CONSUMES EventZebraIPv4RouteAdd
CONSUMES EventZebraIPv6RouteAdd
CONSUMES EventZebraIPv4RouteDelete
CONSUMES EventZebraIPv6RouteDelete
BRICK ZServerDumper
CONSUMES EventZClientDisconnected
CONSUMES EventZebraIPv4RouteAdd
CONSUMES EventZebraIPv6RouteAdd
CONSUMES EventZebraIPv4RouteDelete
CONSUMES EventZClientConnected
CONSUMES EventZebraIPv6RouteDelete
Added interface "lo": Interface(ifname='lo', inet6='::1/128', inet='
127.0.0.1/8')
Added route to "127.0.0.0/8": Route(family=2, safi=1, route_type=2,
destination='127.0.0.0/8', source='127.0.0.1/8', ifindex=1,
is_selected=True, gateway='')
*When looking at my daemons*:
$ ps aux | grep quagga
quagga 12355 0.0 0.0 24468 2356 ? Ss 09:51 0:00
/usr/lib/quagga/zebra -d -f /etc/quagga/configs/zebra.conf -z
/var/run/quagga/zebrar3.api -i /var/run/quagga/zebrar3.pid
quagga 12357 0.0 0.0 27116 2420 ? Ss 09:51 0:00
/usr/lib/quagga/ospfd -d -f /etc/quagga/configs/quagga3.conf -z
/var/run/quagga/zebrar3.api -i /var/run/quagga/ospfdr3.pid
*When connecting to the local ospf daemon:*
$ sudo vtysh -d ospfd -c "show ip ospf database"
OSPF Router with ID (10.1.100.3)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
10.1.100.1 10.1.100.1 356 0x80000006 0x6eed 2
10.1.100.2 10.1.100.2 356 0x80000007 0x7fd7 2
10.1.100.3 10.1.100.3 356 0x80000006 0x94bf 2
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
10.1.100.3 10.1.100.3 356 0x80000002 0x6ead
*In my topology, quagga is running on a host and the host has these ports
open:*
$ netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address
State PID/Program name
tcp 0 0 0.0.0.0:2601
0.0.0.0:* LISTEN 15984/zebra
tcp 0 0 0.0.0.0:2604
0.0.0.0:* LISTEN 15986/ospfd
I hope this info may clarify a couple of things.
Thanks.
Håvard
2017-05-08 7:48 GMT+02:00 Iwase Yusuke <iwase.yusu...@gmail.com>:
> Hi Håvard,
>
> Sorry for the delay.
>
> Could you share log messages of your ryu-manager with "--verbose" option?
>
> On my environment(Ubuntu 16.04 and Quagga via apt-get), "sample_dumper.py"
> should work.
>
> # /etc/quagga/daemons
> ...(snip)
> zebra=no
> bgpd=no
> ospfd=yes
> ...(snip)
>
> # /etc/quagga/ospfd.conf (Just copy of /usr/share/doc/quagga/
> examples/ospfd.conf.sample)
> ! -*- ospf -*-
> !
> ! OSPFd sample configuration file
> !
> !
> hostname ospfd
> password zebra
> !enable password please-set-at-here
> !
> !router ospf
> ! network 192.168.1.0/24 area 0
> !
> log stdout
>
> # Run Ryu Application
> $ ryu-manager ryu/services/protocols/zebra/server/sample_dumper.py
> --verbose
> ...
>
> # Start Quagga (OSPF) daemon
> $ sudo service quagga start
>
> # ryu-manager should output
> Registered VCS backend: git
> Registered VCS backend: hg
> Registered VCS backend: svn
> Registered VCS backend: bzr
> loading app ryu/services/protocols/zebra/server/sample_dumper.py
> instantiating app None of ZServer
> creating context zserver
> instantiating app ryu/services/protocols/zebra/server/sample_dumper.py of
> ZServerDumper
> BRICK ZServer
> PROVIDES EventZebraIPv4RouteAdd TO {'ZServer': set(), 'ZServerDumper':
> set()}
> PROVIDES EventZClientConnected TO {'ZServerDumper': set()}
> PROVIDES EventZebraIPv6RouteDelete TO {'ZServer': set(),
> 'ZServerDumper': set()}
> PROVIDES EventZebraIPv6RouteAdd TO {'ZServer': set(), 'ZServerDumper':
> set()}
> PROVIDES EventZebraInterfaceAdd TO {'ZServer': set()}
> PROVIDES EventZebraHello TO {'ZServer': set()}
> PROVIDES EventZClientDisconnected TO {'ZServerDumper': set()}
> PROVIDES EventZebraRouterIDAdd TO {'ZServer': set()}
> PROVIDES EventZebraIPv4RouteDelete TO {'ZServer': set(),
> 'ZServerDumper': set()}
> CONSUMES EventZebraIPv4RouteAdd
> CONSUMES EventZebraIPv6RouteDelete
> CONSUMES EventZebraIPv6RouteAdd
> CONSUMES EventZebraInterfaceAdd
> CONSUMES EventZebraHello
> CONSUMES EventZebraRouterIDAdd
> CONSUMES EventZebraIPv4RouteDelete
> BRICK ZServerDumper
> CONSUMES EventZClientDisconnected
> CONSUMES EventZClientConnected
> CONSUMES EventZebraIPv6RouteDelete
> CONSUMES EventZebraIPv6RouteAdd
> CONSUMES EventZebraIPv4RouteAdd
> CONSUMES EventZebraIPv4RouteDelete
> Added interface "lo": Interface(inet6='::1/128', inet='127.0.0.1/8',
> ifname='lo')
> Added route to "127.0.0.0/8": Route(safi=1,
> family=<AddressFamily.AF_INET: 2>, is_selected=True, source='127.0.0.1/8',
> destination='127.0.0.0/8', route_type=2, gateway='', ifindex=1)
> Connected from client: b'': <eventlet.greenio.base.GreenSocket object at
> 0x7f6da742d550>
> EVENT ZServer->ZServerDumper EventZClientConnected
> Notify event:
> EventZebraHello(zclient=<ryu.services.protocols.zebra.server.zserver.ZClient
> object at 0x7f6da742d438>, version=2, length=7, command=23, vrf_id=0,
> body=ZebraHello(route_type=6))
> EVENT ZServer->ZServer EventZebraHello
> Notify event:
> EventZebraRouterIDAdd(zclient=<ryu.services.protocols.zebra.server.zserver.ZClient
> object at 0x7f6da742d438>, version=2, length=6, command=20, vrf_id=0,
> body=None)
> EVENT ZServer->ZServer EventZebraRouterIDAdd
> Notify event: EventZebraInterfaceAdd(zclient=<ryu.services.
> protocols.zebra.server.zserver.ZClient object at 0x7f6da742d438>,
> version=2, length=6, command=1, vrf_id=0, body=None)
> EVENT ZServer->ZServer EventZebraInterfaceAdd
> Zebra client connected: b''
> Client <ryu.services.protocols.zebra.server.zserver.ZClient object at
> 0x7f6da742d438> says hello and bids fair to announce only 6 routes
> Client <ryu.services.protocols.zebra.server.zserver.ZClient object at
> 0x7f6da742d438> requests router_id, server will response: router_id=1.1.1.1
> Zebra protocol version mismatch:server_version=2, msg.version=3
> Client <ryu.services.protocols.zebra.server.zserver.ZClient object at
> 0x7f6da742d438> requested all interfaces
> Server will response interfaces: [Interface(ifname='lo', inet='127.0.0.1/8',
> ll_type=1, status=5, hw_addr='00:00:00:00:00:00', metric=1, flags=73,
> inet6='::1/128', bandwidth=0, ifmtu6=65536, ifindex=1, ifmtu=65536)]
> Zebra protocol version mismatch:server_version=2, msg.version=3
> Server will response routes: [Route(safi=1, family=2, is_selected=True,
> source='127.0.0.1/8', gateway='', destination='127.0.0.0/8', ifindex=1,
> route_type=2, id=1)]
> Zebra protocol version mismatch:server_version=2, msg.version=3
>
>
> > The API daemon is '/var/run/quagga/zebrar3.api'
>
> In order to change the path to API unix domain socket, you can use
> "--zapi-server-host" option.
>
>
> Thanks,
> Iwase
>
>
> On 2017年05月06日 04:30, Håvard Magne Fagervoll wrote:
> > Hello,
> >
> > I a working with the zebra API and want to connect to an OSPF daemon
> running on my local machine. I am currently testing with
> "ryu/services/protocols/zebra/server/sample_dumper.py" and I am trying to
> edit the "flags.py" file in the root ryu folder to correctly connect to my
> daemon, but it's not really working.
> >
> > I am running ubuntu 14.04.
> > The API daemon is '/var/run/quagga/zebrar3.api'
> > It is running OSPF
> > The router ID is '10.1.100.3'.
> >
> > How can I set up the config correctly?
> >
> > Thank you.
> > Best regards
> > Håvard
> >
> >
> > ------------------------------------------------------------
> ------------------
> > 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
> >
>
------------------------------------------------------------------------------
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