General

initscripts-ipv6 is a set of script and example files which should help you to configure IPv6 networking of your hosts in the same persistent manner that already like IPv4. Because IPv6 has more and other features than IPv4, this new support was developed and is currently still not full-finished. From time to time bugfixes (less) and feature enhancements (sometimes) are made.

Testing

Between the stable releases mostly new sets for beta tests are available at ftp://ftp.bieringer.de/pub/linux/IPv6/initscripts/testing/

Available formats:

tar.gz

See above...

as RPM

Coming next...

Ready to use packages for several operating systems:

Red Hat Linux

Coming next...

Mandrake:

Linux Mandrake is very similar to Red Hat Linux.

Debian GNU/Linux:

Coming next...

Installation

Network configuration on Linux is splitted in several steps:

Configuration of the built-in interfaces

Global network configuration

Starting of the daemons using the network

For IPv6 you have to implement in this steps the IPv6 configuration in the right way. Therefore several configuration and script files were written, which do this work. *Please, DO NOT USE following shown addresses in your case without checking!*

Pre-install:

IPv4 interface configuration should be done by the distribution and has to be working (not a must for an IPv6 only box)

Configuration:

Description of initscripts-ipv6 set

Common (distribution version independed)

Information files and tools:

sysconfig.txt

Description of current used switches and their meaning

readme-changes-ipv6.txt

ChangeLog

striptool4ipv6scripts

Shell script which strips away all unimportant information (e.g. debugging code and additional information), since Red Hat Linux 7.x (and similar distribution) packagers can use this like shown below and if there were no bugs left, the stripped script should work afterwards, too...

$ sh striptool4ipv6scripts network-functions-ipv6 rh7 info debug

Script files

/etc/sysconfig/network-scripts/network-functions-ipv6

Central IPv6 function library, used by several scripts for initializing IPv6 on interfaces and many more

/etc/sysconfig/network-scripts/init.ipv6-global

Global IPv6 initscript (called by hooks in /etc/rc.d/init./network) to bring up global settings and shutdown IPv6 globally at least

Testing & Debugging

Testing

You can restart the whole network configuration by executing

# /etc/rc.d/init.d/network restart

Normally, you're not able to see what's really happened, because the output is written to syslog (Red Hat Linux: facility: local7, file: /var/log/boot.log). Therefore it's always a good idea to look at the output on another virtual console with

# tail -f /var/log/boot.log

Debugging

Debugging functions contained by library network-functions-ipv6

You can call this functions directly like shown below, but check for required options first:

Data you got from: (here is an /example/ shown):

Common known data:

What does this data mean and where to put the values in the configuration files:

Name

Value(s)

Explanation

Which file is related

Where to put this value

IPv4 address of remote 6to4 relay router

194.95.108.191

The IPv4 address of a 6to4 relay tunnel router

e.g. ifcfg-eth0

IPV6TO4_RELAY="194.95.108.191"

Your global accessable IPv4 address

62.155.142.69

Global accessable IPv4 address of your host

e.g. ifcfg-eth0

IPV6TO4_IPV4ADDR="62.155.142.69" - Only needed, if NAT, PPP or other scenarios do not let extract a global IPv4 address automatically from the interface configuration

Your IPv4 address

62.155.142.69

Your global IPv4 address, static or dynamically assigned

interface or ial-up configuration

Value must be already assigned static or dynamically, otherwise no Internet connection is possible

Global routable IPv6 address space

2000::/3

IPv6 address space, which should be routed through this tunnel

/etc/sysconfig/network

IPV6_DEFAULTDEV="tun6to4"

The IPv6to4 address in shown example 2002:3e9b:8e45::1/16 will be calculated automatically by the script. Also note that 6to4 tunneling is done by creating a tunnel interface with the special name "tun6to4"

6to4 relay tunnel router connecting one or more subnets to the IPv6 backbone

If you are enable to connect your tunnel server via 6to4 to the IPv6 backbone like described earlier on this page (Example 6to4 Relay Tunnel), it's because of the assigned /48 prefix also possible, to route one or more local connected subnets, too.

Once you have decided which site prefixes you want to use, you can enstablish local routes of this prefixes through dedicated interfaces. E.g. with a choosen site prefix

0:0:0:f101::0/64

on eth0 run

# route -A inet6 add 2002:d950:2485:f101::0/64 dev eth0

To distribute the prefix, use e.g. radvd. Now clients on this link should also be able to connect to the IPv6 backbone.

In dial-up scenarios with dynamic local IPv4 address assignment, the described command must be executed every time and also the tunnel must be reconfigured. Therefore I create some scripts which do the job automatically. Also, with a new release of radvd (currently available at http://v6web.litech.org/radvd/), which support automatic recalculation of 6to4 prefixes, you can distribute the new prefix to local LANs.

Server is not able to assign a global configurable prefix to ppp-client: *missing feature*, workaround: after IPv6 goes up on link, the by pppd called script ipv6-up can trigger radvd to distribute prefixes over that link, too (tested, works)

Server is not able to assign a per user definable prefix to ppp-client unlike IPv4: *missing feature*

Configuration:

On PPP client, you have to enable IPv6 options to enable the link for IPv6, e.g.