日期:2014-05-16  浏览次数:20852 次

[linux网络] iptables+ip route 实现双线上网流量分割
1 网络结构
  a 内网机器
    client1 : 192.168.28.20/24 gateway 192.168.28.1
    client2 : 192.168.28.120/24 gateway 192.168.28.1
 
  b 路由器
    eth0 192.168.28.1/24
    eth1 119.161.232.156/29 gateway 119.161.232.154
    eth2 192.168.1.91/24    gateway 192.168.1.1



2 路由器配置
 
  a 创建路由表
    echo 150 fast >> echo 150 fast >> /etc/iproute2/rt_tables
    echo 150 fast >> echo 150 fast >> /etc/iproute2/rt_tables

  b 添加路由
    ip route add 119.161.232.152/29 dev eth1 src 119.161.232.156 table fast
    ip route add 192.168.28.0/24 dev eth0 src 192.168.28.1 table fast
    ip route add default via 119.161.232.154 dev eth1 table fast

    ip route add 192.168.1.0/24 dev eth2 src 192.168.1.91 table slow
    ip route add 192.168.28.0/24 dev eth0 src 192.168.28.1 table slow
    ip route add default via 192.168.1.1 dev eth2 table slow
 
  c 删除默认路由
    ip route del default

  d 添加规则
    ip rule add from 192.168.1.0/24 table slow
    ip rule add from 119.161.232.152/29 table fast

  e 设置过滤
    ip rule add from 192.168.28.40 table slow
    iptables -t nat -A POSTROUTING -s 192.168.28.40 -j SNAT --to 192.168.1.91

    ip rule add from 192.168.28.120 table fast
    iptables -t nat -A POSTROUTING -s 192.168.28.120 -j SNAT --to 119.161.232.156