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