linux初探

首页

应用服务器

Linux技巧

中文文档

Linux初级

服务器源代码

命令详解

Linux技术应用

Linux安全应用

Linux业界新闻

UniX技术文章

Linux编程与内核

Linux数据库

Linux服务器

Linux安装指导

Linux论坛

首页>>Linux服务器>>文章正文

linux双网策略路由脚本实例-(比较好)

双网要比单网复杂的多。

首先安装Linux高级路由包,用里面的ip命令。
# apt-get install iproute

先创建两个表

修改
/etc/iproute2/rt_tables如下

加t1自定义编号10
加t2自定义编号20

代码:
########################################
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
10 T1
20 T2
########################################

然后将附件里的cnc_1_net和ctc_1_net拷贝到/etc目录下,因为下面的脚本要用到。
cnc_1_net是网通的ip段
ctc_1_net是电信的ip段

我们要编辑个脚本。

########################################

#!/bin/sh

# IF1 是网通的网络接口
IF1="eth0"

# IF2 是内网的网络接口
IF2="eth2"

# IF0 是电信的网络接口
IF0="eth1"

# IP1 是网通的IP
IP1="221.8.60.54"

# IP2 是电信的IP
IP2="222.168.11.186"

# P1 是网通的网关
P1="221.8.60.53"

# P2 是电信的网关
P2="222.168.11.185"


# P1_NET 是网通的网段, 掩码30表示有分派了4个ip, 如果是8个ip就要写成29了。
P1_NET="221.8.60.52/30"

# P2_NET 为电信的网段
P2_NET="222.168.11.184/30"

# P0_NET 为内网网段
P0_NET="192.168.0.0/24"


# 设置基本的防火墙

echo "1" > /proc/sys/net/ipv4/ip_forward
echo 8000 > /proc/sys/net/ipv4/ip_conntrack_max

modprobe iptable_filter
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_irc
modprobe ipt_MASQUERADE

modprobe ipt_REJECT
modprobe ipt_limit


iptables -F
iptables -t nat -F
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j MASQUERADE

# 设置策略路由

ip route flush table T1
ip route flush table T2

ip rule list | grep T | while read line; do
POS4=http://www.linuxdiyf.com/`echo $line | awk \'{print $4}\'`
if [ "$POS4" = "to" ]
then
DST=http://www.linuxdiyf.com/`echo $line | awk \'{print $5}\'`
RT=http://www.linuxdiyf.com/`echo $line | awk \'{print $7}\'`
ip rule del to $DST table $RT
fi
if [ "$POS4" = "lookup" ]
then
SRC=http://www.linuxdiyf.com/`echo $line | awk \'{print $3}\'`
RT=http://www.linuxdiyf.com/`echo $line | awk \'{print $5}\'`
ip rule del from $SRC table $RT
fi
done

if [ ! -z $IP1 ]
then
ip route replace $P1_NET dev $IF1 src $IP1

ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add $P0_NET dev $IF0 table T1
ip route add 127.0.0.0/8 dev lo table T1

ip route add $P1_NET dev $IF1 table T2

ip route replace default via $P1 dev $IF1 table T1

ip rule add from $IP1 table T1

WAN_RT1="nexthop via $P1 dev $IF1 weight 1"
fi
if [ ! -z $IP2 ]
then
ip route replace $P2_NET dev $IF2 src $IP2

ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add $P0_NET dev $IF0 table T2
ip route add 127.0.0.0/8 dev lo table T2

ip route add $P2_NET dev $IF2 table T1

ip route replace default via $P2 dev $IF2 table T2

ip rule add from $IP2 table T2

WAN_RT2="nexthop via $P2 dev $IF2 weight 1"
fi

WAN_RT3="$WAN_RT1 $WAN_RT2"

# 把网通作为默认网关,如果是电信把$WAN_RT1修改为$WAN_RT2
ip route replace default scope global $WAN_RT1

# 用两个网关做负载均衡(一般不用)
#ip route replace default equalize scope global $WAN_RT3

ip route flush cache

if [ -s /etc/ctc_1_net ]
then
while read LINE
do
case $LINE in
\\#*) ;;
*)
ip rule add to $LINE table T2
;;
esac
done < /etc/ctc_1_net
fi

if [ -s /etc/cnc_1_net ]
then
while read LINE
do
case $LINE in
\\#*) ;;
*)
ip rule add to $LINE table T1
;;
esac
done < /etc/cnc_1_net
fi

ip route flush cache

相关文章

·ftp服务器的配置与服务3
·postfix电子邮件服务的配置与应用1
·postfix电子邮件服务的配置与应用2
·无显示器、无键盘、无鼠标的Linux PC服务器
·实现Windows与Unix、Linux间数据交换
·qmail的web页面问题!
·Linux下配置功能完善的Web服务器
·LINUX下IPTABLES端口映射
·linux DHCP的安装和配置

热门文章

·求助,急,安装fc6后无法启动
·FC6 安装NVIDIA显卡驱动
·安装vmware tools
·Debian On Slug的安装笔记
·重装windows后无法进入ubunt
·网络安装Ubuntu
·linux下 mplayer的安装笔记
·linux下 amule的安装笔记
·fedora 5 下的qemu安装使用
·red flag 4.0安装提示硬件配

Copyright@2005 www.linuxGoo.com All Right Reserved