SUJIAJUN 发表于 2008-5-9 15:31:10

wr850G 双WAN口上网+自动挂载硬盘

http://www.right.com.cn/forum/viewthread.php?tid=15662&highlight=WAN

恩山的连接,有人证实下麽???
我不敢试...弄坏了自己没那个技术修复...


各位兄弟:今天实在是太忙了,没顾上发(连偶的GP都没时间炒)。
明天上午贴不沉,我把配置方法贴到这个贴里,只能是静态IP ,据说DHCP分配也可以,但我这是静态IP 所以没试。
我用的效果是这样的,教育网中有些站点是不允许外网访问的,我用这种双WAN配置可以访问了,查了一下:访问教育网自动切换为教育网IP,访问公网时使用的是电信IP,不过负载均衡的问题我没测试过,下载软件时如果是多线程的话我发现EDU.CN速度也非常快。
先发个我本上有的自动挂载硬盘的文件,可以自动挂载所有硬盘的分区。
,希望能帮上刷DD带USB又不会挂载的XD。

以下操作只在MOTO850G上实验有效。顶顶更健康!

用以下命令改双WANnvram set vlan0ports="0 1 2 5*"
nvram set vlan1ports="4 5"
nvram set vlan2ports="3 5"
nvram set vlan2hwname=et0
nvram commit
reboot

#X.X.X.X是IP1,Y.Y.Y.Y是IP2,在管理——诊断里输入以下代码:
#!/bin/ash
IF0=br0
IF1=vlan1
IF2=vlan2
P0_NET=192.168.1.0/24
P1_NET=X.X.X.0/24
P2_NET=Y.Y.Y.0/24
IP1=X.X.X.X
IP2=Y.Y.Y.Y
P1=IP1的网关
P2=IP2的网关
PATH="/sbin:/usr/sbin:/bin:/usr/bin:${PATH}"
ifconfig vlan2 Y.Y.Y.Y netmask 255.255.254.0 broadcast Y.Y.Y.255 up
ip route delete default
ip route add $P1_NET dev $IF1 src $IP1 table 10
ip route add default via $P1 table 10
ip route add $P2_NET dev $IF2 src $IP2 table 20
ip route add default via $P2 table 20
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip rule add from $IP1 table 10
ip rule add from $IP2 table 20
ip route add $P0_NET dev $IF0 table 10
ip route add $P2_NET dev $IF2 table 10
ip route add 127.0.0.0/8 dev lo table 10
ip route add $P0_NET dev $IF0 table 20
ip route add $P1_NET dev $IF1 table 20
ip route add 127.0.0.0/8 dev lo table 20
ip route add default scope global nexthop via $P1 dev $IF1 nexthop via $P2 dev $IF2
echo "0"> /proc/sys/net/ipv4/conf/vlan1/rp_filter
echo "0"> /proc/sys/net/ipv4/conf/vlan2/rp_filter

以上保存为启动命令

再输入以下代码:
IPTABLES="/usr/sbin/iptables"
iptables -I INPUT -i vlan2 -p icmp -j ACCEPT
NET_INT_INT=br0
NET_INT_IP=192.168.1.1
NET_INT_SUB=24
NET_INT_NET=192.168.1.0
NET_EXT_INT1=vlan1
NET_EXT_IP1=x.x.x.x
NET_EXT_GW1=IP1网关
NET_EXT_INT2=vlan2
NET_EXT_IP2=y.y.y.y
NET_EXT_GW2=IP2网关
ip route add default scope global nexthop via ${NET_EXT_GW1} dev ${NET_EXT_INT1} nexthop via ${NET_EXT_GW2} dev ${NET_EXT_INT2}
$IPTABLES -F POSTROUTING -t nat
$IPTABLES -t mangle -N ETH1
$IPTABLES -t mangle -F ETH1
$IPTABLES -t mangle -A ETH1 -p tcp -j LOG --log-prefix " MANGLE_TCP_ETH1 "
$IPTABLES -t mangle -A ETH1 -p icmp -j LOG --log-prefix " MANGLE_ICMP_ETH1 "
$IPTABLES -t mangle -A ETH1 -j MARK --set-mark 1
$IPTABLES -t mangle -N ETH2
$IPTABLES -t mangle -F ETH2
$IPTABLES -t mangle -A ETH2 -p tcp -j LOG --log-prefix " MANGLE_TCP_ETH2 "
$IPTABLES -t mangle -A ETH2 -p icmp -j LOG --log-prefix " MANGLE_ICMP_ETH2 "
$IPTABLES -t mangle -A ETH2 -j MARK --set-mark 2
$IPTABLES -t nat -N SPOOF_ETH1
$IPTABLES -t nat -F SPOOF_ETH1
$IPTABLES -t nat -A SPOOF_ETH1 -j LOG --log-prefix " SPOOF_ETH1 "
$IPTABLES -t nat -A SPOOF_ETH1 -j SNAT --to ${NET_EXT_IP1}
$IPTABLES -t nat -N SPOOF_ETH2
$IPTABLES -t nat -F SPOOF_ETH2
$IPTABLES -t nat -A SPOOF_ETH2 -j LOG --log-prefix " SPOOF_ETH2 "
$IPTABLES -t nat -A SPOOF_ETH2 -j SNAT --to ${NET_EXT_IP2}
$IPTABLES -A INPUT -p icmp -s ${NET_INT_NET}/${NET_INT_SUB} -d ${NET_INT_IP} -j ACCEPT
$IPTABLES -t mangle -A OUTPUT -o ! ${NET_INT_INT} -m random --average 50 -j ETH1
$IPTABLES -t mangle -A PREROUTING -i ${NET_INT_INT} -m random --average 50 -j ETH1
$IPTABLES -t mangle -A OUTPUT -o ! ${NET_INT_INT} -m random --average 50 -j ETH2
$IPTABLES -t mangle -A PREROUTING -i ${NET_INT_INT} -m random --average 50 -j ETH2
$IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT1} -j SPOOF_ETH1
$IPTABLES -t nat -A POSTROUTING -o ${NET_EXT_INT2} -j SPOOF_ETH2
for RULE in $(nvram get forward_spec)
do
FROM=`echo $RULE | cut -d ">" -f 1`
TO=`echo $RULE | cut -d ">" -f 2`
STATE=`echo $FROM | cut -d ":" -f 2`
PROTO=`echo $FROM | cut -d ":" -f 3`
SPORT=`echo $FROM | cut -d ":" -f 4`
DEST=`echo $TO | cut -d ":" -f 1`
DPORT=`echo $TO | cut -d ":" -f 2`
if [ "$STATE" = "on" ]; then
if [ "$PROTO" = "both" ]; then
iptables -A PREROUTING -t nat -p udp -d ${NET_EXT_IP1} --dport $SPORT -j DNAT --to $DEST:$DPORT
iptables -A PREROUTING -t nat -p tcp -d ${NET_EXT_IP1} --dport $SPORT -j DNAT --to $DEST:$DPORT
else
iptables -A PREROUTING -t nat -p $PROTO -d ${NET_EXT_IP1} --dport $SPORT -j DNAT --to $DEST:$DPORT
fi
fi
done
#apply range forward rules
for RULE in $(nvram get forward_port)
do
FROM=`echo $RULE | cut -d ">" -f 1`
TO=`echo $RULE | cut -d ">" -f 2`
STATE=`echo $FROM | cut -d ":" -f 2`
PROTO=`echo $FROM | cut -d ":" -f 3`
SPORT=`echo $FROM | cut -d ":" -f 4`
EPORT=`echo $FROM | cut -d ":" -f 5`
#如果你要使用IP2作为默认出口,请把下面的NET_EXT_IP1改为NET_EXT_IP2
if [ "$STATE" = "on" ]; then
if [ "$PROTO" = "both" ]; then
iptables -A PREROUTING -t nat -p udp -d ${NET_EXT_IP1} --dport $SPORT:$EPORT -j DNAT --to $TO
iptables -A PREROUTING -t nat -p tcp -d ${NET_EXT_IP1} --dport $SPORT:$EPORT -j DNAT --to $TO
else
iptables -A PREROUTING -t nat -p $PROTO -d ${NET_EXT_IP1} --dport $SPORT:$EPORT -j DNAT --to $TO
fi
fi
done
echo "0"> /proc/sys/net/ipv4/conf/vlan1/rp_filter
echo "0"> /proc/sys/net/ipv4/conf/vlan2/rp_filter
echo "1"> /proc/sys/net/ipv4/ip_forward

以上保存为防火墙命令。

在设置中设置一下使用静态IP,两个出口随意设置一个。
重启后生效,在MOTO850G上是WAN和第一LAN口为双WAN。
页: [1]
查看完整版本: wr850G 双WAN口上网+自动挂载硬盘