关于LVS-DR中的一个普遍误区:lo:0配置路由


说明:写此文仅为让大家知道各大网站上看到的配置文件中的一个误区!!

    前面刚发表一篇关于LVS原理的博客,随后有位兄弟就问了一个特别的问题:

    为何需要在lo:0上配置路由,我没配置lvs也正常啊?

    刚开始我给他分析了一下:

        client请求包是:Src_ip=cip, Dst_ip=vip
        RS响应包是:Src_ip=vip, Dst_ip=cip
    这上面是client收到RS响应必须的要求,所以会带来个问题:
        我在此之前的观点是:linux中报文从哪个网口出去,它的源IP就是那个网口的IP,所以默认情况下是不行的;只有当在内核中就指定路由先从lo:0出去再经过eth0才符合要求的;

    然后我就想,既然这位兄弟没配置路由,是不是linux系统能自动识别或者其它机制实现RS响应包的源IP就是VIP,目标IP就是CIP呢?带着这个问题,我简单地搭建了一个LVS-DR环境:

    具体配置:

    1)DR上的配置:

# ifconfig eth0:1 192.168.100.100 up
# echo 1 >/proc/sys/net/ipv4/ip_forward
# ipvsadm -A -t 192.168.100.100:80 -s rr
# pvsadm -a -t 192.168.100.100:80 -r 192.168.100.102 -g 
# ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.103 -g

    2)RS上的配置:

# echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore 
# echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore 
# echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce 
# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
# ifconfig lo:0 192.168.100.100 netmask 255.255.255.255 broadcast 192.168.100.100 up

    3)测试

    在IE上输入http://192.168.100.100完全没问题。


总结

    由于之前学习LVS时看各种各网站上的配置文件都会加入

# route add -host 192.168.100.100 dev lo:0

而且也符合此前我所认知的观点,由于只是知道此观点是错的,但错在哪呢?

随后相到查看路由表,于是man 了一下route 找到-C 参数查看路由表缓存;

wKioL1PHnAiRTCF5AAQNGlUgknk625.jpg

跟据最后一条信息估计,如果还是此前那种观点,那么就应该解释为:系统会自动补充路由信息。

在这里,我需要感谢这位兄弟:福州-北纬27度

你可能感兴趣的:(配置,lvs-dr)