Date: Tue, 15 Nov 2005 00:36:33 -1000 From: "Antonio Querubin" <tony@lava.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: conf/89061: IPv6 6to4 auto-configuration enhancement Message-ID: <20051115103637.229B7355C7@gau.lava.net> Resent-Message-ID: <200511151040.jAFAeGm1003978@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 89061 >Category: conf >Synopsis: IPv6 6to4 auto-configuration enhancement >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Nov 15 10:40:15 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Antonio Querubin <tony@lava.net> >Release: FreeBSD 5.4-STABLE i386 >Organization: none >Environment: System: FreeBSD pavilion 5.4-STABLE FreeBSD 5.4-STABLE #1: Tue Aug 16 00:43:55 HST 2005 root@pavilion:/usr/obj/usr/src/sys/GENERIC i386 >Description: When IPv6 is enabled in /etc/rc.conf but there is no native IPv6 routing, 6to4 can be enabled with some reasonable defaults to provide IPv6 connectivity via the nearest 6to4 anycast router (RFC 3068). This patch enhances the IPv6 startup script to automatically setup the stf interface address and the IPv6 default gateway properly if 'auto6to4_enable=YES' is added to /etc/rc.conf to enable this feature. This provides a simple, working IPv6 configuration for a large majority of workstations still on IPv4-only networks. This is similar to the default 6to4 behaviour in Linux and MS Windows XP. >How-To-Repeat: With IPv6 enabled ('ipv6_enable=YES' added to /etc/rc.conf) in a non-IPv6 network, attempt to ping a IPv6 host. example: ping6 www.isc.org The ping6 attempt should fail as there is no IPv6 route to the host. Install the patch below and add 'auto6to4_enable=YES' to /etc/rc.conf and reboot. ping6 and traceroute6 should now work to a number of IPv6 hosts. >Fix: --- /usr/src/etc/rc.d/network_ipv6 Sun Oct 17 11:00:07 2004 +++ /etc/rc.d/network_ipv6 Sat Nov 12 09:16:54 2005 @@ -100,6 +100,25 @@ fi # Setup IPv6 to IPv4 mapping + if checkyesno auto6to4_enable; then + # Determine the interface of the IPv4 default route. + ipv4_default_if=`route get default \ + | awk '/interface:/ {print $NF}'` + # Define the 6to4 tunnel's IPv4 address to match the first + # IPv4 address of the IPv4 default interface. + stf_interface_ipv4addr=`ifconfig ${ipv4_default_if} inet \ + | awk '/inet/ {print $2}' \ + | head -1` + # If no IPv6 default gateway is defined, use the RFC 3068 + # anycast address. + case ${ipv6_defaultrouter} in + [Nn][Oo] | '') + ipv6_defaultrouter="2002:c058:6301::" + ;; + *) + ;; + esac + fi network6_stf_setup # Install the "default interface" to kernel, which will be used >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051115103637.229B7355C7>