用iptables 和iproute2实现网络负载平衡功能

假设,网络中有两个外部接口,IP地址分别为eth0 172.16.1.1/24,eth1 10.0.0.1/24,连接内部网络的接口为eth2 192.168.1.1。现在设计这样一个策略,将所有浏览80的数据,走向172.16.1.1这个出口。其他的数据走向10.0.0.1 这个出口。

#接口设置

  
  
  
  
  1. ifconfig eth0 172.16.1.1 netmask 255.255.255.0  

  2. ifconfig eth1 10.0.0.1 netmask 255.255.255.0  

  3. ifconfig eth2 192.168.1.1 netmask 255.255.255.0  

  4. echo 1 >/proc/sys/net/ipv4/ip_forward  


#将web服务类的数据包打上标示100
#这一步,很关键,用于实现策略路由的是iproute2工具包,但是iproute2工具包是无法根据端口来进行匹配的,因此,需要借助iptables来配合

  
  
  
  
  1. iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 100  


#增加多路由表 假设172.16.1.1 这一出口的网关是172.16.1.254

  
  
  
  
  1. ip route add 0/0 via 172.16.1.254 table 100 



#设置路由策略 凡是数据包标记位上是100的数据,查询100号路由表

  
  
  
  
  1. ip rule add fwmark 100 table 100 



#NAT 如果需要的话,进行NAT 不需要的话,就直接路由

  
  
  
  
  1. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE  

 

你可能感兴趣的:(职场,休闲,策略路由)