[CentOS] IPv6 range provisioning question

Wed Jun 10 20:51:54 UTC 2009
Louis Lagendijk <louis at lagendijk.xs4all.nl>

On Wed, 2009-06-10 at 13:08 -0500, Vadtec wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> A few months back, I tried to use the network scripts to provision an IPv6 range
> like can be done with IPv4. I was using CentOS 5.2 at the time and was informed
> that 5.2 was broken in this regard. I have upgraded to CentOS 5.3 now and I am
> trying to get IPv6 to provision an entire range of IPs, but I am still getting
> the old behavior and no IPs are being provisioned.
> 
> I have been following the docs provided by the link in the
> /etc/sysconfig/network-scripts/ifup-ipv6 at
> http://www.deepspace6.net/projects/initscripts-ipv6.html#id2801589 and using the
> following configs:
> 
> /etc/sysconfig/network
> NETWORKING=yes
> GATEWAY=***.***.***.***
> GATEWAYDEV=eth0
> HOSTNAME=vadtec
> 
> NETWORKING_IPV6=yes
> IPV6FORWARDING=no
> IPV6_AUTOCONF=no
> IPV6_AUTOTUNNEL=no
> IPV6_DEFAULTDEV=eth0:1
> IPV6_DEFAULTGW=2001:0470:0103:001A::1
> 
> /etc/sysconfig/network-scripts/ifcfg-eth0-1
Why do you need an alias device here? Put the ipv6 config on the eth0
device,and add the configuration to the ifcfg-eth0 file

> DEVICE=eth0:1
> IPV6INIT=yes
> IPV6ADDR=2001:0470:0103:001A:0001:0000:0000:0000:/96
You are allocating a /96 with all 0 in the last 32 bits. So you are not
allocating an address. Why a /96? Using a /64 is pretty much the
standard for ipv6. 

> IPV6_AUTOCONF=no
> IPV6_ROUTER=no
> IPV6FORWARDING=no
> ONBOOT=no
> 
> When I run service network restart, it doesn't even provision the default IPv6
> GW on eth0:1, nor does eth0:1 even show up.
I must admit I never tried an v6 address on an alias, so I have no clue
whether it works or not. But you can have both v4 and v6 addresses next
to each other on the eth0 device
> 
> If I run tail /var/log/boot.log, boot.log is empty. If I run tail
> /var/log/messages, I see varying amounts of:
> 
> Jun 10 11:42:14 localhost kernel: [208192.884652] eth0: duplicate address detected!
> 
Probably due to the all 0 in the part AFTER the /96
> I see no other errors or messages saying anything is wrong or otherwise.
Autoconfiguration is the way to go if you want to make it easy. On my
server I set the addresses manually like
DEVICE=eth0.159
ONBOOT=yes
BOOTPROTO=none
NETMASK=255.255.255.0
HWADDR=00:1a:92:d6:99:91
IPADDR=192.168.159.1
#GATEWAY=192.168.178.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=yes
IPV6FORWARDING="yes"
# v6 address changed to protect the innocent
IPV6ADDR="2001:888:118e:18a2::1/64"
PEERDNS=no
VLAN=yes
Please not that I am using vlans, hence the .159 on the eth0. Normally
you do not need that and you leave the VLAN=yes off.
Please note the ::1 at the end of the address.
I use radvd on that machine (so here I need to set fixed v6 addresses),
but the clients do not neede that:

DEVICE=eth0
BOOTPROTO=none
DNS1=192.168.159.1
IPADDR=192.168.159.3
NETMASK=255.255.255.0
HWADDR=00:11:d8:be:98:fa
ONBOOT=yes
SEARCH="pheasant"
USERCTL=no
PEERDNS=no
IPV6INIT=yes
NM_CONTROLLED=yes
GATEWAY=192.168.159.1
TYPE=Ethernet

Here the address is set depending on the (/64) prefix received from the
radvd server.....

kind regards, Louis