On 10/04/06, Henning Brauer <[EMAIL PROTECTED]> wrote:
>
> * tony sarendal <[EMAIL PROTECTED]> [2006-04-08 00:51]:
> > It looks like bgpd has a problem with validating nexthop on new
> interfaces
> > when they are created.
> > A flap of the interface or restarting bgpd makes nexthop validate.
> > I have only tested with vlan interfaces.
>
> bizarre. I was able to see - let's call it "something odd" when I tried
> to reproduce that from home earlier this morning. Now I am completly
> unable to reproduce - it works just like it should. the RTM_IFANNOUNCE
> message that tells us about the new interface is directly followed by a
> RTM_IFINFO one giving us linkstate and the like and thus everything
> gets set allright.
> please:
> -run bgpd -d while doing this, and show output
> -run 'route monitor' as well
Here is the output from bgpd -d and route monitor on a
router named cr203-STO when I add a new link and a peering.
bgpd is up and running before I add the link and the peering.
cr203-STO# bgpd -d^M
startup
route decision engine ready
listening on 0.0.0.0
listening on ::
session engine ready
neighbor 172.16.1.5: state change None -> Idle, reason: None
neighbor 172.16.1.5: state change Idle -> Connect, reason: Start
neighbor 172.16.1.5: state change Connect -> OpenSent, reason: Connection
opened
neighbor 172.16.1.5: state change OpenSent -> OpenConfirm, reason: OPEN
message
received
neighbor 172.16.1.5: state change OpenConfirm -> Established, reason:
KEEPALIVE
message received
nexthop 172.16.1.5 now valid: directly connected
while starting bgpd route monitor ouputs:
got message of size 160 on Mon Apr 10 17:02:28 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 1, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
192.168.10.0 172.16.1.5 255.255.255.0
got message of size 160 on Mon Apr 10 17:02:28 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 2, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.1.0 172.16.1.5 255.255.255.252
got message of size 160 on Mon Apr 10 17:02:28 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 3, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.0.1 172.16.1.5 255.255.255.255
I run "ifconfig vlan26 create" and route monitor outputs:
got message of size 24 on Mon Apr 10 17:03:36 2006
RTM_IFANNOUNCE: iface arrival/departure: len 24, if# 13, name vlan26, what:
arrival
I run " ifconfig vlan26 vlan 26 vlandev pcn1" and route monitor outputs:
got message of size 96 on Mon Apr 10 17:04:02 2006
RTM_NEWADDR: address being added to iface: len 96, metric 0, flags:
sockaddrs: <NETMASK,IFP,IFA>
ffff:ffff:ffff:ffff:: 00:0c:29:25:74:9f fe80::20c:29ff:fe25:749f%vlan26
got message of size 124 on Mon Apr 10 17:04:02 2006
RTM_ADD: Add Route: len 124, pid: 0, seq 0, errno 0, flags:<UP,HOST,LLINFO>
locks: inits:
sockaddrs: <DST,GATEWAY>
fe80::20c:29ff:fe25:749f%vlan26 00:0c:29:25:74:9f
got message of size 188 on Mon Apr 10 17:04:02 2006
RTM_ADD: Add Route: len 188, pid: 0, seq 0, errno 0, flags:<UP,DONE,CLONING>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA>
fe80::%vlan26 link#13 (255)
Qff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.ff00:0c:29:25:
74:9f fe80::20c:29ff:fe25:749f%vlan26
I run "ifconfig vlan26 10.1.1.37 netmask 255.255.255.252" and route monitor
outputs:
got message of size 80 on Mon Apr 10 17:04:52 2006
RTM_NEWADDR: address being added to iface: len 80, metric 0, flags:<CLONING>
sockaddrs: <NETMASK,IFP,IFA,BRD>
(0) Q00.00.ff.ff.ff.fc 00:0c:29:25:74:9f 10.1.1.37 10.1.1.39
got message of size 120 on Mon Apr 10 17:04:52 2006
RTM_ADD: Add Route: len 120, pid: 0, seq 0, errno 0, flags:<UP,CLONING>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK>
10.1.1.36 link#13 (255) Qff.ff.ff.ff.ff.fc
I add peering on remote end:
group "ibgp" {
remote-as 65000
route-reflector
set metric +100
set nexthop self
holdtime 10
neighbor 172.16.1.17 {
local-address 172.16.1.18
}
neighbor 10.1.1.37 {
local-address 10.1.1.38
}
}
I reload remote bgpd.
bgpd -d outputs:
connection from non-peer 10.1.1.38 refused
route monitor outputs:
got message of size 148 on Mon Apr 10 17:05:52 2006
RTM_ADD: Add Route: len 148, pid: 0, seq 0, errno 0,
flags:<UP,HOST,DONE,LLINFO,CLON
ED>
locks: inits:
sockaddrs: <DST,GATEWAY,IFP,IFA>
10.1.1.38 link#13 00:0c:29:25:74:9f 10.1.1.37
I add peering on local router:
group "ibgp" {
remote-as 65000
route-reflector
set metric +100
set nexthop self
holdtime 10
neighbor 172.16.1.5 {
local-address 172.16.1.6
}
neighbor 10.1.1.38 {
local-address 10.1.1.37
}
}
I reload local bgpd.
bgpd -d reports:
rereading config
nexthop 172.16.1.5 now valid: directly connected
SE reconfigured
neighbor 10.1.1.38: state change None -> Idle, reason: None
neighbor 10.1.1.38: state change Idle -> Connect, reason: Start
RDE reconfigured
neighbor 10.1.1.38: state change Connect -> OpenSent, reason: Connection
opened
neighbor 10.1.1.38: state change OpenSent -> OpenConfirm, reason: OPEN
message r
eceived
neighbor 10.1.1.38: state change OpenConfirm -> Established, reason:
KEEPALIVE m
essage received
route monitor reports:
got message of size 152 on Mon Apr 10 17:06:51 2006
RTM_DELETE: Delete Route: len 152, pid: 8599, seq 4, errno 0,
flags:<GATEWAY,DONE,PR
OTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
192.168.10.0 172.16.1.5 (255) Qff.ff.ff.ff.ff
got message of size 160 on Mon Apr 10 17:06:51 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 5, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
192.168.10.0 172.16.1.5 255.255.255.0
got message of size 152 on Mon Apr 10 17:06:51 2006
RTM_DELETE: Delete Route: len 152, pid: 8599, seq 6, errno 0,
flags:<GATEWAY,DONE,PR
OTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.1.0 172.16.1.5 (255) Qff.ff.ff.ff.ff.fc
got message of size 160 on Mon Apr 10 17:06:51 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 7, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.1.0 172.16.1.5 255.255.255.252
got message of size 152 on Mon Apr 10 17:06:51 2006
RTM_DELETE: Delete Route: len 152, pid: 8599, seq 8, errno 0,
flags:<GATEWAY,DONE,PR
OTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.0.1 172.16.1.5 (255) Qff.ff.ff.ff.ff.ff
got message of size 160 on Mon Apr 10 17:06:51 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 9, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.0.1 172.16.1.5 255.255.255.255
cr203-STO# bgpctl sh next
Nexthop State
10.1.1.38 invalid vlan26
172.16.1.5 valid vlan12 UP, Ethernet, unknown
cr203-STO#
Nexthop 10.1.1.38 is invalid.
I now flap the interface:
cr203-STO# ifconfig vlan26 down; ifconfig vlan26 up
bgpd -d reports:
nexthop 10.1.1.38 now valid: directly connected
route monitor reports:
got message of size 84 on Mon Apr 10 17:08:17 2006
RTM_IFINFO: iface status change: len 84, if# 13, name: vlan26, link:
unknown, flags:
<BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 84 on Mon Apr 10 17:08:17 2006
RTM_IFINFO: iface status change: len 84, if# 13, name: vlan26, link:
unknown, flags:
<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
got message of size 160 on Mon Apr 10 17:08:17 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 10, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
192.168.30.0 10.1.1.38 255.255.255.0
got message of size 160 on Mon Apr 10 17:08:17 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 11, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.1.20 10.1.1.38 255.255.255.252
got message of size 160 on Mon Apr 10 17:08:17 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 12, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.0.3 10.1.1.38 255.255.255.255
got message of size 160 on Mon Apr 10 17:08:17 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 13, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
172.16.1.16 10.1.1.38 255.255.255.252
got message of size 160 on Mon Apr 10 17:08:17 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 14, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
10.1.1.28 10.1.1.38 255.255.255.252
got message of size 160 on Mon Apr 10 17:08:17 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 15, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
10.1.1.24 10.1.1.38 255.255.255.252
got message of size 160 on Mon Apr 10 17:08:17 2006
RTM_ADD: Add Route: len 160, pid: 8599, seq 16, errno 0,
flags:<GATEWAY,DONE,PROTO1>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK,LABEL>
10.0.0.7 10.1.1.38 255.255.255.255
cr203-STO# bgpctl sh next
Nexthop State
10.1.1.38 valid vlan26 UP, Ethernet, unknown
172.16.1.5 valid vlan12 UP, Ethernet, unknown
cr203-STO#
nexthop 10.1.1.38 is now valid.
The same thing happens every time.
I run bgpd from current last week with patches for next-hop self,
backwards originator-id and attr_something crash fix.
The testing is done in vmware boxes.
Any other info you want just let me know.
/Tony