[Xorp-users] IPv6 intermittent connectivity

Pavlin Radoslavov pavlin at icir.org
Wed Nov 7 11:48:08 PST 2007


Hansi <hantongs at gmail.com> wrote:

Thank you for the detailed information. I think I found the problem.

There was an IPv6-related bug in the FEA which added bogus
forwarding entries to the kernel. I just committed fix to the XORP
CVS:

Revision  Changes                               Path
1.15      +4 -21;  commitid: 4e7a473213d87ea6;  xorp/fea/data_plane/fibconfig/fibconfig_entry_set_routing_socket.cc

Interestingly, the kernel didn't catch the bogus entries, and
the FreeBSD-6.2 netstat(1) command didn't handle the error when
decoding those entries. The side effect of this was the weird
looking 2001:ec1:4001:10af::/64/64 entry.

Please get the latest code from CVS and see whether it will fix the
routing problem as well.

Thanks,
Pavlin

>  Hello Pavlin,
> 
>             +----------+                     +----------+
>             | PC1      +---------------------+          |
>             |          |                sk0  | Router 1 |
>             +----------+2001:ec1:4001:10af::1+-----+----+
> 
>                                                    | vr0  2001:ec0:4000:beef::1
>                                                    |
>                                                    |
>                                                    |
>                                                    |
>                                                    |
>                                                    | vr0  2001:ec0:4000:beef::2
>             +----------+                     +-----+----+
>             | PC2      +---------------------+          |
>             |          |                sk0  | Router 2 |
>             +----------+2001:ec2:4002:fa11::1+----------+
> 
> PC1 IPv6 address: 2001:ec1:4001:10af:219:5bff:fe2f:1468
> PC2 IPv6 address: 2001:ec2:4002:fa11:200:24ff:fec4:3235
> 
> Manual Configuration of Static Routes: (no XORP)
> Router 1
> 
> $ netstat -nra | more
> Routing tables
> 
> 
> Internet6:
> Destination                       Gateway                       Flags
> Netif
>  Expire
> ::/96                             ::1                           UGRS
> lo0
> ::1                               ::1                           UHL
> lo0
> ::ffff:0.0.0.0/96                 ::1                           UGRS
> lo0
> 2001:ec0:4000:beef::/64           link#2                        UC
> vr0
> 2001:ec0:4000:beef::1             00:13:d4:d8:68:08             UHL
> lo0
> 2001:ec0:4000:beef::2             00:15:f2:3d:ac:91             UHLW
> vr0
> 2001:ec1:4001:10af::/64           link#1                        UC
> sk0
> 2001:ec1:4001:10af::1             00:19:5b:85:cf:c7             UHL
> lo0
> 2001:ec1:4001:10af:219:5bff:fe2f:1468 00:19:5b:2f:14:68
> UHLW
> sk0
> 2001:ec2:4002:fa11::/64           2001:ec0:4000:beef::2         UGS
> vr0
> 
> Router 2
> 
> $ netstat -nra | more
> Internet6:
> Destination                       Gateway                       Flags
> Netif
>  Expire
> ::/96                             ::1                           UGRS
> lo0
> ::1                               ::1                           UHL
> lo0
> ::ffff:0.0.0.0/96                 ::1                           UGRS
> lo0
> 2001:ec0:4000:beef::/64           link#2                        UC
> vr0
> 2001:ec0:4000:beef::1             00:13:d4:d8:68:08             UHLW
> vr0
> 2001:ec0:4000:beef::2             00:15:f2:3d:ac:91             UHL
> lo0
> 2001:ec1:4001:10af::/64           2001:ec0:4000:beef::1         UGS
> vr0
> 2001:ec2:4002:fa11::/64           link#1                        UC
> sk0
> 2001:ec2:4002:fa11::1             00:19:5b:2f:14:6a             UHL
> lo0
> 2001:ec2:4002:fa11:200:24ff:fec4:3235 00:00:24:c4:32:35
> UHLW
> sk0
> 
> Here are the ping results from pc1 to pc2 and vice versa:
> 
> hansi at hansi-desktop:~$ ping6 2001:ec2:4002:fa11:200:24ff:fec4:3235
> PING
> 2001:ec2:4002:fa11:200:24ff:fec4:3235(2001:ec2:4002:fa11:200:24ff:fec4:3235)
> 56 data bytes
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=1 ttl=62 time=
> 0.650 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=2 ttl=62 time=
> 0.631 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=3 ttl=62 time=
> 0.662 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=4 ttl=62 time=
> 0.696 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=5 ttl=62 time=
> 0.735 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=6 ttl=62 time=
> 0.651 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=7 ttl=62 time=
> 0.587 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=8 ttl=62 time=
> 0.719 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=9 ttl=62 time=
> 0.670 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=10 ttl=62
> time=0.706 ms
> 
> 
> hansi at hansi-desktop:~$ ping6 2001:ec1:4001:10af:219:5bff:fe2f:1468
> PING6(56=40+8+8 bytes) 2001:ec2:4002:fa11:200:24ff:fec4:3235 -->
> 2001:ec1:4001:10af:219:5bff:fe2f:1468
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=0 hlim=62
> time=1.117 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=1 hlim=62
> time=1.041 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=2 hlim=62
> time=0.987 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=3 hlim=62
> time=0.927 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=4 hlim=62
> time=0.990 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=5 hlim=62
> time=0.928 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=6 hlim=62
> time=1.036 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=7 hlim=62
> time=1.025 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=8 hlim=62
> time=1.045 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=9 hlim=62
> time=0.946 ms
> 16 bytes from 2001:ec1:4001:10af:219:5bff:fe2f:1468, icmp_seq=10 hlim=62
> time=0.973 ms
> 
> 
> Configuration of Static Routes through XORP
> 
> Router 1
> 
> $ sudo route -n monitor
> Password:
> 
> got message of size 328 on Tue Nov  6 23:24:55 2007
> RTM_ADD: Add Route: len 328, pid: 0, seq 0, errno 0,
> flags:<UP,HOST,DONE,LLINFO,WASCLONED>
> locks:  inits:
> sockaddrs: <DST,GATEWAY,IFP,IFA>
>  2001:ec0:4000:beef::2  vr0:0.13.d4.d8.68.8 fe80::213:d4ff:fed8:6808%vr0
> 
> got message of size 304 on Tue Nov  6 23:24:55 2007
> RTM_ADD: Add Route: len 304, pid: 4927, seq 131072, errno 0,
> flags:<UP,GATEWAY,DONE,PROTO1>
> locks:  inits:
> sockaddrs: <DST,GATEWAY,NETMASK,IFP>
>  2001:ec2:4002:fa11:: 2001:ec0:4000:beef::2 ffff:ffff:ffff:ffff::
> 
> $ netstat -nra | more
> 
> Internet6:
> Destination                       Gateway                       Flags
> Netif
>  Expire
> ::/96                             ::1                           UGRS
> lo0
> ::1                               ::1                           UHL
> lo0
> ::ffff:0.0.0.0/96                 ::1                           UGRS
> lo0
> 2001:ec0:4000:beef::/64           link#2                        UC
> vr0
> 2001:ec0:4000:beef::1             00:13:d4:d8:68:08             UHL
> lo0
> 2001:ec0:4000:beef::2             link#2                        UHLW
> vr0
> 2001:ec0:4000:beef::2             00:15:f2:3d:ac:91             UHLW
> vr0
> 2001:ec1:4001:10af::/64           link#1                        UC
> sk0
> 2001:ec1:4001:10af::1             00:19:5b:85:cf:c7             UHL
> lo0
> 2001:ec1:4001:10af:219:5bff:fe2f:1468 00:19:5b:2f:14:68
> UHLW
> sk0
> 2001:ec1:4001:10af::/64/64        2001:ec0:4000:beef::2         UG1
> vr0
> fe80::/10                         ::1                           UGRS
> lo0
> fe80::%sk0/64                     link#1                        UC
> 
> Router 2
> 
> $ sudo route -n monitor
> Password:
> 
> got message of size 328 on Wed Nov  7 03:23:40 2007
> RTM_ADD: Add Route: len 328, pid: 0, seq 0, errno 0,
> flags:<UP,HOST,DONE,LLINFO,WASCLONED>
> locks:  inits:
> sockaddrs: <DST,GATEWAY,IFP,IFA>
>  2001:ec0:4000:beef::1  vr0:0.15.f2.3d.ac.91 fe80::215:f2ff:fe3d:ac91%vr0
> 
> got message of size 304 on Wed Nov  7 03:23:40 2007
> RTM_ADD: Add Route: len 304, pid: 4593, seq 131072, errno 0,
> flags:<UP,GATEWAY,DONE,PROTO1>
> locks:  inits:
> sockaddrs: <DST,GATEWAY,NETMASK,IFP>
>  2001:ec1:4001:10af:: 2001:ec0:4000:beef::1 ffff:ffff:ffff:ffff:: vr0
> 
> $ netstat -nra | more
> Internet6:
> Destination                       Gateway                       Flags
> Netif
>  Expire
> ::/96                             ::1                           UGRS
> lo0
> ::1                               ::1                           UHL
> lo0
> ::ffff:0.0.0.0/96                 ::1                           UGRS
> lo0
> 2001:ec0:4000:beef::/64           link#2                        UC
> vr0
> 2001:ec0:4000:beef::1             link#2                        UHLW
> vr0
> 2001:ec0:4000:beef::1             00:13:d4:d8:68:08             UHLW
> vr0
> 2001:ec0:4000:beef::2             00:15:f2:3d:ac:91             UHL
> lo0
> 2001:ec0:4000:beef::/64/64        2001:ec0:4000:beef::1         UG1
> vr0
> 2001:ec2:4002:fa11::/64           link#1                        UC
> sk0
> 2001:ec2:4002:fa11::1             00:19:5b:2f:14:6a             UHL
> lo0
> 2001:ec2:4002:fa11:200:24ff:fec4:3235 00:00:24:c4:32:35             UHLW
> 
> 
> Here are the ping results from pc1 to pc2 and vice versa:
> 
> hansi at hansi-desktop:~$ ping6 2001:ec2:4002:fa11:200:24ff:fec4:3235
> PING
> 2001:ec2:4002:fa11:200:24ff:fec4:3235(2001:ec2:4002:fa11:200:24ff:fec4:3235)
> 56 data bytes
> 
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=16 ttl=62
> time=0.834 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=17 ttl=62
> time=0.614 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=18 ttl=62
> time=0.753 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=19 ttl=62
> time=0.695 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=20 ttl=62
> time=0.736 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=21 ttl=62
> time=0.567 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=22 ttl=62
> time=0.716 ms
> 64 bytes from 2001:ec2:4002:fa11:200:24ff:fec4:3235: icmp_seq=23 ttl=62
> time=0.655 ms
> 
> $ ping6 2001:ec1:4001:10af:219:5bff:fe2f:1468
> PING6(56=40+8+8 bytes) 2001:ec2:4002:fa11:200:24ff:fec4:3235 -->
> 2001:ec1:4001:10af:219:5bff:fe2f:1468
> ^C
> --- 2001:ec1:4001:10af:219:5bff:fe2f:1468 ping6 statistics ---
> 179 packets transmitted, 0 packets received, 100.0% packet loss
> 
> Taking a closer look on the ping results would show that there are missing
> icmp packets from sequence 1 to 15 while pinging from pc2 to pc1 translates
> to a 100% packet loss.
> 
> My purpose is to add route 2001:ec2:4002:fa11::/64 through next hop address
> 2001:ec0:4000:beef::2 on router 1 as well as add 2001:ec1:4001:10af::/64
> through next hop address 2001:ec0:4000:beef::1 on router 2.
> 
> Attached is the xorp config file. I didnt bother pasting it here since
> On 11/6/07, Pavlin Radoslavov <pavlin at icir.org> wrote:
> >
> > > > Looking closely on the routing table produced by netstat would show:
> > > >
> > > > Manually added routes:
> > > >
> > > > 2001:ec2:4002:fa11::/64           2001:ec0:4000:beef::2
> > > > UGS         vr0
> > > >
> > > > Routes added by xorp:
> > > >
> > > > 2001:ec1:4001:10af::/64/64        2001:ec0:4000:beef::2
> > > > UG1         vr0
> >
> > Interesting. Initially my first impression was that the double
> > /64/64 is a typo, but the raw "netstat" output also contains it.
> > Could you send the your XORP configuration, as well as the output of
> > running ping with XORP and with manual static routes.
> > The routes themselves are different (4002 vs 4001) which is also
> 
> add.
> 
> 
> Probably a wrong destination network added to the routing table?
> 
> FYI, the "S" vs "1" flag (i.e., "UGS" vs "UG1") is normal.
> >
> > Also, could you run "route -n monitor" before starting XORP, and
> > send the output of the messages until after XORP is started.
> >
> > Thanks,
> > Pavlin
> >
> _______________________________________________
> 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