Thought about AS_CONFED_SEQUENCE and AS_CONFED_SET:
Provided debug commands for asn32 issues:
Wrote a new routine to chuck any AS_CONFED_SEQUENCE and AS_CONFED_SET
in an aspath. Actually this may be unnecessary - we can only have these
at the beginning of an aspath anyway (I think), and there is already
a function which gets rid of AS_CONFED_SEQUENCE and AS_CONFED_SET at
the beginning of an aspath.
Hm... what about "nice guys" playing with
'set as-path prepend' big way sending paths with
AS_CONFED_
Though I explicitly did what the draft-ietf-idr-as4bytes-12.txt says,
this look a bit funny.
Guess that's what happens if you stick non-real
asnumbers onto your as path. Look at this:
2006/11/15 09:18:05 BGP: 10.1.28.2 have AS_PATH
65531 65530 23456 23456 23456 {1,2,23456} 23456 (45 46 23456) 23456 23456 6 65003
and NEW_AS_PATH
65535.65535 9188.9188 9188.9188 {1,2,3.7} 4.4 10.11 12.13 6 65003
... merging
2006/11/15 09:18:05 BGP: 10.1.28.2 rcvd UPDATE w/ attr: nexthop 10.1.28.2, origin i, path 65531 65530 65535.65535 9188.9188 9188.9188 {1,2,3.7} 4.4 10.11 12.13 6 65003
On the sending side, we removed the (45 46 23456) for NEW_AS_PATH in the middle
as AS_CONFED_SEQUENCE. We did not for AS_PATH, because, well,
nothing was changed
in the handling of that one, and there AS_CONFED_things are only removed
at the beginning of the path. On the
receiving side, AS_PATH is longer than NEW_AS_PATH, so the aspath to be
used will be synthesized. The merged path is the wanted result, the 23456
are replaced correctly. This is more a theoretical thing, IMHO, because
nobody in her right mind should advertise a path with
an AS_CONFED_* segment in the middle
anyway... So I could very well use the same routine as AS_PATH for removing
AS_CONFED_* at the beginning. As it is, the synthesized
as-path is shorter than the one we got as AS_PATH, and that is surely not
supposed to happen.
At the moment, I'll leave it as-is though, and wait for feedback.
Guess quagga can do what it wants in this situation, it is a case
of "if you get garbage-in, you may give garbage-out".
And we see this as:
Checkpoint 11 reached:
Handling of AS_CONFED_SEQUENCE and AS_CONFED_SET implemented and checked.
Up to now the asn32 related debug outputs were non-conditional and at many
places very extensive. I cut them down to a reasonable level, and made that
configurable with "debug bgp asn32" and "debug bgp asn32 segment"
so that everybody can look
into asn32 handling if specific bugs turn up.
The "segment" debugging
gives extensive information when aspath segments are parsed; while that is
not directly asn32 related (because it also happens when parsing an asn16
path) it is useful when you stumble upon an attribute length error for
an ASPATH or NEW_ASPATH attribute. You get potentially many lines for one
aspath being parsed, so you probably do not want to activate this if you
feed a DFZ bgp table into quagga, that may fill up your log in seconds.
Checkpoint 12 done (before 11, well, you know....):
Valgrind is quiet.
Making progress. Got rid of the bug which caused one of the asn32 peers to get stuck in "Clearing" (see the bugs page). Was a sleeping beauty of a bug, entirely non-asn32 related, and triggered by the setup of my test environment.
When saving the config, the command is positioned above 'router bgp ...', so a saved output format will result in consistent aspaths on startup.
Henk said that asdot is being used by the RIRs, and Cisco uses this, too. So whatever you think, asdot has a user base. OTOH, there are strong supporters of asplain, e.g. Paul, and there are good reasons to use that, too.
So I chicken here. Format asdot is the default now (because of the user base and sticking to cisco-likeness), meaning that if nothing is configured, it will be used. The formats asdot+ (that is asdot with a mandatory number for the higher bits, i.e. the format causing many 0.<something> to appear), asip (for crazy people) and asplain (the other reasonable format) are run-time configurable, but need a bgp hard reset to get all aspaths right if used in a runnning system.
!**** we have asdot at the moment raasay# conf term raasay(config)# bgp as raasay(config)# bgp asnum raasay(config)# bgp asnum format asdot asdot+ asip asplain raasay(config)# bgp asnum format asplain % WARNING: Change of asnumber format. % Newly learned aspaths will now be formatted in asplain % You have to *reset* your bgp sessions to get a consistent aspaths format % on this system. Only that way you also ensure re-evaluation of all bgp % aspath access-lists you may have in use. raasay(config)#exit raasay# sh ip bgp neighbors BGP neighbor is 10.1.1.197, remote AS 4294967295, local AS 602153956, external link !**** cut for brevity **** raasay# sh ip bgp summary BGP router identifier 10.1.1.199, local AS number 602153956 RIB entries 12, using 768 bytes of memory Peers 3, using 7548 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.1.1.197 4 4294967295 23 39 0 0 0 00:07:44 4 10.1.28.2 4 65531 31 34 0 0 0 00:07:49 2 172.16.2.2 4 65003 30 36 0 0 0 00:07:46 3 Total number of neighbors 3 raasay# sh ip bgp paths Address Refcnt Path [0x822c6f8:0] (9) [0x824f1a0:1] (3) 65535.65535 [0x824e448:130534] (1) 65003 65535.65535 65530 [0x824ee48:65004] (1) 65535.65535 65003 [0x824ea90:65004] (1) 65003 65535.65535 [0x824eb00:65005] (3) 65003 [0x824fe38:131062] (1) 65535.65535 65530 65531 [0x824dc48:131063] (3) 65531 65530 [0x824ff88:65531] (1) 65535.65535 65530 [0x824e5e0:65533] (3) 65531 !**** yield the warning **** raasay# clear ip bgp * !**** wait a while, then again: **** raasay# sh ip bgp paths Address Refcnt Path [0x822c6f8:0] (9) [0x824f248:1] (3) 4294967295 [0x824e658:130534] (1) 65003 4294967295 65530 [0x824dc18:65004] (1) 4294967295 65003 [0x824d770:65004] (1) 65003 4294967295 [0x824ee48:65005] (3) 65003 [0x8250610:131062] (1) 4294967295 65530 65531 [0x824f110:131063] (3) 65531 65530 [0x8250a28:65531] (1) 4294967295 65530 [0x82500f0:65533] (3) 65531
+------ lab2 [cisco3620](as65531) - lab3 [cisco2610](as65530) | / raasay(as9188.9188) - eileantigh(as65535.65535) \ | multihop multihop | | sambesi(as65003)[ed-zebra-pj, quite old] ** raasay ** router bgp 9188.9188 bgp router-id 10.1.1.199 network 1.1.1.1/32 network 1.1.1.11/32 aggregate-address 1.1.1.8/30 summary-only neighbor 10.1.1.197 remote-as 65535.65535 neighbor 10.1.28.2 remote-as 65531 neighbor 172.16.2.2 remote-as 65003 neighbor 172.16.2.2 ebgp-multihop 255 ************ raasay# sh ip bgp BGP table version is 0, local router ID is 10.1.1.199 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 1.1.1.1/32 0.0.0.0 0 32768 i * 1.1.1.2/32 172.16.2.2 0 65003 65535.65535 i *> 10.1.1.197 0 0 65535.65535 i * 1.1.1.3/32 10.1.1.197 0 65535.65535 65003 i *> 172.16.2.2 0 0 65003 i *> 1.1.1.8/30 0.0.0.0 32768 i s> 1.1.1.11/32 0.0.0.0 0 32768 i *> 10.20.2.2/32 10.1.28.2 0 0 65531 i * 10.20.20.20/32 172.16.2.2 0 65003 65535.65535 65530 i * 10.1.28.3 0 65535.65535 65530 i *> 10.1.28.2 0 65531 65530 i Total number of prefixes 7 raasay# sh ip bgp summary BGP router identifier 10.1.1.199, local AS number 9188.9188 RIB entries 12, using 768 bytes of memory Peers 3, using 7548 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.1.1.197 4 65535.65535 199 322 0 0 0 05:12:40 3 10.1.28.2 4 65531 27 29 0 0 0 00:23:00 2 172.16.2.2 4 65003 321 324 0 0 0 05:14:33 3 Total number of neighbors 3 raasay# sh ip bgp neighbors BGP neighbor is 10.1.1.197, remote AS 65535.65535, local AS 9188.9188, external link BGP version 4, remote router ID 10.1.1.197 BGP state = Established, up for 05:13:23 Last read 00:01:07, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 0 Notifications: 0 0 Updates: 7 3 Keepalives: 315 196 Route Refresh: 0 0 Capability: 0 0 Total: 323 199 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 3 accepted prefixes Connections established 1; dropped 0 Last reset never Local host: 10.1.1.199, Local port: 179 Foreign host: 10.1.1.197, Foreign port: 3096 Nexthop: 10.1.1.199 Nexthop global: :: Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off BGP neighbor is 10.1.28.2, remote AS 65531, local AS 9188.9188, external link BGP version 4, remote router ID 10.254.255.2 BGP state = Established, up for 00:23:43 Last read 00:00:43, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised Route refresh: advertised Address family IPv4 Unicast: advertised Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 4 2 Keepalives: 25 24 Route Refresh: 0 0 Capability: 0 0 Total: 30 27 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 2 accepted prefixes Connections established 1; dropped 0 Last reset never Local host: 10.1.1.199, Local port: 38441 Foreign host: 10.1.28.2, Foreign port: 179 Nexthop: 10.1.1.199 Nexthop global: :: Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off BGP neighbor is 172.16.2.2, remote AS 65003, local AS 9188.9188, external link BGP version 4, remote router ID 212.89.130.219 BGP state = Established, up for 05:15:16 Last read 00:00:16, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 7 5 Keepalives: 317 316 Route Refresh: 0 0 Capability: 0 0 Total: 325 322 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 3 accepted prefixes Connections established 1; dropped 0 Last reset never External BGP neighbor may be up to 255 hops away. Local host: 10.1.1.199, Local port: 40668 Foreign host: 172.16.2.2, Foreign port: 179 Nexthop: 10.1.1.199 Nexthop global: :: Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off *eileantigh* router bgp 65535.65535 bgp router-id 10.1.1.197 network 1.1.1.2/32 neighbor 10.1.1.199 remote-as 9188.9188 neighbor 10.1.28.3 remote-as 65530 neighbor 172.16.2.2 remote-as 65003 neighbor 172.16.2.2 ebgp-multihop 255 ************ eileantigh# show ip bgp summary BGP router identifier 10.1.1.197, local AS number 65535.65535 RIB entries 11, using 704 bytes of memory Peers 3, using 7548 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.1.1.199 4 9188.9188 328 205 0 0 0 03:19:53 5 10.1.28.3 4 65530 37 26 0 0 0 00:18:09 4 172.16.2.2 4 65003 330 210 0 0 0 03:19:57 4 Total number of neighbors 3 eileantigh# sh ip bgp BGP table version is 0, local router ID is 10.1.1.197 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 1.1.1.1/32 10.1.28.3 0 65530 65531 9188.9188 i *> 10.1.1.199 0 0 9188.9188 i * 172.16.2.2 0 65003 9188.9188 i *> 1.1.1.2/32 0.0.0.0 0 32768 i * 1.1.1.3/32 10.1.1.199 0 9188.9188 65003 i *> 172.16.2.2 0 0 65003 i * 1.1.1.8/30 10.1.28.3 0 65530 65531 9188.9188 i * 172.16.2.2 0 65003 9188.9188 i *> 10.1.1.199 0 9188.9188 i * 10.20.2.2/32 10.1.28.3 0 65530 65531 i * 172.16.2.2 0 65003 9188.9188 65531 i *> 10.1.28.2 0 9188.9188 65531 i *> 10.20.20.20/32 10.1.28.3 0 0 65530 i * 10.1.28.2 0 9188.9188 65531 65530 i Total number of prefixes 6 eileantigh# sh ip bgp 1.1.1.8 BGP routing table entry for 1.1.1.8/30 Paths: (3 available, best #3, table Default-IP-Routing-Table) Advertised to non peer-group peers: 10.1.28.3 172.16.2.2 65530 65531 9188.9188, (aggregated by 9188.9188 10.1.1.199) 10.1.28.3 from 10.1.28.3 (10.254.255.3) Origin IGP, localpref 100, valid, external, atomic-aggregate Last update: Tue Oct 31 05:47:14 2006 65003 9188.9188, (aggregated by 9188.9188 10.1.1.199) 172.16.2.2 from 172.16.2.2 (212.89.130.219) Origin IGP, localpref 100, valid, external, atomic-aggregate Last update: Tue Oct 31 02:50:09 2006 9188.9188, (aggregated by 9188.9188 10.1.1.199) 10.1.1.199 from 10.1.1.199 (10.1.1.199) Origin IGP, localpref 100, valid, external, atomic-aggregate, best Last update: Tue Oct 31 02:49:55 2006 eileantigh# sh ip bgp 1.1.1.1 BGP routing table entry for 1.1.1.1/32 Paths: (3 available, best #2, table Default-IP-Routing-Table) Advertised to non peer-group peers: 10.1.28.3 172.16.2.2 65530 65531 9188.9188 10.1.28.3 from 10.1.28.3 (10.254.255.3) Origin IGP, localpref 100, valid, external Last update: Tue Oct 31 05:47:14 2006 9188.9188 10.1.1.199 from 10.1.1.199 (10.1.1.199) Origin IGP, metric 0, localpref 100, valid, external, best Last update: Tue Oct 31 02:45:30 2006 65003 9188.9188 172.16.2.2 from 172.16.2.2 (212.89.130.219) Origin IGP, localpref 100, valid, external Last update: Tue Oct 31 02:45:26 2006 eileantigh# sh ip bgp neighbors BGP neighbor is 10.1.1.199, remote AS 9188.9188, local AS 65535.65535, external link BGP version 4, remote router ID 10.1.1.199 BGP state = Established, up for 03:20:35 Last read 00:00:38, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 3 7 Keepalives: 202 321 Route Refresh: 0 0 Capability: 0 0 Total: 206 329 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 5 accepted prefixes Connections established 1; dropped 0 Last reset never Local host: 10.1.1.197, Local port: 3096 Foreign host: 10.1.1.199, Foreign port: 179 Nexthop: 10.1.1.197 Nexthop global: fe80::20c:29ff:fe34:1f86 Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off BGP neighbor is 10.1.28.3, remote AS 65530, local AS 65535.65535, external link BGP version 4, remote router ID 10.254.255.3 BGP state = Established, up for 00:18:51 Last read 00:00:17, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised Route refresh: advertised Address family IPv4 Unicast: advertised Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 5 7 Keepalives: 20 30 Route Refresh: 0 0 Capability: 0 0 Total: 26 38 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 4 accepted prefixes Connections established 1; dropped 0 Last reset never Local host: 10.1.1.197, Local port: 3762 Foreign host: 10.1.28.3, Foreign port: 179 Nexthop: 10.1.1.197 Nexthop global: fe80::20c:29ff:fe34:1f86 Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off BGP neighbor is 172.16.2.2, remote AS 65003, local AS 65535.65535, external link BGP version 4, remote router ID 212.89.130.219 BGP state = Established, up for 03:20:39 Last read 00:00:04, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 8 8 Keepalives: 202 322 Route Refresh: 0 0 Capability: 0 0 Total: 211 331 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 4 accepted prefixes Connections established 1; dropped 0 Last reset never External BGP neighbor may be up to 255 hops away. Local host: 10.1.1.197, Local port: 2079 Foreign host: 172.16.2.2, Foreign port: 179 Nexthop: 10.1.1.197 Nexthop global: fe80::20c:29ff:fe34:1f86 Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off **** lab3 **** router bgp 65530 no synchronization network 10.20.20.20 mask 255.255.255.255 neighbor 10.1.1.197 remote-as 23456 neighbor 10.254.2.2 remote-as 65531 no auto-summary ************** lab3#sh ip bgp summary BGP router identifier 10.254.255.3, local AS number 65530 BGP table version is 9, main routing table version 9 6 network entries and 11 paths using 886 bytes of memory 11 BGP path attribute entries using 1320 bytes of memory BGP activity 6/0 prefixes, 11/0 paths Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.1.1.197 4 23456 29 46 9 0 0 00:32:54 5 10.254.2.2 4 65531 46 44 9 0 0 00:38:06 5 lab3#sh ip bgp BGP table version is 9, local router ID is 10.254.255.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 1.1.1.1/32 10.1.1.199 0 23456 23456 i *> 10.254.2.2 0 65531 23456 i *> 1.1.1.2/32 10.1.1.197 0 0 23456 i * 10.254.2.2 0 65531 23456 23456 i *> 1.1.1.3/32 10.1.1.197 0 23456 65003 i * 10.254.2.2 0 65531 23456 65003 i * 1.1.1.8/30 10.1.1.199 0 23456 23456 i *> 10.254.2.2 0 65531 23456 i * 10.20.2.2/32 10.1.28.2 0 23456 23456 65531 i *> 10.254.2.2 0 0 65531 i *> 10.20.20.20/32 0.0.0.0 0 32768 i lab3#sh ip bgp 1.1.1.8 BGP routing table entry for 1.1.1.8/30, version 6 Paths: (2 available, best #2) Advertised to non peer-group peers: 10.1.1.197 23456 23456, (aggregated by 23456 10.1.1.199) 10.1.1.199 from 10.1.1.197 (10.1.1.197) Origin IGP, localpref 100, valid, external, atomic-aggregate, ref 2 65531 23456, (aggregated by 23456 10.1.1.199) 10.254.2.2 from 10.254.2.2 (10.254.255.2) Origin IGP, localpref 100, valid, external, atomic-aggregate, best, ref 2 lab3#sh ip bgp 1.1.1.1 BGP routing table entry for 1.1.1.1/32, version 4 Paths: (2 available, best #2) Advertised to non peer-group peers: 10.1.1.197 23456 23456 10.1.1.199 from 10.1.1.197 (10.1.1.197) Origin IGP, localpref 100, valid, external, ref 2 65531 23456 10.254.2.2 from 10.254.2.2 (10.254.255.2) Origin IGP, localpref 100, valid, external, best, ref 2 lab3#sh ip bgp neighbors BGP neighbor is 10.1.1.197, remote AS 23456, external link Index 2, Offset 0, Mask 0x4 BGP version 4, remote router ID 10.1.1.197 BGP state = Established, table version = 9, up for 00:33:48 Last read 00:00:59, hold time is 180, keepalive interval is 60 seconds Minimum time between advertisement runs is 30 seconds Received 29 messages, 0 notifications, 0 in queue Sent 47 messages, 0 notifications, 0 in queue Prefix advertised 6, suppressed 0, withdrawn 2 Connections established 1; dropped 0 Last reset 00:34:11, due to Peer closed the session 5 accepted prefixes consume 160 bytes 0 history paths consume 0 bytes Connection state is ESTAB, I/O status: 1, unread input bytes: 0 Local host: 10.1.28.3, Local port: 179 Foreign host: 10.1.1.197, Foreign port: 3762 Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0 (0 bytes) Event Timers (current time is 0x245C76): Timer Starts Wakeups Next Retrans 39 0 0x0 TimeWait 0 0 0x0 AckHold 26 25 0x0 SendWnd 0 0 0x0 KeepAlive 0 0 0x0 GiveUp 0 0 0x0 PmtuAger 0 0 0x0 DeadWait 0 0 0x0 iss: 1356169154 snduna: 1356170254 sndnxt: 1356170254 sndwnd: 6432 irs: 1076346065 rcvnxt: 1076346891 rcvwnd: 15559 delrcvwnd: 825 SRTT: 304 ms, RTTO: 672 ms, RTV: 32 ms, KRTT: 0 ms minRTT: 0 ms, maxRTT: 300 ms, ACK hold: 200 ms Flags: passive open, nagle, gen tcbs Datagrams (max data segment is 1460 bytes): Rcvd: 66 (out of order: 0), with data: 26, total data bytes: 825 Sent: 64 (retransmit: 0), with data: 38, total data bytes: 1099 BGP neighbor is 10.254.2.2, remote AS 65531, external link Index 1, Offset 0, Mask 0x2 BGP version 4, remote router ID 10.254.255.2 BGP state = Established, table version = 9, up for 00:39:11 Last read 00:00:12, hold time is 180, keepalive interval is 60 seconds Minimum time between advertisement runs is 30 seconds Received 47 messages, 0 notifications, 0 in queue Sent 45 messages, 0 notifications, 0 in queue Prefix advertised 3, suppressed 0, withdrawn 0 Connections established 1; dropped 0 Last reset never 5 accepted prefixes consume 160 bytes 0 history paths consume 0 bytes Connection state is ESTAB, I/O status: 1, unread input bytes: 0 Local host: 10.254.2.3, Local port: 179 Foreign host: 10.254.2.2, Foreign port: 11026 Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0 (0 bytes) Event Timers (current time is 0x249134): Timer Starts Wakeups Next Retrans 46 0 0x0 TimeWait 0 0 0x0 AckHold 46 43 0x0 SendWnd 0 0 0x0 KeepAlive 0 0 0x0 GiveUp 0 0 0x0 PmtuAger 0 0 0x0 DeadWait 0 0 0x0 iss: 1044247913 snduna: 1044248895 sndnxt: 1044248895 sndwnd: 15403 irs: 649573614 rcvnxt: 649574739 rcvwnd: 15260 delrcvwnd: 1124 SRTT: 302 ms, RTTO: 630 ms, RTV: 13 ms, KRTT: 0 ms minRTT: 0 ms, maxRTT: 304 ms, ACK hold: 200 ms Flags: passive open, nagle, gen tcbs Datagrams (max data segment is 1460 bytes): Rcvd: 90 (out of order: 0), with data: 46, total data bytes: 1124 Sent: 89 (retransmit: 0), with data: 45, total data bytes: 981Checkpoint 10 reached:
raasay# sh ip bgp summary BGP router identifier 10.1.1.199, local AS number 9188 RIB entries 3, using 192 bytes of memory Peers 1, using 2516 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.1.1.197 4 145.15 8 14 0 0 0 00:10:40 1 Total number of neighbors 1 raasay# sh ip bgp BGP table version is 0, local router ID is 10.1.1.199 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 1.1.1.1/32 0.0.0.0 0 32768 i *> 1.1.1.2/32 10.1.1.197 0 0 145.15 45.45 6.7 8.8 5555 i raasay# sh ip bgp neighbors BGP neighbor is 10.1.1.197, remote AS 145.15, local AS 9188, external link BGP version 4, remote router ID 10.1.1.197 BGP state = Established, up for 00:16:01 Last read 00:00:22, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 (... omitted for brevity...)
"show ip bgp summary": as long as the neigbor's ASN fits into the traditional 5 chars, output will be one line. Otherwise it will be broken into two
with the ASN adjusted to the right of the AS column (as seen above).
Some Bugs in aspath lengths (memory calculations).
I'm using the same routines for as16
and as32 path parsing/writing. It is not always only the
difference between 2 and 4.
Checkpoint 1 reached: Established Session between 2 ASN32 quaggas
Had to readjust the source heftily again. Problem is with a ASN32 partner,
we potentially get its as-number in the options. Old code gets options
after doing a whole lot of tests with just the "open" packet,
without looking at the options. First try was to take the options
directly, then proceed in the test -- but this broke capablity
handling alltogether. This capability stuff is a bit convoluted, the
program flow not easily deciphered. So backed up, took the easy way
out: put the capability parsing where it was, and peek into capabilities
at the beginning and grep just the 4BYTEAS capability.
Paul asked whether Henk Uijterwaal of RIPE NCC should know about this, because RIPE NCC is busy putting ASN32 support in all their ASN-using tools and they depend on quagga. Gave a go-ahead.