[Xorp-users] Two XORP instances talk to the same Click

Pavlin Radoslavov pavlin at icir.org
Fri Nov 17 14:10:31 PST 2006


> I was trying to run two instances of XORP on the same node, one runs 
> only OSPF, and the other only runs BGP, and let them both use the same 
> Click as the forwarding engine. What I found was, although this 
> configuration worked at first (both BGP and OSPF routes show up in the 
> Click forwarding table _xorp_rt4), either the BGP process or the OSPF 
> process went wrong / died after a while (several minutes to several 
> hours). Some of them seem because XrlPFSTCPSender died.
> 
> I wonder whether there is actually a way to make this setting (two XORP 
> talk to the same Click) work, and if yes, how?

First I should ask why do you need to run two XORP instances if each
instance is running different unicast routing protocol.

If you run both OSPF and BGP within a single XORP instance, then you
will have RIB merging for you all routes that come from both OSPF
and BGP.
Even if you have somehow two working instances of XORP on the same
node talking to a single Click forwarding engine, who will merge the
routes that come from both instances?

Anyway, lets assume that you don't have the issue with merging
routes.

You could try running both instances of XORP, but make sure that you
set the XORP_FINDER_SERVER_PORT environmental variable to a
different port value before starting each instance (the default
value is 19999).

Then it depends on whether Click will allow to be controlled by two
FEAs at the same time. I hope the answer is yes, given that the
control is by reading/writing a control socket or by reading/writing
from/to the Click file system.

Note however, that on startup the second FEA that attempts to
control Click will overwrite the Click configuration from the first
FEA, and by doing so eventually it will remove also the routes
installed by the first FEA.

Hence, you'd better have both XORP instances configured with exactly
same network interface information, and this information shouldn't
change after startup. Futhermore, to avoid the routes disappearing
on startup, your startup XORP configuration should exclude any
unicast routing protocols, and only after you have started both
instances, you should start/configure BGP and OSPF.

In any case, you are entering an area that nobody has tried to
explore before, so there could be other issues as well.

Pavlin

> Thank you very much.
> Yi
> 
> ------------------------------------------------------------
> error messages from the XORP instance running BGP (log 1):
> 
> [ 2006/11/15 08:00:07  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 4
> seconds between calls to EventLoop::run
> [ 2006/11/15 11:00:07  WARNING xorp_policy:146 LIBXORP +75 eventloop.cc 
> run ] 3
> seconds between calls to EventLoop::run
> [ 2006/11/16 11:30:22  ERROR xorp_fea:139 XRL +636 xrl_pf_stcp.cc die ] 
> XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/16 11:30:24  ERROR xorp_bgp:147 LIBXORP +213 
> buffered_asyncio.cc io_event ] read error 104
> [ 2006/11/16 11:30:25  ERROR xorp_bgp:147 XRL +159 xrl_pf_stcp.cc 
> read_event ] Read failed (error = 104)
> [ 2006/11/16 11:30:25  ERROR xorp_bgp:147 XRL +339 xrl_pf_stcp.cc die ] 
> STCPRequestHandler died: read error
> 
> -------------------------------------------------------------------------
> error messages from the XORP instance running BGP (log 2):
> 
> [ 2006/11/15 01:47:07  WARNING xorp_bgp:147 LIBXORP +75 eventloop.cc run 
> ] 3 seconds between calls to EventLoop::run
> [ 2006/11/15 01:50:05 WARNING xorp_rib LIBXORP ] 3 seconds between calls 
> to EventLoop::run
> [ 2006/11/15 06:05:32  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 3
> seconds between calls to EventLoop::run
> [ 2006/11/15 06:45:13  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 5
> seconds between calls to EventLoop::run
> [ 2006/11/15 06:45:14  ERROR xorp_fea:139 XRL +636 xrl_pf_stcp.cc die ] 
> XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 XRL +636 xrl_pf_stcp.cc die ] 
> XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 XRL +636 xrl_pf_stcp.cc die ] 
> XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 LIBXORP +213 
> buffered_asyncio.cc io_event ] read error 104
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 XRL +159 xrl_pf_stcp.cc 
> read_event ] Read failed (error = 104)
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 XRL +339 xrl_pf_stcp.cc die ] 
> STCPRequestHandler died: read error
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 LIBXORP +213 
> buffered_asyncio.cc io_event ] read error 104
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 XRL +159 xrl_pf_stcp.cc 
> read_event ] Read failed (error = 104)
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 XRL +339 xrl_pf_stcp.cc die ] 
> STCPRequestHandler died: read error
> [ 2006/11/15 06:45:15  ERROR xorp_fea:139 XRL +636 xrl_pf_stcp.cc die ] 
> XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/15 13:26:08  ERROR xorp_bgp:147 XRL +636 xrl_pf_stcp.cc die ] 
> XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/15 16:31:04  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 3
> seconds between calls to EventLoop::run
> [ 2006/11/15 20:53:08  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 6
> seconds between calls to EventLoop::run
> [ 2006/11/16 01:29:49  WARNING xorp_bgp:147 LIBXORP +75 eventloop.cc run 
> ] 3 seconds between calls to EventLoop::run
> [ 2006/11/16 06:05:00  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 3
> seconds between calls to EventLoop::run
> [ 2006/11/16 07:15:11  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 4
> seconds between calls to EventLoop::run
> [ 2006/11/16 07:45:07  WARNING xorp_bgp:147 LIBXORP +75 eventloop.cc run 
> ] 3 seconds between calls to EventLoop::run
> [ 2006/11/16 09:55:06 WARNING xorp_rib LIBXORP ] 3 seconds between calls 
> to EventLoop::run
> [ 2006/11/16 14:21:11  ERROR xorp_rtrmgr:136 XRL +636 xrl_pf_stcp.cc die 
> ] XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/16 14:24:13  ERROR xorp_fea:139 XRL +339 xrl_pf_stcp.cc die ] 
> STCPRequestHandler died: life timer expired
> [ 2006/11/16 15:05:09  WARNING xorp_rtrmgr:136 LIBXORP +75 eventloop.cc 
> run ] 5
> seconds between calls to EventLoop::run
> 
> --------------------------------------------------------------------------
> error messages from the XORP instance running OSPF (log 1):
> 
> [ 2006/11/16 15:15:12  ERROR xorp_rtrmgr:135 XRL +636 xrl_pf_stcp.cc die 
> ] XrlPFSTCPSender died: Keepalive timeout
> [ 2006/11/16 15:18:15  ERROR xorp_fea:138 XRL +339 xrl_pf_stcp.cc die ] 
> STCPRequestHandler died: life timer expired
> 
> --------------------------------------------------------------------------
> error messages from the XORP instance running OSPF (log 2):
> 
> 
> [ 2006/11/16 16:32:47  ERROR xorp_fea:138 FEA +1924 rawsock.cc 
> proto_socket_write ] setsockopt(IP_TTL, 64) failed: Bad file descriptor
> [ 2006/11/16 16:32:47 WARNING xorp_fea XrlFeaTarget ] Handling method 
> for raw_packet4/0.1/send failed: XrlCmdError 102 Command failed 
> setsockopt(IP_TTL, 64) failed: Bad file descriptor
> [ 2006/11/16 16:32:47  ERROR xorp_ospfv2:146 OSPF +185 xrl_io.cc send_cb 
> ] Cannot send a packet on interface eth1 vif eth1: 102 Command failed 
> setsockopt(IP_TTL, 64) failed: Bad file descriptor
> [ 2006/11/16 16:32:47  ERROR xorp_fea:138 FEA +1924 rawsock.cc 
> proto_socket_write ] setsockopt(IP_TTL, 64) failed: Bad file descriptor
> [ 2006/11/16 16:32:47 WARNING xorp_fea XrlFeaTarget ] Handling method 
> for raw_packet4/0.1/send failed: XrlCmdError 102 Command failed 
> setsockopt(IP_TTL, 64) failed: Bad file descriptor
> 
> _______________________________________________
> Xorp-users mailing list
> Xorp-users at xorp.org
> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users



More information about the Xorp-users mailing list