centos双路ISP(一、原理)

2016/6/6 10:25 上午 目录  Linux 评论

目标: 一台服务器通过多个网卡连接多个网络,能够保证不同网络的来的数据能够按照原路返回,同时通过这两个网络中任意一个的外网ip或域名访问正常。

环境

  • 网络环境:
    • 两个网段192.168.199.0/24 192.168.1.0/24,两个网段物理隔离,分别从两个不同的ISP供应商连接互联网。
    • TPlink路由器绑定域名 longxintaiye.f3322.net
    • 极路由绑定域名 longsun.jios.org
  • 服务器:
    • 操作系统: CentOS 7 minimal
    • 两个物理网卡分别绑定两个网桥br0 br1,实际相当于两个物理网卡(后面直接把网桥当作物理网卡来理解)
    • br0连接极路由:ip 192.168.199.11 通过极路由映射端口22,外网访问地址为 longsun.jios.org:1122
    • br1连接路由器TPLink:ip 192.168.1.11 通过TPLink映射端口22,外网访问地址为 longxintaiye.f3322.net:1122
  • 测试机
    • 阿里云服务器,CentOS 7 安装Telnet 外网测试访问22端口是否能通

为何废弃route命令改用iproute2网络包?

  • route命令属于net-tools工具包的一个命令,从2001年不再维护,很多linux内核支持的新的网络特性无法通过route命令实现
  • iproute2从centos7以后替换net-tools工具的成为系统默认网络工具,支持route策略配置及流量控制等功能

route命令的缺陷

route命令创建的路由表相当于,iproute2中的main路由表,只能设置一个网关,会根据default网关的添加顺序及metric权重值来取做唯一的网关,一般情况下最后添加的及metric最小的默认路由生效

为什么只有用iproute2的ip命令才能够解决双路问题?

  • ip route 命令支持定义多张路由表,每个路由表都可以自由设定默认路由静态路由等策略
  • route只能维护一张路由表,只能有一个默认网关比如:192.168.1.1

    1. TPLink路由器发送到br1网卡的数据包,会根据默认路由表中的网关送回到192.168.1.1 TPLink去,此时链路正常

    2. 极路由发送到br0网卡的数据包,会根据route的默认路由表中的网关送回到192.168.1.1, TPLink没有接受过这个数据包,也无法获取源地址正确的转回去。

  • ip rule 支持定义策略,将不同类型的网络数据跟不同路由表绑定,例如:
    • 极路由192.168.199.0/24网络里发送到br0网卡上的数据包,会根据br0的路由表T2(自定义标号为202)指定的网关192.168.199.1返回极路由;
    • TPLink路由器中192.168.1.0/24网络里发送到br1网卡的数据包会根据br1对应的路由表T1(自定义标号为201)中的默认网关192.168.1.1,发送回TPLink;

ip route + ip rule实现双ISP接入网络配置
route命令详解
iproute2 策略路由与流量控制笔记
Linux策略性路由应用及分析(iproute2)
ip route 官方手册
iproute2 之 ip命令使用教程手册