| #!/bin/sh |
| |
| path_sh=`nv get path_sh` |
| . $path_sh/global.sh |
| |
| echo "Info: clat_config.sh $1 $2 start" >> $test_log |
| |
| if [ "x$2" != "x" ]; then |
| wan1_ipv6_prefix_info=`nv get $2"_ipv6_prefix_info"` |
| fi |
| |
| if [ "x$wan1_ipv6_prefix_info" != "x" ]; then |
| clat6_ipv6="$wan1_ipv6_prefix_info"":464" |
| fi |
| |
| ipv4_fake_subnet=`nv get ipv4_fake_subnet` |
| clat_fake_subnet=`nv get clat_fake_subnet` |
| ipv6_fake_addr=`nv get ipv6_fake_subnet` |
| if [ "x$ipv6_fake_addr" != "x" ];then |
| ipv6_fake_subnet=$ipv6_fake_addr"/64" |
| fi |
| |
| case $1 in |
| "up") |
| if [ "x$ipv4_fake_subnet" == "x" -a "x$clat_fake_subnet" == "x" -a "x$ipv6_fake_addr" == "x" ];then |
| echo "Info: ipv4_fake_subnet and clat_fake_subnet not exist, please check!!!" >> $test_log |
| fi |
| |
| # for 46 |
| route add default dev clat4 metric 40 |
| route add -net $ipv4_fake_subnet netmask 255.255.0.0 dev clat4 |
| iptables -t nat -A POSTROUTING -o clat4 -j MASQUERADE |
| |
| if [ "x$clat6_ipv6" != "x" -a "x$2" != "x" ]; then |
| ip -6 neigh add proxy $clat6_ipv6 dev $2 |
| fi |
| |
| echo 1 > /proc/sys/net/ipv4/ip_forward |
| |
| #for 64 |
| #ip -6 route add $ipv6_fake_subnet dev clat |
| #route add -net $clat_fake_subnet netmask 255.255.255.0 dev clat4 |
| ;; |
| |
| "down") |
| |
| # for 46 |
| route del default dev clat4 metric 40 |
| route del -net $ipv4_fake_subnet netmask 255.255.0.0 dev clat4 |
| iptables -t nat -D POSTROUTING -o clat4 -j MASQUERADE |
| |
| if [ "x$clat6_ipv6" != "x" -a "x$2" != "x" ]; then |
| ip -6 neigh del proxy $clat6_ipv6 dev $2 |
| fi |
| |
| #for 64 |
| #ip -6 route del $ipv6_fake_subnet dev clat |
| #route del -net $clat_fake_subnet netmask 255.255.255.0 dev clat4 |
| ;; |
| |
| esac |
| |
| |