FreeBSD 8 as an IPv6 router

Daniel O'Connor doconnor at gsoft.com.au
Tue Dec 13 07:10:57 UTC 2011


On 13/12/2011, at 17:14, Mattia Rossi wrote:
> Start tcpdump on each client e.g. tcpdump -i eth0 -n -s0 -X icmp6 and restart rtadvd and see if anything actually arrives at the clients.
> 
> Then, to make things clean and in order to use the machine as router you should disable ACCEPT_RTADV (ifconfig eth0 inet6 -accept_rtadv) and also disable the sysctl: sysctl net.inet6.ip6.accept_rtadv=0.

OK, I've done that.

> But, I mostly suspect your clients are not getting any RA's...

[midget 17:39] ~ >sudo /usr/sbin/rtadvd -dDf eth0
rtadvd[19142]: <getent> open: No such file or directory
rtadvd[19142]: <getconfig> eth0 isn't defined in the configuration file or the configuration file doesn't exist. Treat it as default
rtadvd[19142]: <get_prefix> add 2001:44b8:191:2e00::/60 to prefix list on eth0
rtadvd[19142]: <ra_timer_update> RA timer on eth0 is set to 16:0
rtadvd[19142]: <main> set timer to 15:999538. waiting for inputs or timeout
rtadvd[19142]: <ra_timeout> RA timer on eth0 is expired
rtadvd[19142]: <ra_output> send RA on eth0, # of waitings = 0
rtadvd[19142]: <ra_timer_update> RA timer on eth0 is set to 16:0
rtadvd[19142]: <main> set timer to 16:0. waiting for inputs or timeout
rtadvd[19142]: <ra_input> RA received from fe80::21b:21ff:fe94:ab13 on eth0
rtadvd[19142]: <main> set timer to 15:999315. waiting for inputs or timeout

[mythtv 17:39] ~ >sudo tcpdump -i eth0 -n -s0 -X icmp6
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
17:39:28.873249 IP6 fe80::21b:21ff:fe94:ab13 > ff02::1: ICMP6, router advertisement, length 56
        0x0000:  6000 0000 0038 3aff fe80 0000 0000 0000  `....8:.........
        0x0010:  021b 21ff fe94 ab13 ff02 0000 0000 0000  ..!.............
        0x0020:  0000 0000 0000 0001 8600 fdb9 4000 0708  ............ at ...
        0x0030:  0000 0000 0000 0000 0101 001b 2194 ab13  ............!...
        0x0040:  0304 3cc0 0027 8d00 0009 3a80 0000 0000  ..<..'....:.....
        0x0050:  2001 44b8 0191 2e00 0000 0000 0000 0000  ..D.............

The packet appeared when rtadvd printed "rtadvd[19142]: <ra_timeout> RA timer on eth0 is expired" (but not right when rtadvd started).


> Mat
> 
> On 13/12/2011 15:02, Daniel O'Connor wrote:
>> Hi,
>> I have a FreeBSD 8 machine that is my router and I previously had IPv6 working. ie it gave out RTADV messages and clients (Windows 7, OSX&  Ubuntu) got public IPv6 addresses based on the advertised prefix.
>> 
>> At some stage in the last few months something changed with the clients (I haven't updated the base, but ports have been) and they no longer seem to accept those messages. (I am guessing somewhat here).
>> 
>> I am running rtadvd with an empty configuration, and I get my IPv6 range by using dhcp6c from my ISP which I connect to via PPPoE using PPP.
>> 
>> [midget 14:29] ~>ifconfig tun0
>> tun0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST>  metric 0 mtu 1492
>>         options=80000<LINKSTATE>
>>         inet6 fe80::21b:21ff:fe94:ab13%tun0 prefixlen 64 scopeid 0xf
>>         inet 118.210.46.156 -->  203.16.215.197 netmask 0xffffffff
>>         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
>>         Opened by PID 661
>> [midget 14:29] ~>ifconfig eth0
>> eth0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST>  metric 0 mtu 1500
>>         options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
>>         ether 00:1b:21:94:ab:13
>>         inet 10.0.2.1 netmask 0xffffff00 broadcast 10.0.2.255
>>         inet6 fe80::21b:21ff:fe94:ab13%eth0 prefixlen 64 scopeid 0x1
>>         inet 10.0.2.3 netmask 0xffffffff broadcast 10.0.2.3
>>         inet 10.0.2.4 netmask 0xffffffff broadcast 10.0.2.4
>>         inet 10.0.2.7 netmask 0xffffffff broadcast 10.0.2.7
>>         inet6 2001:44b8:191:2e01:21b:21ff:fe94:ab13 prefixlen 60
>>         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
>>         media: Ethernet autoselect (1000baseT<full-duplex>)
>>         status: active
>> 
>> [midget 14:29] ~>cat /usr/local/etc/dhcp6c.conf
>> interface eth0 {
>>         information-only;
>> };
>> 
>> interface tun0 {
>>         send ia-pd 0;
>> };
>> id-assoc pd {
>>         prefix-interface eth0 {
>>                 sla-id 1;
>>                 sla-len 4;
>>         };
>> };
>> 
>> I can connect to IPv6 sites from the router just fine.
>> 
>> Unfortunately I can't find much/any debugging information in the clients to tell me why they are not working :(
>> 
>> I did try a FreeBSD 9.0 box and it similarly didn't work - I had the following in rc.conf..
>> 
>> ipv6_activate_all_interfaces="YES"
>> ipv6_enable="YES"
>> 
>> Any help appreciated, thanks.
>> 
>> PS please CC me on replies.
>> 
>> --
>> Daniel O'Connor software and network engineer
>> for Genesis Software - http://www.gsoft.com.au
>> "The nice thing about standards is that there
>> are so many of them to choose from."
>>   -- Andrew Tanenbaum
>> GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> freebsd-net at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
> 
> 

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C








More information about the freebsd-net mailing list