当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 让多台电脑上网,多重上连ISP的路由设置

Unix/Linux
Linux 备份 恢复方法
Linux玩CS反恐精英的方法
在一个ISO镜像中集成多个不同的linux发行版,可刻盘,可引导
Linux 快捷键使用
Linux DHCP 服务器配置方法介绍
Linux 22端口的修改方法
Linux 记录会话过程的命令
Linux 后台执行程序如何操作?
linux Wget命令来浏览网页的方法
Linux tail命令的巧妙应用
Wine 中文存在很多的乱码怎么解决方法
linux 新手教程之创建锁文件的方法
配置Linux 保证其系统的安全
Linux DHCP协议实现过程
Linux系统下破解SAM密码
linux/unix vi 编辑器用法详解
Linux 误删文件的解决方法
Linux系统下的历史记录删除方法
Red Hat Linux 安全设置指南
Linux基本命令-注销、关机、重启

Unix/Linux 中的 让多台电脑上网,多重上连ISP的路由设置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 64 ::
收藏到网摘: n/a


  如果你有两个ISP,那么,通过下面的方法,可以将两个ISP绑定,并做负载均衡,可以实现带宽加倍。
  也就是说,假如我们有两条ADSL包月线路,可以使带宽变为1M!
  
  做这个工作,涉及到两个工作
  
  1、流量分割
  首先是如何保证:回应来自某一个ISP的数据包时,仍然使用相同的ISP。 让我们先定义一些符号。
  令第一块网卡(上图的if1)的名字叫 $IF1,而第二块网卡叫做 $IF2 。
  然后设置 $IF1 的IP地址为 $IP1,$IF2 的IP地址为 $IP2。
  并且,令ISP1 的网关地址为 $P1,ISP2 的网关地址为 $P2。
  最后,令$P1的网络地址为 $P1_NET ,令$P2的网络地址为 $P2_NET。
  额外创建两个路由表, T1 和 T2。 加入到 /etc/iproute2/rt_tables 中。
  然后如下设置两个路由表中的路由:
  ip route add $P1_NET dev $IF1 src /DownloadFiles\a\2003-08-31\$IP1 table T1
  ip route add default via $P1 table T1
  ip route add $P2_NET dev $IF2 src /DownloadFiles\a\2003-08-31\$IP2 table T2
  ip route add default via $P2 table T2
  没什么大不了的,不过是建立了通向该网关的一条路由,并使之成为默认网关,分别负责一个单独的上行流,并且为这两个ISP都作这样的配置。
  
  要指出的是,那条网络路由是必要条件,因为它能够让我们找到那个子网内的主机,也包括上述那台网关。
  下一步,我们设置“main”路由表。把包通过网卡直接路由到与网卡相连的局域网上不失为一个好办法。要注意“src” 参数,他们能够保证选择正确的出口IP地址。

  
  ip route add $P1_NET dev $IF1 src /DownloadFiles\a\2003-08-31\$IP1(br>  ip route add $P2_NET dev $IF2 src /DownloadFiles\a\2003-08-31\$IP2(br>  
  然后,设置你的缺省路由:
  ip route add default via $P1
  
  接着,设置路由规则。这实际上在选择用什么路由表进行路由。你需要确认当你从一个给定接口路由出数据包时,是否已经有了相应的源地址:你需要保证的就是如果你已经有了相应的源地址,就应该把数据包从相应的网卡路由出去:
  ip rule add from /DownloadFiles\a\2003-08-31\$IP1 table T1
  ip rule add from /DownloadFiles\a\2003-08-31\$IP2 table T2
  
  以上命令保证了所有的回应数据都会从他们来的那块网卡原路返回。 现在,完成了非常基本的配置。这将对于所有运行在路由器上所有的进程起作用,实现IP伪装以后,对本地局域网也将起作用。如果不进行伪装,那么你要么拥有两个ISP的地址空间,要么你想对两个ISP中的一个进行伪装。无论哪种情况,你都要添加规则,基于发包的主机在局域网内的IP地址,选择从哪个ISP路由出去。
  
  2、负载均衡
  第二个问题是如何对于通过两个ISP流出的数据进行负载均衡。
  如果你已经成功地实现了流量分割,这件事并不难。
  与选择两个ISP中的一个作为缺省路由不同,这次是设置缺省路由为多路路由。
  在缺省内核中,这会均衡两个ISP的路由。
  
  象下面这样做(基于前面的流量分割实验):
  ip route add default scope global nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1
  这样就可以均衡两个ISP的路由。通过调整“weight”参数我们可以指定其中一个ISP的优先权高于另一个。
  
  应该指出,由于均衡是基于路由进行的,而路由是经过缓冲的,所以这样的均衡并不是100%精确。也就是说,对于一个经常访问的站点,总是会使用同一个ISP。
  进而,如果你对此不满意,你可能需要参考以下Julian Anastasov的内核补丁:
  http://www.ssi.bg/~ja/
  Julian的路由补丁会弥补上述缺陷。(好像要重新编译内核,我没敢PATCH)
  
  上图是很常见的配置,同一个局域网(甚至是同一台计算机)通过两个ISP连接到互联网上。