dslreports logo
site
 
    All Forums Hot Topics Gallery
spc

spacer




how-to block ads


Search Topic:
uniqs
2
share rss forum feed

bvanderhaar

join:2012-07-04
reply to Clever_Proxy

Re: [IPv6] OpenWRT and Comcast IPv6

Here's the result of ifconfig. I'm only getting a link local IPv6 address:
br-lan    Link encap:Ethernet  HWaddr F8:D1:XX:XX:XX:XX  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::fad1:11ff:feb7:3952/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6602034 errors:0 dropped:32 overruns:0 frame:0
          TX packets:13336568 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:342167074 (326.3 MiB)  TX bytes:19987424829 (18.6 GiB)
 
eth0      Link encap:Ethernet  HWaddr F8:D1:XX:XX:XX:XX  
          inet6 addr: fe80::fad1:11ff:feb7:3952/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20368967 errors:0 dropped:0 overruns:59212 frame:0
          TX packets:19921007 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3355133511 (3.1 GiB)  TX bytes:3286385479 (3.0 GiB)
          Interrupt:4 
 
eth0.1    Link encap:Ethernet  HWaddr F8:D1:XX:XX:XX:XX  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6633776 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13335960 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:351704919 (335.4 MiB)  TX bytes:19987348141 (18.6 GiB)
 
eth0.2    Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX  
          inet addr:98.XXX.XXX.XXX  Bcast:98.XXX.XXX.XXX  Mask:255.255.248.0
          inet6 addr: fe80::fad1:11ff:feb7:3952/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13735140 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6585037 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:19816654107 (18.4 GiB)  TX bytes:399220761 (380.7 MiB)
 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3505 (3.4 KiB)  TX bytes:3505 (3.4 KiB)
 
 

Edit: removed more of the MAC


NetFixer
Bah Humbug
Premium
join:2004-06-24
The Boro
Reviews:
·Cingular Wireless
·Comcast Business..
·Vonage
One big problem I see from your "ip addr" post is that you only have a link local IP address on your WAN interface (as you have noted).

Here is what I see on my WNR1000v2:


BusyBox v1.4.2 (2012-04-17 12:26:16 EDT) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
 
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (7.09) -----------------------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@WNR1000v2:/# ip addr
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0
3: br0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
    link/ether a0:21:b7:9c:06:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.1/24 brd 192.168.10.255 scope global br0
    inet6 2601:5:c80:4a:a221:b7ff:fe9c:602/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::a221:b7ff:fe9c:602/64 scope link
       valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether a0:21:b7:9c:06:03 brd ff:ff:ff:ff:ff:ff
    inet 67.177.173.18/22 brd 255.255.255.255 scope global eth0
    inet6 2001:558:6016:19:3d2f:1c35:f21d:4e28/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::a221:b7ff:fe9c:603/64 scope link
       valid_lft forever preferred_lft forever
5: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether a0:21:b7:9c:06:02 brd ff:ff:ff:ff:ff:ff
6: wifi0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether a0:21:b7:9c:06:02 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a221:b7ff:fe9c:602/64 scope link
       valid_lft forever preferred_lft forever
7: ath0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether a0:21:b7:9c:06:02 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a221:b7ff:fe9c:602/64 scope link
       valid_lft forever preferred_lft forever
 


Notice the "2001:558" prefix IPv6 address on the WAN (eth0 for me) interface?

When you tested a standalone PC connected directly to your cable modem, are you sure that you were not seeing a 6to4 tunnel IPv6 connection instead of a native dual stack connection? A 6to4 tunnel would start with a "2002" prefix.

The OpenWRT version that Comcast/Netgear uses on my WNR1000v2 is different than what you are using, so I don't have the same config files (and it appears that Comcast/Netgear is hiding some things even though I have a "root" login). However, here are the .conf files and the dhcp6c-script file that I can see from my telnet interface to that router just in case that information might help you:


root@WNR1000v2:/# cat /var/dhcp6c.conf
interface eth0 {
        send ia-na 1;
        send ia-pd 11;
        request domain-name;
        request domain-name-servers;
        request ntp-servers;
        request sip-server-domain-name;
        request sip-server-address;
        script "/etc/net6conf/dhcp6c-script";
};
 
id-assoc na 1 {
};
 
id-assoc pd 11 {
};
root@WNR1000v2:/# cat /var/radvd.conf
interface br0 {
        AdvSendAdvert on;
        AdvCurHopLimit 64;
        MinRtrAdvInterval 198;
        MaxRtrAdvInterval 600;
        AdvDefaultLifetime 1800;
        AdvReachableTime 0;
        AdvRetransTimer 0;
        AdvDefaultPreference low;
        AdvHomeAgentFlag off;
        AdvOtherConfigFlag on;
        AdvManagedFlag off;
        prefix 2601:5:c80:4a::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvValidLifetime 345370;
                AdvPreferredLifetime 345370;
        };
        RDNSS  fe80::a221:b7ff:fe9c:602 {
                AdvRDNSSPreference 8;
                AdvRDNSSLifetime 1200;
        };
};
root@WNR1000v2:/# cat /var/dhcp6s.conf
option domain-name-servers 2001:558:feed::1;
option domain-name-servers 2001:558:feed::2;
 
option domain-name-servers 2001:558:feed::1 2001:558:feed::2 ;
interface br0 {
        allow rapid-commit;
        address-pool pool_netgear 345370 345370;
};
pool pool_netgear {
        range 2601:5:c80:4a::2 to 2601:5:c80:4a::40;
};
 
root@WNR1000v2:/# cat /etc/net6conf/dhcp6c-script
#!/bin/sh
 
. /etc/net6conf/6data.conf
 
#Fix Bug 23366[IPv6-Auto Config] DUT should disable prefix option in Router Advertisement
#message when the prefix valid lifetime is expired.
prefix_timeout() {
        # Remove the LAN side IPv6 address, which has been expired
        # timeout_prefix would be like: 5600 2800 2000:458:ff01:3800:: 56
        prefix_addr=`echo $timeout_prefix |cut -f3 -d' ' |sed s/:://`
        lan6_ip=`ifconfig $bridge |grep "inet6 addr: $prefix" |grep -v "Link" |awk '{print $3}'`
        echo "Try to delete $lan6_ip from $bridge" > /dev/console
        [ "x$lan6_ip" != "x" ] && $IP -6 addr del $lan6_ip dev $bridge
 
        #when prefix is timeout, remove old prefix info files
        rm /tmp/dhcp6c_script_envs
        rm $DHCP6C_PD
        rm $DHCP6S_PD
 
        #reload the LAN side IPv6 related services:
        #rewrite config file: radvd_write_config, dhcp6s_write_config.
        echo "reload 6service" > /dev/console
        /etc/net6conf/6service reload
}
 
#To do prefix timeout envents.
if [ "x$REASON" = "xprefix_timeout" ] ;then
        lan_prefix_info=`cat $DHCP6S_PD`
        #value $timeout_prefix is got from wide-dhcpv6
        [ "$timeout_prefix" != "$lan_prefix_info" ] && exit
        prefix_timeout
        exit
fi
 
#fix the bug 27061[ST/Netgear-67-71--IPv6 DHCP] There is IPv6 address On LAN port in GUI When DUT send a Decline messag.
if [ "x$REASON" = "xdecline" ] ;then
        lan6_ip=`ifconfig $bridge |grep "inet6 addr" |grep -v "Link" |awk '{print $3}'`
        echo "Try to delete $lan6_ip from $bridge" > /dev/console
        [ "x$lan6_ip" != "x" ] && $IP -6 addr del $lan6_ip dev $bridge
 
        #when duplicate address detected, remove old prefix info files
        rm /tmp/dhcp6c_script_envs
        rm $DHCP6S_PD
 
        #After DUT sending decline packet, stop the DHCPv6 server and autoconfigure address service(radvd)
        killall dhcp6s
        killall radvd
        exit
fi
 
del_dns6() {
        sed '/.:./d' /tmp/resolv.conf > /tmp/resolv.conf$$
        mv /tmp/resolv.conf$$ /tmp/resolv.conf
        echo -n "" > $IPV6_DNS
}
 
#the function about deleting rhe repeating dns info.
write_ra_dns(){
        for xr in  `awk '{print $2}'  $1 `
        do
                flagadd="1"
                for xw in `awk '{print $2}' $2 `
                do
                        if [ "1$xr" == "1$xw" ] ; then
                                flagadd="0"
                                continue
                        fi
                done
                if [ "$flagadd" == "1" ] ; then
                        echo "nameserver $xr " >> $2;
                fi
        done
}
 
#write ra_dns to resolv.conf
write_ra_tmp_dns(){
        sed '/.:./d' /tmp/resolv.conf > /tmp/resolv.conf$$
        mv /tmp/resolv.conf$$ /tmp/resolv.conf
        echo -n "" >  $RA_DNS_FILE
        for loop in $new_ra_dns_servers
                do
                        echo "nameserver $loop" >> $RA_DNS_FILE
                done
        write_ra_dns $IPV6_DNS  /tmp/resolv.conf
        write_ra_dns $RA_DNS_FILE  /tmp/resolv.conf
}
#when received ra packet with RDNSS option
local conn_type=`$CONFIG get ipv6_type`
if [ "x$REASON" = "xra_dns" -a  "x$conn_type" = "xautoConfig" ] ; then
        echo "write ra_dns..."  > /dev/console
        write_ra_tmp_dns
fi
 
lease_changed()
{
        local envs_p_file="/tmp/dhcp6c_script_envs"
 
        [ -f "$envs_p_file" ] && . $envs_p_file
        [ -z "$new_domain_name" ] && new_domain_name="$new_domain_name_p"
        [ -z "$new_sip_name" ] && new_sip_name="$new_sip_name_p"
        [ -z "$new_domain_name_servers" ] && new_domain_name_servers="$new_domain_name_servers_p"
        [ -z "$new_ntp_servers" ] && new_ntp_servers="$new_ntp_servers_p"
        [ -z "$new_sip_servers" ] && new_sip_servers="$new_sip_servers_p"
        cat > $envs_p_file << EOF
new_domain_name_p="$new_domain_name"
new_sip_name_p="$new_sip_name"
new_domain_name_servers_p="$new_domain_name_servers"
new_ntp_servers_p="$new_ntp_servers"
new_sip_servers_p="$new_sip_servers"
EOF
 
        [ "$new_domain_name" != "$new_domain_name_p" ] && return 0
        [ "$new_sip_name" != "$new_sip_name_p" ] && return 0
        [ "$new_domain_name_servers" != "$new_domain_name_servers_p" ] && return 0
        [ "$new_ntp_servers" != "$new_ntp_servers_p" ] && return 0
        [ "$new_sip_servers" != "$new_sip_servers_p" ] && return 0
        if [ "x$REASON" = "xNBI" ] ;then
                [ -f "$DHCP6C_PD" ] && . $DHCP6C_PD
                [ -z "$new_prefix" ] && new_prefix="$prefix_p"
                cat > $DHCP6C_PD << EOF
prefix_p="$new_prefix"
EOF
                [ "$new_prefix" != "$prefix_p" ] && return 0
        fi
 
        return 1
}
 
# if dhcp6c lease is not changed, don't need to do anything.
lease_changed || exit 0
#if the prefix changed, we delete all the ip of the bridge
if [ "$new_prefix" != "$prefix_p" ];then
        pre_ip=`ifconfig $bridge |grep "inet6 addr" |grep -v "Link" |awk '{print $3}'`
        for loop in $pre_ip
        do
                $IP -6 addr del $loop dev $bridge
        done
fi
 
echo "dhcp6c lease changed !" > /dev/console
 
# wirte the dhcp6s_pd and dhcp6s_dsn file
 
        if [ "x$new_prefix" != "x" ]; then
                echo $new_prefix > $DHCP6S_PD
                echo "DHCP" > /tmp/ipv6_auto_output
        fi
 
        # for avoid adding more line
        echo " " > $DHCP6S_DSN
 
        for loop in $new_domain_name
        do
                echo "option domain-name \"$loop\";" >> $DHCP6S_DSN
        done
 
        for loop in $new_sip_name
        do
                echo "option sip-server-domain-name \"$loop\";" >> $DHCP6S_DSN
        done
 
# According to NTGR Router Spec:
# The domain-name-servers should be DUT's IPv6 LAN interface's link local address.
# The link local address could be added in net6conf/6service script, so comment below code.
#       if [ "x$new_domain_name_servers" != "x" ]; then
#               echo "option domain-name-servers $new_domain_name_servers;" >> $DHCP6S_DSN
#       fi
# Comcast requires us to fill domain-name-servers with Comcast provisioning Server.
        if [ "x$new_domain_name_servers" != "x" ]; then
                echo "option domain-name-servers $new_domain_name_servers;" >> $DHCP6S_DSN
        fi
 
        del_dns6
        for loop in $new_domain_name_servers
        do
                echo "nameserver $loop" >> $IPV6_DNS
        done
        if [ "x$conn_type" = "xautoConfig" ] ; then
                write_ra_dns $RA_DNS_FILE  /tmp/resolv.conf
        fi
        write_ra_dns $IPV6_DNS  /tmp/resolv.conf
 
        if [ "x$new_ntp_servers" != "x" ]; then
                echo "option ntp-servers $new_ntp_servers;" >> $DHCP6S_DSN
        fi
 
        if [ "x$new_sip_servers" != "x" ]; then
                echo "option sip-server-address $new_sip_servers;" >> $DHCP6S_DSN
        fi
 
if [ -s $DHCP6S_PD ] && [ -s $DHCP6S_CONF ]; then
        if ! grep "address-pool " >&- 2>&- $DHCP6S_CONF; then
                echo "Got the prefix, reload the config file" > /dev/console
                echo "The prefix for LAN is $new_prefix" > /dev/console
                srv_reload="1"
        fi
fi
 
        if ps | grep dhcp6s | grep -v grep >&- 2>&- ; then
                echo "dhcpv6 server is running, reload dhcp6s config file !"
                /etc/net6conf/6service reload
        fi
 



--
We can never have enough of nature.
We need to witness our own limits transgressed, and some life pasturing freely where we never wander.