Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1172607
  • 博文数量: 150
  • 博客积分: 2739
  • 博客等级: 少校
  • 技术积分: 2392
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-07 12:28
文章分类

全部博文(150)

文章存档

2015年(2)

2014年(16)

2013年(10)

2012年(58)

2011年(64)

分类: LINUX

2012-02-16 11:25:04

在Linux上基于源地址路由实现电信网通双线
想要通过普通的静态策略路由来实现电信网通双线基本上是不可能的,因为那将需要维护相当大的一个IP段的数据库,而且还需要随时更新才能保证效果。
后来听前辈们说,可以采用基于源地址路由的方式来处理,让进来的数据,从哪个IP进来就从哪个IP返回。
下面就是一个在生产中得到了实际应用的脚本:
==============================================================
#!/bin/bash
##
## CNC_RULE AND CTC_RULE from /etc/iproute2/rt_tables
## echo 200 cnc >> /etc/iproute2/rt_tables
## echo 201 ctc >> /etc/iproute2/rt_tables
##

CTC_DEVICE="eth0"
CTC_RULE="ctc"
CTC_NETWORK="10.10.10.0"
CTC_GATEWAY="10.10.10.1"
CTC_IPADDR="10.10.10.2"
CNC_DEVICE="eth1"
CNC_RULE="cnc"
CNC_NETWORK="20.20.20.0"
CNC_GATEWAY="20.20.20.1"
CNC_IPADDR="20.20.20.2"
ACTION="add"
if [ $# -ne 0 ]; then
        if [ "$1" != "add" -a "$1" != "del" ]; then
                echo "error"
        else
                ACTION="$1"
        fi
fi
ip route ${ACTION} ${CNC_NETWORK} dev ${CNC_DEVICE} src ${CNC_IPADDR} table ${CNC_RULE}
ip route ${ACTION} default via ${CNC_GATEWAY} table ${CNC_RULE}
ip route ${ACTION} ${CTC_NETWORK} dev ${CTC_DEVICE} src ${CTC_IPADDR} table ${CTC_RULE}
ip route ${ACTION} default via ${CTC_GATEWAY} table ${CTC_RULE}
ip rule ${ACTION} from ${CNC_IPADDR} table ${CNC_RULE}

ip rule ${ACTION} from ${CTC_IPADDR} table ${CTC_RULE}
ip route add default via ${CTC_GATEWAY}
ip rule add to 200.200.0.0/16 table cnc
==============================================================
在执行脚本之前,先执行以下命令:
echo 200 cnc >> /etc/iproute2/rt_tables
echo 201 ctc >> /etc/iproute2/rt_tables
最后的 ip rule add to 200.200.0.0/16 table cnc 相当于是添加了一个例外,让200.200.0.0/16这个段的直接从cnc出去。
 
本篇文章来源于 中文DY豆-cn.dydou.cn 原文链接:
 
另一种方法:
1、
  1. echo 1 >/proc/sys/ipv4/ip_forward      开启路由功能
  2. echo 200 tel >>/etc/iprouter2/rt_tables  定义电信
  3. echo 201 cnc >>/etc/iprouter2/rt_tables 定义联通
  4. ip route flush table tel
  5. ip route add default via 114.80.227.225 dev eth0 src 114.80.227.239 table tel
  6. ip rule add from 114.80.227.239 table tel

  7. ip route flush table cnc
  8. ip route add default via 112.65.232.225 dev eth1 src 112.65.232.239 table cnc
  9. ip rule add from 112.65.232.239 table cnc
  10. 说明:ip route add default via 网关 dev eth0 src IP(eth0) table tel
2、将联通的ip添加到路由中,如果上面你将联通定义为默认网关是就增加电信的ip:
  一、安装ip地址查询:
  1. 下载软件包:
  2. wget http://ftp.apnic.net/apnic/dbase ... se-client-v3.tar.gz
  3. 解压软件包:
  4. tar zxvf ripe-dbase-client-v3.tar.gz
  5. 配置:
  6. cd whois-3.1
  7. ./configure --prefix=/usr
  8. 编译安装
  9. make && make install
  二、将ip添加到路由:
 
 
 
 
 
 
阅读(1154) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~