I'm testing in a network where every router peers only with physically
connected routers,
every peer is configured as a route-reflector client, every peering is
configured with
set next-hop self and set metric +100, all routers in the same AS.
Every router also peers with a route-server which runs quagga.

A config in a router looks like this:
cr203-STO# cat /etc/bgpd.conf
# $OpenBSD: bgpd.conf,v 1.7 2004/10/01 15:12:16 henning Exp $
# sample bgpd configuration file
# see bgpd.conf(5)

AS 65000
router-id 10.0.0.2

network connected
network static
network 10.0.0.2/32

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.1 {
                local-address 10.1.1.2
        }
        neighbor 10.1.1.14 {
                local-address 10.1.1.13
        }
}

neighbor 192.168.30.10 {
        remote-as 65000
        local-address 10.0.0.2
}

cr203-STO# ifconfig lo1
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
        groups: lo
        inet 10.0.0.2 netmask 0xffffffff
cr203-STO#

With this setup I can introduce routing loops into the network by flapping
prefixes. Here flapped a prefix with an intervall of a few seconds:

cr203-STO# bgpctl network add 12.0.0.0/8
request sent.
cr203-STO# bgpctl network del 12.0.0.0/8
request sent.
cr203-STO# bgpctl network add 12.0.0.0/8
request sent.
cr203-STO# bgpctl network del 12.0.0.0/8
request sent.
cr203-STO# bgpctl network add 12.0.0.0/8
request sent.
cr203-STO# bgpctl network del 12.0.0.0/8
request sent.
cr203-STO# bgpctl network add 12.0.0.0/8
request sent.
cr203-STO# bgpctl network del 12.0.0.0/8
request sent.
cr203-STO# bgpctl network add 12.0.0.0/8
request sent.
cr203-STO# bgpctl network del 12.0.0.0/8
request sent.
cr203-STO#

After this every router in the network except cr203-STO which
originated it sees this prefix.
They all consider the 10.0.0.2 (cr203-STO) to be the originator.

A look from the route-server:

quagga-bgpd# sh ip bgp summary
BGP router identifier 192.168.30.10, local AS number 65000
1 BGP AS-PATH entries
0 BGP community entries

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down
State/PfxRcd

10.0.0.1        4 65000    1185     897        0    0    0 00:58:20       31
10.0.0.2        4 65000    1128     880        0    0    0 00:56:51       30
10.0.0.3        4 65000    1142     899        0    0    0 00:58:13       31
10.0.0.4        4 65000    1141     901        0    0    0 00:57:58       31
10.0.0.5        4 65000    1179     901        0    0    0 00:57:32       31
10.0.0.6        4 65000    1192     900        0    0    0 00:57:19       31
10.0.0.7        4 65000    1182     916        0    0    0 00:58:21       31
10.0.0.8        4 65000    1222     901        0    0    0 00:58:09       31
172.16.0.1      4 65000    1256     898        0    0    0 00:57:00       31
172.16.0.2      4 65000    1208     902        0    0    0 00:57:46       31
172.16.0.3      4 65000    1471    1107        0    0    0 02:41:01       31

Total number of neighbors 11
quagga-bgpd#
quagga-bgpd# sh ip bgp 12.0.0.0
BGP routing table entry for 12.0.0.0/8
Paths: (10 available, best #6, table Default-IP-Routing-Table)
  Not advertised to any peer
  Local
    172.16.1.2 from 172.16.0.1 (10.0.0.2)
      Origin IGP, metric 500, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 172.16.0.1 10.0.0.1 10.0.0.3
172.16.0.2 10.0.0.4
      Last update: Mon Apr 10 19:20:05 2006

  Local
    10.1.1.6 from 10.0.0.1 (10.0.0.2)
      Origin IGP, metric 400, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 10.0.0.1 10.0.0.3 172.16.0.2
10.0.0.4

      Last update: Mon Apr 10 19:20:05 2006

  Local
    10.1.1.17 from 10.0.0.5 (10.0.0.2)
      Origin IGP, metric 400, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 10.0.0.5 10.0.0.3 172.16.0.2
10.0.0.4

      Last update: Mon Apr 10 19:20:05 2006

  Local
    172.16.1.13 from 172.16.0.2 (10.0.0.2)
      Origin IGP, metric 400, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 172.16.0.2 10.0.0.4 10.0.0.3
10.0.0.1

      Last update: Mon Apr 10 19:20:04 2006

  Local
    10.1.1.21 from 10.0.0.6 (10.0.0.2)
      Origin IGP, metric 500, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 10.0.0.6 10.0.0.5 10.0.0.3
172.16.0.2
10.0.0.4
      Last update: Mon Apr 10 19:20:05 2006

  Local
    172.16.1.10 from 10.0.0.3 (10.0.0.2)
      Origin IGP, metric 300, localpref 100, valid, internal, best
      Originator: 10.0.0.2, Cluster list: 10.0.0.3 172.16.0.2 10.0.0.4
      Last update: Mon Apr 10 19:20:05 2006

  Local
    10.1.1.9 from 10.0.0.4 (10.0.0.2)
      Origin IGP, metric 300, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 10.0.0.4 10.0.0.3 10.0.0.1
      Last update: Mon Apr 10 19:20:04 2006

  Local
    10.1.1.25 from 10.0.0.7 (10.0.0.2)
      Origin IGP, metric 400, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 10.0.0.7 10.0.0.4 10.0.0.3
10.0.0.1
      Last update: Mon Apr 10 19:20:04 2006

  Local
    10.1.1.29 from 10.0.0.8 (10.0.0.2)
      Origin IGP, metric 500, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 10.0.0.8 10.0.0.7 10.0.0.4
10.0.0.3 10.0.0.1
      Last update: Mon Apr 10 19:20:05 2006

  Local
    172.16.1.18 from 172.16.0.3 (10.0.0.2)
      Origin IGP, metric 500, localpref 100, valid, internal
      Originator: 10.0.0.2, Cluster list: 172.16.0.3 10.0.0.7 10.0.0.4
10.0.0.3 10.0.0.1
      Last update: Mon Apr 10 19:20:04 2006

quagga-bgpd#

If I look into the rib of the boxes I find that one of the routers has a
next-hop which actually
has a higher metric than itself.

cr204-CPH# ifconfig lo1
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
        groups: lo
        inet 10.0.0.3 netmask 0xffffffff
cr204-CPH# bgpctl sh rib 12.0.0.0
flags: * = Valid, > = Selected, I = via IBGP, A = Announced
origin: i = IGP, e = EGP, ? = Incomplete

flags destination         gateway          lpref   med aspath origin
I*>   12.0.0.0/8          172.16.1.10        100   300 i
cr204-CPH# ssh 172.16.1.10
[EMAIL PROTECTED]'s password:
Last login: Mon Apr 10 19:43:04 2006 from 192.168.3.11
OpenBSD 3.9-current (GENERIC) #5: Sun Apr  2 21:42:28 BST 2006

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code.  With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

Terminal type? [screen]
ar206-CPH# ifconfig lo1
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
        groups: lo
        inet 172.16.0.2 netmask 0xffffffff
ar206-CPH# bgpctl sh rib 12.0.0.0
flags: * = Valid, > = Selected, I = via IBGP, A = Announced
origin: i = IGP, e = EGP, ? = Incomplete

flags destination         gateway          lpref   med aspath origin
I*>   12.0.0.0/8          172.16.1.13        100   400 i
ar206-CPH#

I have so far been unable to find a fixed pattern of where/why this happens.
Any ideas ?

/Tony

--
Tony Sarendal - [EMAIL PROTECTED]
IP/Unix
       -= The scorpion replied,
               "I couldn't help it, it's my nature" =-

Reply via email to