jlijian3 / lvs-snat

84 stars 34 forks source link

多链路检测自动切换及路由配置 #3

Open sxauyhz opened 8 years ago

sxauyhz commented 8 years ago

你好,想请问如下问题,麻烦指点: 1、多个uplink时是否需要做策略路由,默认网关该如何配置? 2、怎么配置链路检测机制,例如联通链路出问题,自动切换到电信,我的配置如下,当我ifdow当前的默认网关em3网卡时,就不通了,这个可以理解,默认网关没了: virtual_server fwmark 1 { snat_rule { from 10.0.0.0/8 gw 111.6.13.1 #联通网络 oif em3 snat_ip 111.6.13.8 algo random } snat_rule { from 10.0.0.0/8 gw 111.6.13.1 oif em3 new_gw 16.8.36.1 #电信网络 snat_ip 16.8.36.8 algo sdh }

jlijian3 commented 8 years ago

你好,这个仅提供链路切换配置,但是链路检测是需要应用层自己来检测,并更改配置完成的。 当然我们的实现应用程序来自动完成的:

  1. 应用程序ping下一跳;
  2. 如果下一跳出现n次丢包,就更改配置(程序完成);
  3. reload keepalived更新配置完成链路切换。

就是正常情况下,new_gw这个配置是不需要的,当链路出现故障,自动更改keepalived配置并reload完成切换。 你上面那2个snat_rule不应该同时出现,正常是配第一个,故障时改为第2个rule,恢复时,再改为第一个,这个用脚本完成不难的。 keepalived支持include xxx.conf的方式配置,你可以准备好各个链路故障相应的snat_rule配置,然后在检测到故障时更改keepalived.conf里include 不同的xxx.conf

jlijian3 commented 8 years ago

对于多链路策略路由,网上也有很多教程, echo "251 unicom" >> /etc/iproute2/rt_tables echo "250 telcom" >> /etc/iproute2/rt_tables

ip route add default via <电信下一跳> table telcom ip rule add from <本机电信ip> lookup telcom ip route add default via <联通下一跳> table unicom ip rule add from <本机联通ip> lookup unicom

默认网关,如果你想设为电信 就是ip route add default via <电信下一跳>

sxauyhz commented 8 years ago

非常感谢,我试试脚本检测