From owner-freebsd-net@FreeBSD.ORG Sun Dec 13 23:02:54 2009 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2D9B61065670 for ; Sun, 13 Dec 2009 23:02:54 +0000 (UTC) (envelope-from freebsd@penx.com) Received: from Elmer.dco.penx.com (elmer-sprint.dco.penx.com [65.173.215.114]) by mx1.freebsd.org (Postfix) with ESMTP id EFC808FC19 for ; Sun, 13 Dec 2009 23:02:53 +0000 (UTC) Received: from localhost (localhost [IPv6:::1]) by Elmer.dco.penx.com (8.14.3/8.14.3) with ESMTP id nBDLwfic083416 for ; Sun, 13 Dec 2009 14:58:41 -0700 (MST) (envelope-from freebsd@penx.com) Date: Sun, 13 Dec 2009 14:58:41 -0700 (MST) From: Dennis Glatting X-X-Sender: dennisg@Elmer.dco.penx.com To: freebsd-net@freebsd.org Message-ID: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: Understanding multiple IPv6 interfaces under 8.0 (fwd) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Dec 2009 23:02:54 -0000 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@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 metric 0 mtu 1500 options=1bb 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 media: Ethernet 1000baseT status: active bce1: flags=8843 metric 0 mtu 8192 options=1bb 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 media: Ethernet autoselect (1000baseT ) status: active lo0: flags=8049 metric 0 mtu 16384 options=3 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 nd6 options=3 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 metric 0 mtu 1500 options=9b 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 media: Ethernet autoselect (1000baseT ) 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