Skip to content
slykens's profile

New Contributor

 • 

8 Messages

Thursday, September 25th, 2014 6:00 PM

IPV6 PD Support?

Hello all - 

 

I have been in the trial for about 10 months and have been mostly unable to use the service since I can't set a static route or request a PD larger than /64 from my Netgear trial box. I posted several times last November in an effort to get something going but the firmware just wasn't there yet.

 

I've circled back to the project and now find that I am running firmware 1.34.04 on the cable modem/router but that I am still unable to hint a PD larger than /64 or set a static route.

 

(In other news, my regular service SMC modem appears to have much more IPV6 functionality now but nothing enabled as I have static IPV4... Dang!)

 

Should I expect to be able to hint a /60 from the Netgear now? Is there any plan to include static routing in the firmware? (Which, by itself, would solve all of my problems as I have an ASA5505 for a firewall/router behind the cable modem)

 

Thanks!

New Contributor

 • 

5 Messages

10 years ago

It looks like things start working if you get firmware V3.01.04. I believe they're in the process of rolling it out.

Contributor

 • 

15 Messages

10 years ago

My netgear trial ipv6 modem is also running fw V1.34.04 (and has an uptime ~2 months, so it has been this way quite a while).

 

Is there some trick to getting newer firmware onto it?

 

It's not actually useful for anything with the current firmware.

Contributor

 • 

15 Messages

10 years ago

And approximately 30 hours ago my netgear ipv6 test cable modem got updated to firmware version v3.01.04

 

So it seems like there's a rollout in progress.

 

(I've yet to test whether PD works though)

Contributor

 • 

15 Messages

10 years ago

And in case anyone is curious, here's the scripts/setup I've been using to test/debug this.

 

 

[root@eonwe ip6]# cat stateless.sh
#!/bin/bash
echo "stateless.sh [$0] [$*]"
set \
| egrep -v '^(BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_LINENO|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION)=' \
| egrep -v '^(DIRSTACK|EUID|GROUPS|HOSTNAME|HOSTTYPE|IFS|MACHTYPE|OPTERR|OPTIND|OSTYPE|PATH|PIPESTATUS|PPID|PS4|PWD|SHELL|SHELLOPTS|SHLVL|TERM|UID|_)='

 

 

[root@eonwe ip6]# cat pd6.sh
#!/bin/bash
echo "pd6.sh [$0] [$*]"
set \
| egrep -v '^(BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_LINENO|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION)=' \
| egrep -v '^(DIRSTACK|EUID|GROUPS|HOSTNAME|HOSTTYPE|IFS|MACHTYPE|OPTERR|OPTIND|OSTYPE|PATH|PIPESTATUS|PPID|PS4|PWD|SHELL|SHELLOPTS|SHLVL|TERM|UID|_)='

 

 

[root@eonwe ip6]# type stateless_up
stateless_up () {
{
cat "/etc/dhcp/dhclient.conf";
echo 'request dhcp6.name-servers;'
} > "/var/run/dhclient6.${DEV}.conf";
chcon unconfined_u:object_r:dhcpc_var_run_t:s0 "/var/run/dhclient6.${DEV}.conf";
rm -i -f /tmp/stateless.sh;
cp -i /root/ip6/stateless.sh /tmp/stateless.sh;
chcon system_u:object_r:dhcpc_exec_t:s0 /tmp/stateless.sh;
dhclient -6 -S -d -v -pf "/var/run/dhclient6.${DEV}.pid" -lf "/var/run/dhclient6.${DEV}.leases" -cf "/var/run/dhclient6.${DEV}.conf" -sf "/tmp/stateless.sh" "${DEV}"
}

 

 

[root@eonwe ip6]# type pd6_up
pd6_up () {
{
cat "/etc/dhcp/dhclient.conf"
} > "/var/run/dhclient6.${DEV}.pd.conf";
chcon unconfined_u:object_r:dhcpc_var_run_t:s0 "/var/run/dhclient6.${DEV}.pd.conf";
rm -i -f /tmp/pd6.sh;
cp -i /root/ip6/pd6.sh /tmp/pd6.sh;
chcon system_u:object_r:dhcpc_exec_t:s0 /tmp/pd6.sh;
dhclient -6 -P -d -v -pf "/var/run/dhclient6.${DEV}.pd.pid" -lf "/var/run/dhclient6.${DEV}.pd.leases" -cf "/var/run/dhclient6.${DEV}.pd.conf" -sf "/tmp/pd6.sh" "${DEV}"
}

 

 

[root@eonwe ip6]# cat /etc/fedora-release
Fedora release 20 (Heisenbug)

 

 

[root@eonwe ip6]# which dhclient
/usr/sbin/dhclient

 


[root@eonwe ip6]# rpm -q --whatprovides /usr/sbin/dhclient
dhclient-4.2.7-2.fc20.x86_64

 

 

[root@eonwe ip6]# egrep -v '^#' < /var/run/dhclient6.eth0.9.conf
send dhcp-client-identifier = hardware;
request dhcp6.name-servers;

 

 

[root@eonwe ip6]# egrep -v '^#' < /var/run/dhclient6.eth0.9.pd.conf
send dhcp-client-identifier = hardware;

Contributor

 • 

15 Messages

10 years ago

Preliminary testing suggest PD is functional now.

 

My setup is currently a little busted and thus I can't do proper testing, but I've confirmed that:

- I can now get a stateless DHCP reply (no change),

- and a stateful pd lease (for a /60 and apparently for 60 seconds)

- and ping6 from the outside internet for both the /64 and the /60 reach the relevant machine.

 

(unfortunately due to how I had to hack this into submission, I can't test the outgoing path without mucking with source routing which I don't have the heart for atm)

 

[root@eonwe ip6]# stateless_up
Internet Systems Consortium DHCP Client 4.2.7
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on Socket/eth0.9
Sending on Socket/eth0.9
PRC: Requesting information (INIT).
XMT: Forming Info-Request, 0 ms elapsed.
XMT: Info-Request on eth0.9, interval 1080ms.
RCV: Reply message on eth0.9 from fe80::22e5:XXff:feXX:XXXX.
PRC: Done.
stateless.sh [/tmp/stateless.sh] []
interface=eth0.9
new_dhcp6_client_id=0:3:0:1:0:30:XX:XX:XX:XX
new_dhcp6_name_servers='2001:558:feed::1 2001:558:feed::2'
new_dhcp6_server_id=0:3:0:1:XX:XX:XX:XX:XX:XX
pid=30660
reason=RENEW6
requested_dhcp6_name_servers=1

 

----

 

[root@eonwe ip6]# pd6_up
Internet Systems Consortium DHCP Client 4.2.7
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

pd6.sh [/tmp/pd6.sh] []
interface=eth0.9
pid=30674
reason=PREINIT6
Listening on Socket/eth0.9
Sending on Socket/eth0.9
PRC: Soliciting for leases (INIT).
XMT: Forming Solicit, 0 ms elapsed.
XMT: X-- IA_PD 18:ad:XX:XX
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: Solicit on eth0.9, interval 1060ms.
RCV: Advertise message on eth0.9 from fe80::22e5:2aff:feXX:XXXX.
RCV: X-- IA_PD 18:ad:XX:XX
RCV: | X-- starts 1413958710
RCV: | X-- t1 - renew +15
RCV: | X-- t2 - rebind +22
RCV: | X-- [Options]
RCV: | | X-- IAPREFIX 2601:9:XXXX:XXf0::/60
RCV: | | | X-- Preferred lifetime 30.
RCV: | | | X-- Max lifetime 60.
RCV: X-- Server ID: 00:03:00:01:20:XX:XX:XX:XX:XX
RCV: Advertisement recorded.
PRC: Selecting best advertised lease.
PRC: Considering best lease.
PRC: X-- Initial candidate 00:03:00:01:XX:XX:XX:XX:XX:XX (s: 154, p: 0).
XMT: Forming Request, 0 ms elapsed.
XMT: X-- IA_PD 18:ad:XX:XX
XMT: | X-- Requested renew +3600
XMT: | X-- Requested rebind +5400
XMT: | | X-- IAPREFIX 2601:9:XXXX:XXf0::/60
XMT: | | | X-- Preferred lifetime +7200
XMT: | | | X-- Max lifetime +7500
XMT: V IA_PD appended.
XMT: Request on eth0.9, interval 1010ms.
RCV: Reply message on eth0.9 from fe80::22e5:XXff:feXX:XXXX.
RCV: X-- IA_PD 18:ad:XX:XX
RCV: | X-- starts 1413958711
RCV: | X-- t1 - renew +15
RCV: | X-- t2 - rebind +22
RCV: | X-- [Options]
RCV: | | X-- IAPREFIX 2601:9:XX00:XXf0::/60
RCV: | | | X-- Preferred lifetime 30.
RCV: | | | X-- Max lifetime 60.
RCV: X-- Server ID: 00:03:00:01:XX:XX:XX:XX:XX:XX
PRC: Bound to lease 00:03:00:01:XX:XX:XX:XX:XX:XX.
pd6.sh [/tmp/pd6.sh] []
interface=eth0.9
new_dhcp6_client_id=0:1:0:1:1b:da:8:b5:0:XX:XX:XX:XX:XX
new_dhcp6_name_servers='2001:558:feed::1 2001:558:feed::2'
new_dhcp6_server_id=0:3:0:1:XX:XX:XX:XX:XX:XX
new_iaid=18:ad:XX:XX
new_ip6_prefix=2601:9:XX00:XXf0::/60
new_life_starts=1413958711
new_max_life=60
new_preferred_life=30
new_rebind=22
new_renew=15
new_starts=1413958711
pid=30674
reason=BOUND6
requested_dhcp6_domain_search=1
requested_dhcp6_name_servers=1
PRC: Renewal event scheduled in 15 seconds, to run for 7 seconds.
PRC: Depreference scheduled in 30 seconds.
PRC: Expiration scheduled in 60 seconds.
PRC: Renewing lease on eth0.9.
...etc...

Problem solver

 • 

90 Messages

10 years ago

I am a little behind, if anyone has not recieved the correct code email us:  

COMCAST-IPv6@cable.comcast.com