From 88d725dff56d7244621f1ba1561ede8142d24400 Mon Sep 17 00:00:00 2001 From: Lukas Nykryn Date: Wed, 27 Mar 2013 16:10:44 +0100 Subject: add ipip6 tunneling support (#928232, raorn@raorn.name) --- sysconfig.txt | 2 +- sysconfig/network-scripts/ifdown-tunnel | 2 +- sysconfig/network-scripts/ifup-tunnel | 11 +++++++++-- sysconfig/network-scripts/network-functions | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/sysconfig.txt b/sysconfig.txt index 4ec472f7..fde8934e 100644 --- a/sysconfig.txt +++ b/sysconfig.txt @@ -932,7 +932,7 @@ Files in /etc/sysconfig/network-scripts/ "mode=active-backup arp_interval=60 arp_ip_target=192.168.1.1,192.168.1.2" Tunnel-specific items: - TYPE=GRE|IPIP + TYPE=GRE|IPIP|IPIP6 MY_INNER_IPADDR=local IP address of the tunnel interface PEER_OUTER_IPADDR=IP address of the remote tunnel endpoint MY_OUTER_IPADDR=IP address of the local tunnel endpoint diff --git a/sysconfig/network-scripts/ifdown-tunnel b/sysconfig/network-scripts/ifdown-tunnel index f764f9bd..a5384b18 100755 --- a/sysconfig/network-scripts/ifdown-tunnel +++ b/sysconfig/network-scripts/ifdown-tunnel @@ -32,7 +32,7 @@ need_config "$CONFIG" source_config # Generic tunnel devices are not supported here -if [ "$DEVICE" = gre0 -o "$DEVICE" = tunl0 ]; then +if [ "$DEVICE" = gre0 -o "$DEVICE" = tunl0 -o "$DEVICE" = ip6tnl0 ]; then net_log $"Device '$DEVICE' isn't supported as a valid GRE device name." exit 1 fi diff --git a/sysconfig/network-scripts/ifup-tunnel b/sysconfig/network-scripts/ifup-tunnel index 49c52c0b..2eaa4bb7 100755 --- a/sysconfig/network-scripts/ifup-tunnel +++ b/sysconfig/network-scripts/ifup-tunnel @@ -39,12 +39,19 @@ fi case "$TYPE" in GRE) MODE=gre + proto=-4 /sbin/modprobe ip_gre ;; IPIP) MODE=ipip + proto=-4 /sbin/modprobe ipip ;; + IPIP6) + MODE=ipip6 + proto=-6 + /sbin/modprobe ip6_tunnel + ;; *) net_log $"Invalid tunnel type $TYPE" exit 1 @@ -52,14 +59,14 @@ case "$TYPE" in esac # Generic tunnel devices are not supported here -if [ "$DEVICE" = gre0 -o "$DEVICE" = tunl0 ]; then +if [ "$DEVICE" = gre0 -o "$DEVICE" = tunl0 -o "$DEVICE" = ip6tnl0 ]; then net_log $"Device '$DEVICE' isn't supported as a valid GRE device name." exit 1 fi # Create the tunnel # The outer addresses are those of the underlying (public) network. -/sbin/ip tunnel add "$DEVICE" mode "$MODE" \ +/sbin/ip $proto tunnel add "$DEVICE" mode "$MODE" \ ${MY_OUTER_IPADDR:+local "$MY_OUTER_IPADDR"} \ ${PEER_OUTER_IPADDR:+remote "$PEER_OUTER_IPADDR"} \ ${KEY:+key "$KEY"} ${TTL:+ttl "$TTL"} diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions index bbfa35b0..d240df35 100644 --- a/sysconfig/network-scripts/network-functions +++ b/sysconfig/network-scripts/network-functions @@ -141,7 +141,7 @@ source_config () CTC) DEVICETYPE="ctc" ;; - GRE | IPIP) + GRE | IPIP | IPIP6) DEVICETYPE="tunnel" ;; SIT | sit) -- cgit v1.2.1