[quagga-users 12425] Re: ospf6 between bird and quagga

Alex Bligh alex at alex.org.uk
Fri Aug 19 18:25:06 IST 2011


> Problems that I see on the Quagga side:

Results so far below (thanks to Paul Thornton for some help)

> 1. Quagga has "redistribute connected" and "redistribute static"
>    set. However, "how ipv6 ospf6 redistribute" is empty, and the
>    redistributed statics (pull ups to NULL0) do not appear in the
>    OSPF database. I would expect to see them there as E2 routes.

Two problems

a) ospf6d does not appear to redistribute routes successfully unless
   a routemap is provided which sets the metric and the metric-type.
   The bare redistribute command does not work.

b) whilst ospfd is happy redistributing a static route to null0
   (i.e. an invalid route), ospf6d is not, and requires that
   the route be a blackhole route to lo0 or similar.

> 2. Quagga appears to have no way to do default-originate like
>    it can in OSPF2. The "area 0.0.0.0 range ::/0" does not
>    appear to get this advertised (or even into the database)
>    whether or not the "redistribute" lines are present.

There appears to be no easy solution to this, save for redistributing
the kernel and static routes and hoping this works. I tried hacking
in support for a default-originate option by porting code from ospfd
but the code bases are sufficiently different this is beyond my
skills.

> 3. The external LSA for prefix fc00:3333:33:333::/64 does appear
>    to make it from BIRD into quagga's database. However, it is
>    not installed in the routing table.

I think this is probably a bug in quagga. I have now seen the
route there. It comes and goes.

Alex

>
> The setup works fine with OSPF and IPv4. I am pretty sure my
> IPv6 setup is functional, as it works fine with BGP to bird6.
>
> Any ideas?
>
> Lots of details below
>
> --
> Alex Bligh
>
> amb at quaggabox:~$ ip -6 a l
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
>     inet6 ::1/128 scope host
>        valid_lft forever preferred_lft forever
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 fe80::213:72ff:fefd:62e7/64 scope link
>        valid_lft forever preferred_lft forever
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 fc00:41c8:10:1dd::1/64 scope global
>        valid_lft forever preferred_lft forever
>     inet6 fe80::213:72ff:fefd:62e8/64 scope link
>        valid_lft forever preferred_lft forever
>
> quaggabox# show running-config
> Building configuration...
>
> Current configuration:
> !
> log file /var/log/quagga/bgpd.log
> !
> service integrated-vtysh-config
> !
> interface eth0
>  ipv6 nd suppress-ra
>  ipv6 ospf6 cost 1
>  ipv6 ospf6 dead-interval 40
>  ipv6 ospf6 hello-interval 10
>  ipv6 ospf6 instance-id 0
>  ipv6 ospf6 passive
>  ipv6 ospf6 priority 1
>  ipv6 ospf6 retransmit-interval 5
>  ipv6 ospf6 transmit-delay 1
> !
> interface eth1
>  ipv6 nd suppress-ra
>  ipv6 ospf6 cost 1
>  ipv6 ospf6 dead-interval 40
>  ipv6 ospf6 hello-interval 10
>  ipv6 ospf6 instance-id 0
>  ipv6 ospf6 priority 100
>  ipv6 ospf6 retransmit-interval 5
>  ipv6 ospf6 transmit-delay 1
> !
> interface lo
> !
> router ospf6
>  router-id 10.255.199.1
>  area 0.0.0.0 range ::/0
>  area 0.0.0.0 range fc00:41c8:10:1dd::/64
>  interface eth1 area 0.0.0.0
> !
> ipv6 route 3ffe:401d:3133::/48 Null0
> ipv6 route 3ffe:401d:4144::/48 Null0
> !
> ipv6 forwarding
> !
> line vty
> !
> end
>
>
>
> quaggabox# show ipv6  o neighbor  det
>  Neighbor 10.255.199.3%eth1
>     Area 0.0.0.0 via interface eth1 (ifindex 3)
>     His IfIndex: 123 Link-local address: fe80::a868:caff:fefd:1c94
>     State Full for a duration of 00:15:47
>     His choice of DR/BDR 10.255.199.1/0.0.0.0, Priority 0
>     DbDesc status: Slave SeqNum: 0x9fe24079
>     Summary-List: 0 LSAs
>     Request-List: 0 LSAs
>     Retrans-List: 0 LSAs
>     0 Pending LSAs for DbDesc in Time 00:00:00 [thread off]
>     0 Pending LSAs for LSReq in Time 00:00:00 [thread off]
>     0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
>     0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
> quaggabox# show ipv6  o neighbor
> Neighbor ID     Pri    DeadTime  State/IfState         Duration I/F[State]
> 10.255.199.3      0    00:00:33   Full/DROther         00:15:53 eth1[DR]
> quaggabox# show ipv6  o neighbor det
>  Neighbor 10.255.199.3%eth1
>     Area 0.0.0.0 via interface eth1 (ifindex 3)
>     His IfIndex: 123 Link-local address: fe80::a868:caff:fefd:1c94
>     State Full for a duration of 00:15:55
>     His choice of DR/BDR 10.255.199.1/0.0.0.0, Priority 0
>     DbDesc status: Slave SeqNum: 0x9fe24079
>     Summary-List: 0 LSAs
>     Request-List: 0 LSAs
>     Retrans-List: 0 LSAs
>     0 Pending LSAs for DbDesc in Time 00:00:00 [thread off]
>     0 Pending LSAs for LSReq in Time 00:00:00 [thread off]
>     0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
>     0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
>
>
> quaggabox# show ipv6 o database  detail
>
>         Area Scoped Link State Database (Area 0.0.0.0)
>
> Age: 1003 Type: Router
> Link State ID: 0.0.0.0
> Advertising Router: 10.255.199.1
> LS Sequence Number: 0x80000001
> CheckSum: 0x284b Length: 40
>     Bits: -------- Options: --|R|-|--|E|V6
>     Type: Transit-Network Metric: 1
>     Interface ID: 0.0.0.3
>     Neighbor Interface ID: 0.0.0.3
>     Neighbor Router ID: 10.255.199.1
>
> Age: 1004 Type: Router
> Link State ID: 0.0.0.0
> Advertising Router: 10.255.199.3
> LS Sequence Number: 0x80000001
> CheckSum: 0x510a Length: 24
>     Bits: ------E- Options: --|R|-|--|E|V6
>
> Age: 1003 Type: Network
> Link State ID: 0.0.0.3
> Advertising Router: 10.255.199.1
> LS Sequence Number: 0x80000001
> CheckSum: 0x4f5c Length: 32
>      Options: --|R|-|--|E|V6
>      Attached Router: 10.255.199.1
>      Attached Router: 10.255.199.3
>
> Age: 1003 Type: Intra-Prefix
> Link State ID: 0.0.0.3
> Advertising Router: 10.255.199.1
> LS Sequence Number: 0x80000001
> CheckSum: 0x38eb Length: 44
>      Number of Prefix: 1
>      Reference: Network Id: 0.0.0.3 Adv: 10.255.199.1
>      Prefix Options: --|--|--|--
>      Prefix: fc00:41c8:10:1dd::/64
>
> Age: 1004 Type: Intra-Prefix
> Link State ID: 0.0.0.0
> Advertising Router: 10.255.199.3
> LS Sequence Number: 0x80000001
> CheckSum: 0xf626 Length: 44
>      Number of Prefix: 1
>      Reference: Router Id: 0.0.0.0 Adv: 10.255.199.3
>      Prefix Options: --|--|--|--
>      Prefix: fc00:41c8:10:1dd::/64
>
>
>         I/F Scoped Link State Database (I/F eth1 in Area 0.0.0.0)
>
> Age: 1045 Type: Link
> Link State ID: 0.0.0.3
> Advertising Router: 10.255.199.1
> LS Sequence Number: 0x80000001
> CheckSum: 0xd495 Length: 56
>      Priority: 100 Options: --|R|-|--|E|V6
>      LinkLocal Address: fe80::213:72ff:fefd:62e8
>      Number of Prefix: 1
>      Prefix Options: --|--|--|--
>      Prefix: fc00:41c8:10:1dd::/64
>
> Age:  636 Type: Link
> Link State ID: 0.0.0.123
> Advertising Router: 10.255.199.3
> LS Sequence Number: 0x80000005
> CheckSum: 0xd2c3 Length: 56
>      Priority: 0 Options: --|R|-|--|E|V6
>      LinkLocal Address: fe80::a868:caff:fefd:1c94
>      Number of Prefix: 1
>
>
>         AS Scoped Link State Database
>
> Age:  491 Type: AS-External
> Link State ID: 255.3.0.0
> Advertising Router: 10.255.199.3
> LS Sequence Number: 0x80000004
> CheckSum: 0xe30e Length: 36
>      Bits: E--
>      Metric: 10000
>      Prefix Options: xxx
>      Referenced LSType: 0
>      Prefix: fc00:3333:33:333::/64
>
>
> quaggabox# show ip ospf  route
> ============ OSPF network routing table ============
> N    10.255.199.0/24       [10] area: 0.0.0.0
>                            directly attached to eth1
>
> ============ OSPF router routing table =============
> R    10.255.199.3          [10] area: 0.0.0.0, ASBR
>                            via 10.255.199.3, eth1
>
> ============ OSPF external routing table ===========
> N E2 10.1.2.255/24         [10/10000] tag: 0
>                            via 10.255.199.3, eth1
>
>
> quaggabox# show ipv6  ospf6  redistribute
> Redistributing External Routes from:
> Total 0 routes
>
> quaggabox# show ipv6  route
> Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
>        I - ISIS, B - BGP, * - FIB route.
>
> K>* ::/0 via fe80::1, eth1
> C>* ::1/128 is directly connected, lo
> S   3ffe:401d:3133::/48 [1/0] is directly connected, Null0 inactive
> S   3ffe:401d:4144::/48 [1/0] is directly connected, Null0 inactive
> O   fc00:41c8:10:1dd::/64 [110/1] is directly connected, eth1, 00:18:05
> C>* fc00:41c8:10:1dd::/64 is directly connected, eth1
> C * fe80::/64 is directly connected, eth1
> C>* fe80::/64 is directly connected, eth0
>
>
>
>
>
>
> BIRD BOX
> ========
>
> root at birdbox# ip -6 a l
> 120: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
>     inet6 ::1/128 scope host
>        valid_lft forever preferred_lft forever
> 121: dummy2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 fe80::dc58:e3ff:fe52:456b/64 scope link
>        valid_lft forever preferred_lft forever
> 122: dummy: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 fe80::4411:a3ff:fea9:3736/64 scope link
>        valid_lft forever preferred_lft forever
> 123: evrr-000000: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 fc00:41c8:10:1dd::3/64 scope global
>        valid_lft forever preferred_lft forever
>     inet6 fe80::a868:caff:fefd:1c94/64 scope link
>        valid_lft forever preferred_lft forever
> 125: evrr-000001: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>     inet6 fc00:3333:33:333::1/64 scope global
>        valid_lft forever preferred_lft forever
>     inet6 fe80::a0e0:d2ff:fef2:890a/64 scope link
>        valid_lft forever preferred_lft forever
>
> root at birdbox/# birdc6
> BIRD 1.3.2 ready.
> bird> show protocols all
> name     proto    table    state  since       info
> evrkernel Kernel   master   up     11:34
>   Preference:     10
>   Input filter:   ACCEPT
>   Output filter:  ACCEPT
>   Routes:         0 imported, 0 exported, 0 preferred
>   Route change stats:     received   rejected   filtered    ignored
> accepted
>     Import updates:              0          0          0          0 0
>     Import withdraws:            0          0        ---          0 0
>     Export updates:             17         15          0        --- 2
>     Export withdraws:            7        ---        ---        --- 2
>
> device1  Device   master   up     11:34
>   Preference:     240
>   Input filter:   ACCEPT
>   Output filter:  REJECT
>   Routes:         0 imported, 0 exported, 0 preferred
>   Route change stats:     received   rejected   filtered    ignored
> accepted
>     Import updates:              0          0          0          0 0
>     Import withdraws:            0          0        ---          0 0
>     Export updates:              0          0          0        --- 0
>     Export withdraws:            0        ---        ---        --- 0
>
> evrdirect Direct   master   up     11:34
>   Preference:     240
>   Input filter:   ACCEPT
>   Output filter:  ACCEPT
>   Routes:         1 imported, 0 exported, 1 preferred
>   Route change stats:     received   rejected   filtered    ignored
> accepted
>     Import updates:              1          0          0          0 1
>     Import withdraws:            0          0        ---          0 0
>     Export updates:              0          0          0        --- 0
>     Export withdraws:            0        ---        ---        --- 0
>
> evrradv  RAdv     master   up     11:34
>   Preference:     0
>   Input filter:   ACCEPT
>   Output filter:  REJECT
>   Routes:         0 imported, 0 exported, 0 preferred
>   Route change stats:     received   rejected   filtered    ignored
> accepted
>     Import updates:              0          0          0          0 0
>     Import withdraws:            0          0        ---          0 0
>     Export updates:              0          0          0        --- 0
>     Export withdraws:            0        ---        ---        --- 0
>
> evrospf  OSPF     master   up     13:01       Running
>   Preference:     150
>   Input filter:   ACCEPT
>   Output filter:  ACCEPT
>   Routes:         1 imported, 1 exported, 1 preferred
>   Route change stats:     received   rejected   filtered    ignored
> accepted
>     Import updates:             20          0          6          0 14
>     Import withdraws:            5          0        ---          6 5
>     Export updates:             18         15          0        --- 3
>     Export withdraws:            5        ---        ---        --- 1
>
> bird> show ospf lsadb
>
> Global
>
>  Type   LS ID           Router           Age  Sequence  Checksum
>  4005  255.3.0.0       10.255.199.3      289  80000004    e30e
>
> Area 0.0.0.0
>
>  Type   LS ID           Router           Age  Sequence  Checksum
>  2001  0.0.0.0         10.255.199.1      803  80000001    284b
>  2002  0.0.0.3         10.255.199.1      803  80000001    4f5c
>  2009  0.0.0.3         10.255.199.1      803  80000001    38eb
>  2001  0.0.0.0         10.255.199.3      798  80000001    13da
>  2009  0.0.0.0         10.255.199.3      798  80000001    dc8d
>
> Link evrr-000000
>
>  Type   LS ID           Router           Age  Sequence  Checksum
>  0008  0.0.0.3         10.255.199.1      892  80000001    d495
>  0008  0.0.0.123       10.255.199.3      434  80000005    d2c3
> bird>
>
> bird> show osp state all
>
> area 0.0.0.0
>
>         router 10.255.199.1
>                 distance 10
>                 network [10.255.199.1-3] metric 1
>
>         router 10.255.199.3
>                 distance 0
>                 network [10.255.199.1-3] metric 10
>                 external fc00:3333:33:333::/64 metric2 10000
>
>         network [10.255.199.1-3]
>                 distance 10
>                 router 10.255.199.1
>                 router 10.255.199.3
>                 address fc00:41c8:10:1dd::/64
>
>
> bird> show ospf top all
>
> area 0.0.0.0
>
>         router 10.255.199.1
>                 distance 10
>                 network [10.255.199.1-3] metric 1
>
>         router 10.255.199.3
>                 distance 0
>                 network [10.255.199.1-3] metric 10
>
>         network [10.255.199.1-3]
>                 distance 10
>                 router 10.255.199.1
>                 router 10.255.199.3
>
> bird> show ospf neighbors
> evrospf:
> Router ID       Pri          State      DTime   Interface  Router IP
> 10.255.199.1    100         full/dr     00:34   evrr-000000
> fe80::213:72ff:fefd:62e8
> bird>
>
> /etc/bird6.conf contains:
>
> router id 10.255.199.3;
>
> protocol kernel evrkernel {
>         persist;                # Don't remove routes on bird shutdown
>         scan time 10;           # Scan kernel routing table every 20
> seconds
>         import all;
>         export all;
>         learn;                  # Learn all alien routes from the kernel
> }
>
># This pseudo-protocol watches all interface up/down events.
> protocol device {
>         scan time 10;           # Scan interfaces every 10 seconds
> }
>
> protocol direct evrdirect {
>          interface "-evrr-000000", "evrr-*";
>          export all;
> }
>
> protocol ospf evrospf {
>         area 0.0.0.0 {
>                 interface "evrr-000000" {
>                         cost 10;
>                         priority 0;
>                         authentication none;
>                 };
>         };
>         export all;
>         import all;
> }
>
>
>
>
>



-- 
Alex Bligh


More information about the Quagga-users mailing list