On 2011-12-03, Douglas Maus <dm...@speakeasy.net> wrote: > - Am I right that - if my ifconfig only has an inet6 link-local address, > then I won't be able to connect to IPv6 hosts outside my local network?
correct. > - If my 'ifconfig re0' shows this: > re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 > lladdr 00:30:48:dc:75:df > priority: 0 > groups: egress > media: Ethernet autoselect (1000baseT full-duplex,master, > rxpause,txpause) > status: active > inet6 fe80::230:48ff:fedc:75df%re0 prefixlen 64 scopeid 0x1 > inet 10.0.1.8 netmask 0xffffff00 broadcast 10.0.1.255 > then I won't be able to connect to global IPv6 hosts outside my network? correct. > - If my router advertises the prefix 2001:470:1f07:15cc::/64, > then the appropriate global address would be: > 2001:470:1f07:15cc:230:48ff:fedc:75df ? correct. > - Does StateLess Address AutoConfiguration refer to the configuration of > just the link local address fe80::230:48ff:fedc:75df, or does it also > include the global address 2001:470:1f07:15cc:230:48ff:fedc:75df ? the global address. > - If 'netstat -f inet6 -rn' shows the row: > 2001:470:1f07:15cc::/64 link#1 UC > 0 0 - 4 re0 > then that indicates my machine is seeing the router advertised prefix? yes. > - Since my first post, I think I have realized that - in /etc/hostname.re0 > the line 'rtsol', does _not_ mean that at boot time the program /sbin/rtsol > handles / performs SLAAC. > The 'rtsol' in hostname.re0 triggers certain actions in > /etc/netstart, correct? > 'rtsol' does not configure address on interfaces, correct? rtsol sends the messages, but the configuration is done by the kernel, assuming net.inet6.ip6.forwarding=0 and net.inet6.ip6.accept_rtadv=1. > - (I admit I do not understand shell scripts) > /etc/netstart processes settings, and does both setting of address > on interfaces, and configures routes? generally yes, but the ip6 auto addressing is done in the kernel, all netstart does here is to run rtsol. > - The actual tool to set address is /sbin/ifconfig, correct? to manually set addresses, or set addresses from hostname.if files, yes. > - When hostname.re0 has 'rtsol', is /etc/netstart supposed to > (A) use the MAC or lladdr to configure the IPv6 link-local > fe80::230:48ff:fedc:75df > _and_ > (B) listen for route advertisement with prefix, and then configure > the global IPv6 address with prefix:lladdr ? the kernel does all this. > - If (B) is true, then if my machine is correctly configured, I should > get ifconfig to show both: > inet6 fe80::230:48ff:fedc:75df%re0 prefixlen 64 scopeid 0x1 > and something like: > inet6 2001:470:1f07:15cc:230:48ff:fedc:75df%re0 prefixlen 64 > scopeid 0x1 scopeid is for link-local addresses. it shoud look something like: vic0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:0c:29:87:71:ca priority: 0 groups: egress media: Ethernet autoselect status: active inet6 fe80::20c:29ff:fe87:71ca%vic0 prefixlen 64 scopeid 0x1 inet 10.15.5.72 netmask 0xffffff00 broadcast 10.15.5.255 inet6 2001:4b10:1002:55:20c:29ff:fe87:71ca prefixlen 64 autoconf pltime 604440 vltime 2591640 > - If (B) is not true, then what is the right way to get the global address > configured at boot time? put 'rtsol' in the hostname.if file and this in sysctl.conf: net.inet6.ip6.forwarding=0 net.inet6.ip6.accept_rtadv=1 if you have these set and it's still failing, we'll need more information. specifically, a packet capture would be useful, as would nd6 debug logging. packet capture: tcpdump -s1500 -Xvvi <interface> proto icmp6 debug logging: set ddb.console=1 in sysctl.conf and reboot (you can't set this sysctl later on, you will get "Operation not permitted"). when the system has booted, make sure you're in a text mode console and then break into ddb (either hit ctrl+alt+esc, or send a BREAK if it's serial console, or run 'sysctl ddb.trigger=1') and then type: "w nd6_debug 1" and "c". it should look something like this: Stopped at Debugger: ldrb r15, [r15, r15, ror r15]! ddb> w nd6_debug 1 nd6_debug 0 = 1 ddb> c you should then be back where you were at your regular console; run rtsol again and see if additional information shows up at the bottom of dmesg. > - Will the global address need to be an 'alias' one, in addition to > the link-local one? we don't use 'alias' with v6 (well, you can type it on the command line, but it doesn't change things; v6 accepts multiple addresses on an interface by default).