Understanding multiple IPv6 interfaces under 8.0 (fwd)

Dennis Glatting freebsd at penx.com
Sun Dec 13 23:02:54 UTC 2009


I am having a problem diagnosing a multiple IPv6 interfaces problem. Any 
hint is appreciated.

OS:

Elmer# uname -a FreeBSD Elmer 8.0-STABLE FreeBSD 8.0-STABLE #94: Fri Dec 11 
17:24:09 MST 2009 root at Elmer:/usr/src/sys/amd64/compile/ELMER amd64


I have two interfaces on the same switch fabric. They both reside within 
the same prefix. One is IPv4/IPv6 and the other strictly IPv6. The purpose 
of these two interfaces is the "normal" stuff and a "bulk data net." The 
bulk data net is merely an Ethernet intreface with a larger MTU to aid 
back-up (incoming data) and otehr tasks. The interfaces are defiend as 
follows:

Elmer# ifconfig -a
bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
         ether 00:13:72:60:ac:52
         inet 172.19.10.10 netmask 0xffffff00 broadcast 172.19.10.255
         inet6 fe80::213:72ff:fe60:ac52%bce0 prefixlen 64 scopeid 0x1
         inet6 fd7c:3f2b:e791:1::ac13:a0a prefixlen 64
         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
         media: Ethernet 1000baseT <full-duplex>
         status: active
bce1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 8192

options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
         ether 00:13:72:60:ac:50
         inet6 fd7c:3f2b:e791:1:0:1:ac13:a0a prefixlen 64
         inet6 fe80::213:72ff:fe60:ac50%bce1 prefixlen 64 scopeid 0x2
         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
         media: Ethernet autoselect (1000baseT <full-duplex>)
         status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
         options=3<RXCSUM,TXCSUM>
         inet 127.0.0.1 netmask 0xff000000
         inet6 ::1 prefixlen 128
         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>

Bce1 is the bulk data net. I can ping6 a host out the bce0 interface and 
get a response. However, though I can send ping6 packets out bce1 to the 
same host, that host cannot discover the MAC for bce1. For example:

Elmer# ping6 -S fd7c:3f2b:e791:1::ac13:a0a docs.penx.com
PING6(56=40+8+8 bytes) fd7c:3f2b:e791:1::ac13:a0a --> fd7c:3f2b:e791:1::ac13:a15
16 bytes from fd7c:3f2b:e791:1::ac13:a15, icmp_seq=0 hlim=64 time=0.301 ms
16 bytes from fd7c:3f2b:e791:1::ac13:a15, icmp_seq=1 hlim=64 time=0.224 ms

Elmer# ping6 -S fd7c:3f2b:e791:1:0:1:ac13:a0a docs.penx.com
PING6(56=40+8+8 bytes) fd7c:3f2b:e791:1:0:1:ac13:a0a --> fd7c:3f2b:e791:1::ac13:a15

(nothing returned).


Docs# tcpdump -n -q ip6 and not tcp and not udp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes
13:11:05.557252 IP6 fd7c:3f2b:e791:1:0:1:ac13:a0a > fd7c:3f2b:e791:1::ac13:a15: ICMP6, echo request, seq 55, length 16
13:11:05.557275 IP6 fd7c:3f2b:e791:1::ac13:a15 > ff02::1:ff13:a0a: ICMP6, neighbor solicitation, who has fd7c:3f2b:e791:1:0:1:ac13:a0a, length 32

(and so on)

Note: Docs:
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
         ether 00:11:85:ee:02:54
         inet 172.19.10.21 netmask 0xffffff00 broadcast 172.19.10.255
         inet6 fe80::211:85ff:feee:254%bge0 prefixlen 64 scopeid 0x1
         inet6 fd7c:3f2b:e791:1::ac13:a15 prefixlen 64
         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
         media: Ethernet autoselect (1000baseT <full-duplex>)
         status: active


If I watch the bce1 interface on Elmer using TCPdump in another window 
session, it is seeing the solicitation, at least via tcpdump; but no 
response as to who has fd7c:3f2b:e791:1:0:1:ac13:a0a.

I've included other data below. I am at a loss to understand why the bce1 
interface isn't being advertised on the fabric. I am an IPv6 newbie. I 
have a router on the network.


Elmer# ndp -an
Neighbor                             Linklayer Address  Netif Expire    S Flags
fe80::213:72ff:fe60:ac50%bce1        0:13:72:60:ac:50    bce1 permanent R
fd7c:3f2b:e791:1:0:1:ac13:a0a        0:13:72:60:ac:50    bce1 permanent R
fd7c:3f2b:e791:1::ac13:a15           0:11:85:ee:2:54     bce0 12s       R
fe80::213:72ff:fe60:ac52%bce0        0:13:72:60:ac:52    bce0 permanent R
fd7c:3f2b:e791:1::1                  0:17:95:25:5c:90    bce0 23h58m20s S R
fe80::217:95ff:fe25:5c90%bce0        0:17:95:25:5c:90    bce0 23h59m22s S R
fd7c:3f2b:e791:1::ac13:a0a           0:13:72:60:ac:52    bce0 permanent R


Docs# ndp -an
Neighbor                             Linklayer Address  Netif Expire    S Flags
fd7c:3f2b:e791:1::ac13:a15           0:11:85:ee:2:54     bge0 permanent R
fd7c:3f2b:e791:1::1                  0:17:95:25:5c:90    bge0 2s        D R
fe80::211:85ff:feee:254%bge0         0:11:85:ee:2:54     bge0 permanent R
fe80::217:95ff:fe25:5c90%bge0        0:17:95:25:5c:90    bge0 23h58m30s S R
fd7c:3f2b:e791:1::ac13:a0a           0:13:72:60:ac:52    bge0 23h59m46s S


Elmer# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            172.19.10.1        UGS       152  3711257   bce0
127.0.0.1          link#3             UH          0   442332    lo0
172.19.10.0/24     link#1             U           0 10116355   bce0
172.19.10.10       link#1             UHS         0        0    lo0

Internet6:
Destination                       Gateway                       Flags Netif Expire
::/96                             ::1                           UGRS       lo0  =>
default                           fd7c:3f2b:e791:1::1           UGS        bce0
::1                               ::1                           UH         lo0
::ffff:0.0.0.0/96                 ::1                           UGRS       lo0
fd7c:3f2b:e791:1::/64             link#1                        U          bce0
fd7c:3f2b:e791:1::ac13:a0a        link#1                        UHS        lo0
fd7c:3f2b:e791:1:0:1:ac13:a0a     link#2                        UHS        lo0
fe80::/10                         ::1                           UGRS       lo0
fe80::%bce0/64                    link#1                        U          bce0
fe80::213:72ff:fe60:ac52%bce0     link#1                        UHS        lo0
fe80::%bce1/64                    link#2                        U          bce1
fe80::213:72ff:fe60:ac50%bce1     link#2                        UHS        lo0
fe80::%lo0/64                     link#3                        U          lo0
fe80::1%lo0                       link#3                        UHS        lo0
ff01:1::/32                       fe80::213:72ff:fe60:ac52%bce0 U          bce0
ff01:2::/32                       fd7c:3f2b:e791:1:0:1:ac13:a0a U          bce1
ff01:3::/32                       ::1                           U          lo0
ff02::/16                         ::1                           UGRS       lo0
ff02::%bce0/32                    fe80::213:72ff:fe60:ac52%bce0 U          bce0
ff02::%bce1/32                    fd7c:3f2b:e791:1:0:1:ac13:a0a U          bce1
ff02::%lo0/32                     ::1                           U          lo0


Elmer's rc.config:

ipv6_enable="YES"
ipv6_network_interfaces="bce0 bce1"
ipv6_ifconfig_bce0="FD7C:3F2B:E791:0001::0:172.19.10.10 prefixlen 64"
ipv6_ifconfig_bce1="FD7C:3F2B:E791:0001::1:172.19.10.10 prefixlen 64 mtu 8192"
ipv6_defaultrouter="FD7C:3F2B:E791:0001::1"


The router (cisco):

interface GigabitEthernet0/0
  ipv6 address FD7C:3F2B:E791:1::1/64
  ipv6 enable
  ipv6 nd prefix FD7C:3F2B:E791:1::/64
  (etc)


Elmer# tcpdump -nq ip6 and not tcp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bce0, link-type EN10MB (Ethernet), capture size 96 bytes
13:21:52.819632 IP6 fe80::217:95ff:fe25:5c90 > ff02::1: ICMP6, router advertisement, length 64



More information about the freebsd-net mailing list