diff options
Diffstat (limited to 'package/base-files')
| -rw-r--r-- | package/base-files/files/etc/config/6tunnel | 6 | ||||
| -rw-r--r-- | package/base-files/files/etc/init.d/6tunnel | 64 | 
2 files changed, 70 insertions, 0 deletions
| diff --git a/package/base-files/files/etc/config/6tunnel b/package/base-files/files/etc/config/6tunnel new file mode 100644 index 000000000..efd8f817c --- /dev/null +++ b/package/base-files/files/etc/config/6tunnel @@ -0,0 +1,6 @@ +config 6tunnel +        option tnlifname     'sixbone' +        option remoteip4	'' +	option localip4		'' +	option localip6		'' +	option prefix		'/64' diff --git a/package/base-files/files/etc/init.d/6tunnel b/package/base-files/files/etc/init.d/6tunnel new file mode 100644 index 000000000..cd4e1fc02 --- /dev/null +++ b/package/base-files/files/etc/init.d/6tunnel @@ -0,0 +1,64 @@ +#!/bin/sh /etc/rc.common +START=46 +STOP=46 + +start_service() { +	local section="$1" +	 +	include /lib/network +	scan_interfaces +	config_load /var/state/network + +	config_get LAN lan ifname +        config_get tnlifname "$section" tnlifname +	config_get remoteip4 "$section" remoteip4 +	config_get localip4 "$section" localip4 +	config_get localip6 "$section" localip6 +	config_get prefix "$section" prefix + +	ip tunnel add $tnlifname mode sit remote $remoteip4 local $localip4 ttl 255 +	ifconfig $tnlifname up +	ip addr add $localip6 dev $tnlifname +	ip route add ::/0 dev $tnlifname +	ip route add 2000::/3 dev $tnlifname +	ip -6 addr add $prefix dev $LAN +} + +stop_service() { +	local section="$1" +	 +	include /lib/network +	scan_interfaces +	config_load /var/state/network + +	config_get LAN lan ifname +        config_get tnlifname "$section" tnlifname +	config_get remoteip4 "$section" remoteip4 +	config_get localip4 "$section" localip4 +	config_get localip6 "$section" localip6 +	config_get prefix "$section" prefix + +	ip -6 addr del $prefix dev $LAN +	ip -6 ro del 2000::/3 dev $tnlifname +	ip -6 ro del ::/0 dev $tnlifname +	ip addr del $localip6 dev $tnlifname +	ifconfig $tnlifname down +	ip tunnel del $tnlifname +} +start() { +	if ! [ -f /proc/net/if_inet6 ]; then +		echo "IPv6 not enabled, install kmod-ipv6"; +		exit 1; +	fi +	if ! [ -x /sbin/ip ]; then +		echo "ip is required to setup the tunnel"; +		exit 1; +	fi +	config_load "6tunnel" +	config_foreach start_service 6tunnel +} + +stop () { +	config_load "6tunnel" +	config_foreach stop_service 6tunnel +} | 
