Table of Contents
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.
Pekka Savola <pekkas at netcore dot fi> for his hard work helping on /Red Hat Linux/ integration and testing
sending announcements of new versions
very low
only moderators are allowed to post
discussions
currently very low, this list is new (started at Dec 2002)
subscribers
You can send bug reports to the author himself or subscribe to maillist "initscripts-ipv6" and send it to the list.
Via CVS at DeepSpace6: DeepSpace6 / CVS instructions
Via web interface to CVS at DeepSpace6: DeepSpace6 / CVS web interface
Via FTP at DeepSpace6: DeepSpace6 / anonymous FTP
Via FTP at ftp://ftp.bieringer.de/pub/linux/IPv6/initscripts/
A (mostly not current) release of my set of script files is already included in RedHat's current distributions, they are included the initscript package
RHL 7.2: initscripts-6.40 (2001-09-09) / initscripts-ipv6 version 2001-07-17a
RHL 7.3: initscripts-6.67 (2002-04-19) / initscripts-ipv6 version 2002-01-25 (2002-04-12)
RHL 8.0: initscripts-6.95 (2002-09-04) / initscripts-ipv6 version 2002-01-25 (2002-04-12)
How to get
Because of the amount of files and dependencies, the current scripts are no longer separately available via HTTP, they are now distributed in a tarball via FTP and for /Red Hat Linux/ also as SRPMS
From time to time, long tested snapshots would be renamed to a stable release.
Contains all necessary scripts and diff files for RHL 6.2 and 7.x in a tree and also a txt-file containing documentation about the new switches
Usage: extract and move them into related directories, apply version related patches
Between the stable releases mostly new sets for beta tests are available at ftp://ftp.bieringer.de/pub/linux/IPv6/initscripts/testing/
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!*
IPv4 interface configuration should be done by the distribution and has to be working (not a must for an IPv6 only box)
If you decide to use the latest available set, then
Fetch tarball
Extract tarball
Copy script files to related directories (perhaps outdated ones will be overwrited)
Apply patches to existing files using given diff files (# cat /path/to/file.diff | patch --dry-run)
Look into the configuration files and copy related items to yours
Please, check example data and change it before starting!
Description of current used switches and their meaning
ChangeLog
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
Central IPv6 function library, used by several scripts for initializing IPv6 on interfaces and many more
Global IPv6 initscript (called by hooks in /etc/rc.d/init./network) to bring up global settings and shutdown IPv6 globally at least
IPv6 related interface initialization script for normal interfaces (called by hook in /etc/sysconfig/network-scripts/ifup)
IPv6 related interface shutdown script for normal interfaces (called by hook in /etc/sysconfig/network-scripts/ifdown)
IPv6 related interface initialization script for tunnel interfaces (called by hook in /etc/sysconfig/network-scripts/ifup)
IPv6 related interface shutdown script for tunnel interfaces (called by hook in /etc/sysconfig/network-scripts/ifdown)
Script for dynamic 6to4 tunneling setup called by the related PPP script (/etc/ppp/ip-up)
Scripts for dynamic 6to4 tunneling called by the related PPP script (/etc/ppp/ip-down)
Script for IPv6-PPP connection (called by ppp-daemon)
Script for IPv6-PPP connection (called by ppp-daemon)
Global IPv6 switches
Static IPv6 routes (perhaps going obsolet in the future)
Ethernet interface configuration
ISDN link using HDLC/IP
Static tunnel interface (unnumbered tunnel)
Static tunnel interface (numbered tunnel - "Freenet6")
Static tunnel interfaces (numbered tunnel - "Hurricane Electric")
Static tunnel interfaces (numbered tunnel, local IPv4 is specified)
6to4-tunnel PPP interface
IPv6 enabled PPP interface, ppp-server side
IPv6 enabled PPP interface, ppp-client side
Chat-script for an analog modem
Configuration file for radvd and 6to4
IPv6 related interface initialisation script for ISDN interfaces
IPv6 related interface shutdown script for ISDN interfaces
This version has no IPv6 support, so it must be implemented completly (but it's better to use a more current version)
Diff for main network initialization scripts, add hook for IPv6
Diff for main interface initialization scripts, add hook for IPv6
Diff for main interface shuitdown scripts, add hook for IPv6
This version has already IPv6 support, but based on an older version of set of scripts
Diff for main network initialization scripts, add hook for IPv6 (new feature)
Diff for main interface initialization scripts, move hook for IPv6 (bugfix)
This version has already IPv6 support, but based on an older version of set of scripts
Diff for IPv6 enabling of existing ISDN setup script
Diff for IPv6 enabling of existing ISDN setup script
See also sysconfig.txt in mostly newest version.
Controls global IPv6 configuration
Control IPv6 forwarding (box acting as router)
Disable global IPv6 forwarding [default]
Control IPv6 autoconfiguration globally (e.g. accecpt router advertisements)
Enable global IPv6 autoconfiguration (only, if global forwarding is disabled) [default]
Disable global IPv6 autoconfiguration (only, if global forwarding is disabled)
Control IPv6 automatic tunneling (device sit0)
Enable automatic IPv6 tunneling
Disable automatic IPv6 tunneling [default]
Control default route setup
Specifying gateway address
Specifying gateway device only
Controls IPv6 configuration per interface <interface>
Specify a basic (not link local) IPv6 address and prefix for this interface
Specify optional additional IPv6 addresses and their prefix length for this interface
There are also ranges supported for setup a bunch of addresses, e.g.
will set a range from "3ffe:ffff::1f" to "3ffe:ffff::2a"
Control accepting of RAs and redirects on this interface (overwrite global setting)
Accept RAs and redirects [default, if forwarding is off]
Do not accept RAs and redirects [default, if forwarding is on]
Control sending of router advertisements and isRouter on neigbor advertisements
Send RAs and set isRouter on NAs [default, if forwarding is on]
Do not send RAs and unset isRouter on NAs [default, if forwarding is off]
Control 6to4 tunneling through this interface (must be external one).
Enable 6to4 initialization of this interface
Disable 6to4 initialization of this interface [default]
Specify 6to4 local address overwrite (optional, in case of NAT or other special scenarios) * [optional, for e.g. NAT issues]
Specify additional prefixes for generated local 6to4 addresses (optional) *
Information for setup local subnetting (sorry about that strange format...)
Control a dedicated IPv6-in-IPv4 tunnel interface
Specify the IPv4 address of the local tunnel endpoint (for nodes with more than one IPv4 address on an interface) [optional]
Specify the local IPv6 address of a numbered IPv6-in-IPv4 tunnel # Local address of * a numbered tunnel [optional]
Global definitions of static routes (perhaps the support is going obsolete in the future). Normal default gateway or device shouldn't be specified here, use options DEFAULTGW or DEFAULTDEV instead.
#Device IPv6 network to route IPv6 gateway address eth0 fec0:0:0:2::/64 fec0:0:0:1:0:0:0:20 eth0 2000::/3 3ffe:ffff:0000:f102:0:0:0:1
This is a newer support of static routes per interface. Contains lines that are arguments to "/sbin/ip -6 route add"
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
You can call this functions directly like shown below, but check for required options first:
# source /etc/sysconfig/network-scripts/network-functions-ipv6; ipv6_exec_sysctl -w net.ipv6.conf.eth0.use_tempaddr=2
It's also possible to increas the debug level, if library contain debug code (normally not, if installed by distribution).
Check for containing debug code:
# grep -c DEBUG_IPV6 /etc/sysconfig/network-scripts/network-functions-ipv6 74
If the result is "0", than no debug code is included. Solution: replace current library file by an unstripped version (e.g. from tarball).
# source /etc/sysconfig/network-scripts/network-functions-ipv6; DEBUG_IPV6=511 ipv6_exec_sysctl -w net.ipv6.conf.eth0.use_tempaddr=2 EXE: /sbin/sysctl -w net.ipv6.conf.eth0.use_tempaddr=2 DRY: /sbin/sysctl -w net.ipv6.conf.eth0.use_tempaddr=2
The variable DEBUG_IPV6 is bitwise used, see description below the changelog fo unstripped library for more information which value is related to what.
This examples are overtaken from the former webpage, pls. inform if mistakes or failed function occured.
This section contains examples about a setup of static tunnels to different tunnel providers.
Note: static tunnels should be configured on device names sit/X/ with (/X/>0). Do not use sit0, because it is a reserved device and shouldn't be used for such cases.
------------------------------------------------------------------------
Example based on test at 2002-03-15.
IPv6 remote static tunnel IPv4 address (server side): 1.2.3.4
To local routed IPv6 address space: 3ffe:ffff:0000:f100::/56
Name | Value(s) | Explanation | Which file is related | Where to put this value |
IPv6 remote static tunnel IPv4 address (server side) | 1.2.3.4 | The IPv4 address of a remote tunnel server | e.g. ifcfg-sit1 | IPV6TUNNELIPV4="1.2.3.4" |
To local routed IPv6 segment | 3ffe:ffff:0000:1234::/56 | An IPv6 address space which will be routed to you | e.g. local interface , RAdvD, routing configuration | e.g. /etc/radvd.conf, segmented per device, other local hosts also e.g. IPV6ADDR="3ffe:ffff:0000:f100::1/56" |
Global routable IPv6 address space | 2000::/3 | IPv6 address space, which should be routed through this tunnel | /etc/sysconfig/network | IPV6_DEFAULTDEV="sit1" |
/etc/sysconfig/network-scripts/ifcfg-sit1
DEVICE="sit1" BOOTPROTO="none" ONBOOT="yes" IPV6INIT="yes" IPV6TUNNELIPV4="1.2.3.4" IPV6ADDR="3ffe:ffff:0000:f100::1/56"
/etc/sysconfig/network
IPV6_DEFAULTDEV="sit1"
Tunnel setup
# ip tunnel sit0: ipv6/ip remote any local any ttl 64 nopmtudisc sit1: ipv6/ip remote 1.2.3.4 local any ttl 64
Interface
# ifconfig sit1 sit1 Link encap:IPv6-in-IPv4 inet6 addr: fe80::something/10 Scope:Link inet6 addr: 3ffe:ffff:0:f100::1/56 Scope:Global UP POINTOPOINT RUNNING NOARP MTU:1472 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
Routing
# route -A inet6 |grep sit1 2000::/3 :: U 1 0 0 sit1 fe80::/10 :: UA 256 0 0 sit1 ff00::/8 :: UA 256 0 0 sit1
Example based on test at 2001-03-13.
This perl script is setup with exacts values : Your IPv6 address : 3ffe:b00:c18:1fff:0:0:0:a1f Freenet6 IPv6 address (server side) : 3ffe:b00:c18:1fff:0:0:0:a1e Freenet6 IPv4 address (server side) : 206.123.31.102 Your IPv4 address : 62.155.142.69
Name | Value(s) | Explanation | Which file is related | Where to put this value |
Your IPv6 address | 3ffe:b00:c18:1fff:0:0:0:a1f | Freenet6 assign only one IPv6 address to you, not more! | e.g. ifcfg-sit2 | IPV6ADDR="3ffe:b00:c18:1fff:0:0:0:a1f/127" |
Freenet6 IPv6 address (server side) | 3ffe:b00:c18:1fff:0:0:0:a1e | They also assigned a relating IPv6 address on their tunnel server (it's now a point-to-point IPv6 link) | Value is locally not needed (but for easier ping6 tests you can put it in /etc/hosts) | |
Freenet6 IPv4 address (server side) | 206.123.31.102 | The IPv4 address of their tunnel server | e.g. ifcfg-sit2 | IPV6TUNNELIPV4="206.123.31.102" |
Your IPv4 address | 62.155.142.69 | Your global IPv4 address, static or dynamically assigned | interface or dial-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="sit1" |
/etc/sysconfig/network-scripts/ifcfg-sit2
DEVICE="sit2" BOOTPROTO="none" ONBOOT="yes" IPV6INIT="yes" IPV6TUNNELIPV4="206.123.31.102" IPV6ADDR="3ffe:b00:c18:1fff:0:0:0:a1f/127"
/etc/sysconfig/network
IPV6_DEFAULTDEV="sit2"
Tunnel setup
# ip tunnel sit0: ipv6/ip remote any local any ttl 64 nopmtudisc sit2: ipv6/ip remote 206.123.31.102 local any ttl 64
Interface
# ifconfig sit2 sit2 Link encap:IPv6-in-IPv4 inet6 addr: fe80::3e9b:8e45/10 Scope:Link inet6 addr: fe80::c0a8:101/10 Scope:Link inet6 addr: 3ffe:b00:c18:1fff::a1f/127 Scope:Global UP POINTOPOINT RUNNING NOARP MTU:1472 Metric:1 RX packets:10 errors:0 dropped:0 overruns:0 frame:0 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
Routing
# route -A inet6 |grep sit2 3ffe:b00:c18:1fff::a1e/127 :: UA 256 4 0 sit2 2000::/3 :: U 1 0 0 sit2 fe80::/10 :: UA 256 0 0 sit2 ff00::/8 :: UA 256 0 0 sit2
Example based on suggestions got from: Ates Haner <ates # mail.utexas.edu> (not tested by me further on)
This perl script is setup with exacts values : Your IPv6 address : 3ffe:b000:c18:1fff:0:0:0:a1f Freenet6 IPv6 address (server side) : 3ffe:b000:c18:1fff:0:0:0:a1e Freenet6 IPv4 address (server side) : 206.123.31.102 Your IPv4 address : 62.155.142.69 Your delegated IPv6 prefix: 3ffe:XXXX:XXXX::/48
Your network(s) derived from above: 3ffe:XXXX:XXXX:AAAA::/64, 3ffe:XXXX:XXXX:BBBB::/64, etc.
Global routable IPv6 address space: 2000::/3
Name | Value(s) | Explanation | Which file is related | Where to put this value |
Your IPv6 address | 3ffe:b00:c18:1fff:0:0:0:a1f | Freenet6 assigns you a 48 bit prefix | e.g. ifcfg-sit2 | IPV6ADDR="3ffe:b00:c18:1fff:0:0:0:a1f/127" |
Freenet6 IPv6 address (server side) | 3ffe:b00:c18:1fff:0:0:0:a1e | They also assigned a relating IPv6 address on their tunnel server (it's now a point-to-point IPv6 link) | Value is locally not needed (but for easier ping6 tests you can put it in /etc/hosts) | |
Freenet6 IPv4 address (server side) | 206.123.31.102 | The IPv4 address of their tunnel server | e.g. ifcfg-sit2 | IPV6TUNNELIPV4="206.123.31.102" |
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="sit1" |
Address for interface A | 3ffe:XXXX:XXXX:AAAA:whatever | Choose a local 64 bit prefix and an IPv6 address for related interface | e.g. ifcfg-ethA | IPV6ADDR="3ffe:XXXX:XXXX:AAAA:whatever/64" |
Address for interface B | 3ffe:XXXX:XXXX:BBBB:whatever | Choose a local 64 bit prefix and an IPv6 address for related interface | e.g. ifcfg-ethB | IPV6ADDR="3ffe:XXXX:XXXX:BBBB:whatever/64" |
/etc/sysconfig/network-scripts/ifcfg-sit2
(to be filled...)
/etc/sysconfig/network
IPV6_DEFAULTDEV="sit2"
/etc/radvd.conf
interface ethA { AdvSendAdvert on; prefix 3ffe:XXXX:XXXX:AAAA::/64 { AdvOnLink on; AdvAutonomous on; }; }; interface ethB { AdvSendAdvert on; prefix 3ffe:XXXX:XXXX:BBBB::/64 { AdvOnLink on; AdvAutonomous on; }; };
It's recommend to disabling the script in the freenet6 client that actually sets up the tunnel (template/linux.sh) and use this setup files
Example based on test at 2001-03-13.
Account: ***** Last Active: Never (tested via ipv6 ping every half hour) Full name: ***** Company: ***** E-mail address: ***** Broker IPv4 tunnel address: 64.71.128.26 Broker IPv6 link address: 3FFE:1200:3028:FF01::2e6/127 Your IPv4 tunnel address: 62.155.142.69 Your IPv6 link address: 3FFE:1200:3028:FF01::2e7/127
If you also require an IPv6 network:
Your IPv6 network prefix: 3FFE:1200:3028:8173::/64
Name | Value(s) | Explanation | Which file is related | Where to put this value |
Your IPv4 tunnel address | 3FFE:1200:3028:FF01::2e7/127 | In this mode, only one IPv6 address is provided to you. | e.g. ifcfg-sit3 | IPV6ADDR="3FFE:1200:3028:FF01::2e7/127" |
Broker IPv6 link address | 3FFE:1200:3028:FF01::2e6/127 | They also assigned a relating IPv6 address on their tunnel server (it's now a point-to-point IPv6 link) | Value is locally not needed (but for easier ping6 tests you can put it [without prefix length] in /etc/hosts) | |
Broker IPv4 tunnel address | 64.71.128.26 | The IPv4 address of their tunnel server | e.g. ifcfg-sit3 | IPV6TUNNELIPV4="64.71.128.26" |
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 |
Your IPv6 network prefix | 3FFE:1200:3028:8173::/64 | An IPv6 address space which will be routed to you | e.g. local interface, RAdvD, routing configuration | e.g. /etc/radvd.conf, segmented per device, other local hosts |
Global routable IPv6 address space | 2000::/3 | IPv6 address space, which should be routed through this tunnel | /etc/sysconfig/network | IPV6_DEFAULTDEV="sit1" |
/etc/sysconfig/network-scripts/ifcfg-sit3
DEVICE="sit3" BOOTPROTO="none" ONBOOT="yes" IPV6INIT="yes" IPV6TUNNELIPV4="64.71.128.26" IPV6ADDR="3FFE:1200:3028:FF01::2e7/127"
/etc/sysconfig/network
IPV6_DEFAULTDEV="sit3"
Tunnel setup
# ip tunnel sit0: ipv6/ip remote any local any ttl 64 nopmtudisc sit3: ipv6/ip remote 64.71.128.26 local any ttl 64
Interface
# ifconfig sit3 sit3 Link encap:IPv6-in-IPv4 inet6 addr: 3ffe:1200:3028:ff01::2e7/127 Scope:Global inet6 addr: fe80::3e9b:8e45/10 Scope:Link inet6 addr: fe80::c0a8:101/10 Scope:Link UP POINTOPOINT RUNNING NOARP MTU:1472 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
Routing
# route -A inet6 | grep sit3 3ffe:1200:3028:ff01::2e6/127 :: UA 256 3 0 sit3 2000::/3 :: U 1 0 0 sit3 fe80::/10 :: UA 256 0 0 sit3 ff00::/8 :: UA 256 0 0 sit3
Example based on test at 2001-03-13, reviewed on 2003-02-10.
Information about 6to4 relay tunnel routers are given here: http://www.kfu.com/~nsayer/6to4/
IPv4 address of remote 6to4 relay router: 192.88.99.1
Global routable IPv6 address space: 2000::/3
Your global accessable IPv4 address: 62.155.142.69
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"
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0" BOOTPROTO="none" IPADDR="192.168.1.1" NETMASK="255.255.255.0" ONBOOT="yes" IPV6INIT="yes" IPV6FORWARDING="yes" IPV6TO4INIT="yes" IPV6TO4_RELAY="192.88.99.1" IPV6TO4_IPV4ADDR="62.155.142.69"
/etc/sysconfig/network
IPV6_DEFAULTDEV="tun6to4"
Tunnel setup
# ip tunnel sit0: ipv6/ip remote any local any ttl 64 nopmtudisc tun6to4: ipv6/ip remote any local 62.155.142.69 ttl 64
Interface
# ip addr show tun6to4 17: tun6to4@NONE: <NOARP,UP> mtu 1480 qdisc noqueue link/sit local 62.155.142.69 brd 0.0.0.0 inet6 2002:3e9b:8e45::1/16 scope global
Routing
# ip -6 route show dev tun6to4 ::/96 via :: metric 256 mtu 1480 advmss 1420 2002::/16 proto kernel metric 256 mtu 1480 advmss 1420 2000::/3 via ::192.88.99.1 metric 1 mtu 1472 advmss 1412 fe80::/10 proto kernel metric 256 mtu 1480 advmss 1420 ff00::/8 proto kernel metric 256 mtu 1480 advmss 1420
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.
Script for called by the related PPP script /etc/ppp/ip-up{.local}
Script for called by the related PPP script /etc/ppp/ip-down{.local}
Sample interface configuration file for interface ppp0
Sample configuration file for radvd
/etc/sysconfig/network-scripts/ifcfg-ppp0
IPV6TO4INIT="yes" # Enable 6to4 initialization IPV6TO4_IPV4ADDR="<ipv4addr> # Specify special local IPv4 address (only needed behind a NAT gateway) IPV6TO4_RELAY="<ipv4addr> # Remote IPv6to4 relay address IPV6TO4_ROUTING="eth0-:f101::0/64 eth1-:f102::0/64" # Information for setup local subnetting IPV6_CONTROL_RADVD="yes" # Enable radvd triggering IPV6_RADVD_PIDFILE="</path/to/file>" # PID file of radvd for sending signals
/etc/radvd.conf
In a prefix section, add a line like
Base6to4Interface ppp0;
/etc/ppp/ip-up.local
Add a calling line like
/etc/ppp/ip-up.ipv6to4 $1 >>/var/log/ppp-ipv6to4.log 2>&1
/etc/ppp/ip-down.local
Add a calling line like
/etc/ppp/ip-down.ipv6to4 $1 >>/var/log/ppp-ipv6to4.log 2>&1
On modern installation it's also possible to run IPv6 over a PPP link.
IPv4 over PPP must be already working (please send no questions about how to do that!)
IPv6 enabled ppp package
For automagically distribution of an IPv6 prefix a newer radvd
Script called by pppd
Script called by pppd
Sample interface configuration file for server
Sample interface configuration file for client
Sample chat script to run ifup/ifdown ppp on client side
ppp-2.4.1
Assign of automagically generated link-local addresses on client and server works: *ok*
Assign of defined link-local addresses on client and server works: *ok*
Manually (or scripted) assign of static IPv6 addresses works after link is up: *ok*
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*
On PPP client, you have to enable IPv6 options to enable the link for IPv6, e.g.
PPPOPTIONS="debug nomp ipcp-accept-local ipcp-accept-remote ipv6cp-accept-local ipv6ipv6cp-use-ipaddr"
On PPP server, you have to enable IPv6 options to enable the link for IPv6, e.g. add in the ppp-server's option file
+ipv6
On PPP client
Run trigger for PPP device
# ifup ppp2
Modem is dialing, connection is coming up. Succesful interface configuration:
# ifconfig ppp2 ppp2 Link encap:Point-to-Point Protocol inet addr:1.2.3.2 P-t-P:1.2.3.1 Mask:255.255.255.255 inet6 addr: fe80::9037:7088:7774:5647/10 Scope:Link UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:7 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:124 (124.0 b) TX bytes:226 (226.0 b)
On PPP server
mgetty is waiting for incoming call, AutoPPP catch the login, Example of a successful connection (in debug mode, auth is CHAP):
pppd[3421]: pppd 2.4.1 started by a_ppp, uid 0 pppd[3421]: using channel 5 pppd[3421]: Using interface ppp1 pppd[3421]: Connect: ppp1 <--> /dev/ttyS0 pppd[3421]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MD5> <magic 0x69c2ec5> <pcomp> <accomp>] pppd[3421]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4e2c2d7b> <pcomp> <accomp>] pppd[3421]: sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x4e2c2d7b> <pcomp> <accomp>] pppd[3421]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MD5> <magic 0x69c2ec5> <pcomp> <accomp>] pppd[3421]: sent [CHAP Challenge id=0x1 <d0aec6b0eb16689c8e0b7265d191e86f>, name = "server"] pppd[3421]: rcvd [CHAP Response id=0x1 <5f8d2896311a003e499f85596418dec5>, name = "account"] pppd[3421]: sent [CHAP Success id=0x1 "Welcome to dialingateway."] pppd[3421]: sent [IPCP ConfReq id=0x1 <addr 1.2.3.1> <compress VJ 0f 01>] pppd[3421]: sent [IPV6CP ConfReq id=0x1 <addr fe80::d496:9425:e3a7:0815>] pppd[3421]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] pppd[3421]: CHAP peer authentication succeeded for account pppd[3421]: rcvd [IPCP ConfReq id=0x1 <addr 0.0.0.0> <compress VJ 0f 01> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>] pppd[3421]: sent [IPCP ConfNak id=0x1 <addr 1.2.3.2> <ms-dns1 1.2.1.1> <ms-dns3 1.2.1.1>] pppd[3421]: rcvd [IPV6CP ConfReq id=0x1 <addr fe80::9037:7088:7774:5647>] pppd[3421]: sent [IPV6CP ConfAck id=0x1 <addr fe80::9037:7088:7774:5647>] pppd[3421]: rcvd [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] pppd[3421]: sent [CCP ConfAck id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] pppd[3421]: rcvd [IPCP ConfAck id=0x1 <addr 1.2.1.1> <compress VJ 0f 01>] pppd[3421]: rcvd [IPV6CP ConfAck id=0x1 <addr fe80::d496:9425:e3a7:0815>] pppd[3421]: local LL address fe80::d496:9425:e3a7:0815 pppd[3421]: remote LL address fe80::9037:7088:7774:5647 pppd[3421]: Script /etc/ppp/ipv6-up started (pid 26264) pppd[3421]: rcvd [CCP ConfAck id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] pppd[3421]: Deflate (15) compression enabled pppd[3421]: Script /etc/ppp/ipv6-up finished (pid 26264), status = 0x0 pppd[3421]: rcvd [IPCP ConfReq id=0x2 <addr 1.2.3.2> <compress VJ 0f 01> <ms-dns1 1.2.1.1> <ms-dns3 1.2.1.1>] pppd[3421]: sent [IPCP ConfAck id=0x2 <addr 1.2.3.2> <compress VJ 0f 01> <ms-dns1 1.2.1.1> <ms-dns3 1.2.1.1>] pppd[3421]: local IP address 1.2.1.1 pppd[3421]: remote IP address 1.2.4.2 pppd[3421]: Script /etc/ppp/ip-up started (pid 26265) pppd[3421]: Script /etc/ppp/ip-up finished (pid 26265), status = 0x0
Succesful interface configuration:
# ifconfig ppp1 ppp1 Link encap:Point-to-Point Protocol inet addr:1.2.3.1 P-t-P:1.2.3.2 Mask:255.255.255.255 inet6 addr: fe80::d496:9425:e3a7:815/10 Scope:Link UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:10 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:274 (274.0 b) TX bytes:124 (124.0 b)
Minor enhancements
Creating a LyX document by importing the content from old website
This changelog was copied from the old HTML-only website.
Add new switches to control autoconfiguration per device
Take care about different meaning of the forwarding switch
Global IPv6 initscript (called from hooks in /etc/rc.d/init./network) to bring up global settings and shutdown IPv6 globally at least
Remove redundant information on page
sit-interfaces: new optional option IPV6TUNNELIPV4LOCAL
interfaces: new optional option IPV6_MTU
IPV6TO4_RELAY can now contain a 6to4 address
Some reviews and minor enhancements, see readme-changes-ipv6.txt included in the taball for details
Add support for easy default route setup (currently using 2000::/3 because ::/0 is still not working)
Enable ifup|down-isdn (taken from RHL beta Roswell, also working on RHL 6.2) for IPv6, now you can run IPv6 over HDLC/IP
Rename radvd control options to general name because of also usable for ppp device configuration
Internal renaming of all functions in the libary, therefore all scripts need to be replaced, but normally no external adaptions are required (only, if you use the libary by self-written scripts)
Add support for radvd triggering on normal devices (not only 6to4) to handle automagically configuration of PPP links
Rename radvd control options to better naming, add RHL (fallback support)
Add and improve default route setup and 6to4 handling
Remove support of NBMA and 6to4 tunneling using sit0
Move radvd trigger for PPP to ipv6-up|down
Updated 18.02.2017 | Sources | DeepSpace6 |
Your connection is via:
IPv4
Your address: 3.94.202.151 |
mirrors.bieringer.de is maintained by webmaster at bieringer dot de (Impressum) |