Keepalived LVS-DR中VIP如何被外网访问

发布于 2021-12-03 06:31:16 字数 2881 浏览 831 评论 10

求大神赐教!

有3台拥有独立ip的双网卡机器(eth0外网ip,eth1内网ip,3台机器在同一内网)。不是很理解VIP究竟是要外网IP还是内网IP。用户是如果通过VIP访问LVS然后路由到RS上?


eth0eth1
LVS122.115.92.50192.168.92.50
RS1122.115.92.51
192.168.92.51
RS2122.115.92.52
192.168.92.52
VIP: 192.168.92.100

LVS-keepalive配置:


vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.92.100
    }
}

virtual_server 192.168.92.100 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.92.51 80 {
        weight 1
	TCP_CHECK {
	    connect_timeout 3
	    nb_get_retry 3
	    delay_before_retry 3      
	}
    }

    real_server 192.168.92.52 80 {
        weight 1
	TCP_CHECK {
	    connect_timeout 3
	    nb_get_retry 3
	    delay_before_retry 3      
	}
    }
}



RS配置:



#!/bin/bash
#description: RealServer's script
VIP=192.168.92.100
source /etc/rc.d/init.d/functions
case "$1" in
start)
       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
       /sbin/route add -host $VIP dev lo:0
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig lo:0 down
       route del $VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
       *)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0



RS上运行一个80端口的tomcat,可以通过外网访问,iptables关闭。

RS上分别执行以上脚本,ifconfig见到lo:0 inet addr: 192.168.92.100  Mask:255.255.255.255。


执行后可以ping到VIP。curl http://vip/能访问到内容。


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

南冥有猫 2021-12-05 07:15:40

楼主这个问题怎么解决,能不能分享一下?谢谢!

悟红尘 2021-12-05 07:15:31

楼主搞定了吗?遇到了相似的问题,求指教

残花月 2021-12-05 07:14:59

用硬件防火墙,或者路由器 做一对一映射。 比如你的公网ip是1.2.3.4,你的虚拟ip是192.168.0.100,在防火墙设备上做mip 。 如果没有呢? 据说用虚拟ip是个公网ip也可以,但这样不安全,而且浪费公网ip地址。

混吃等死 2021-12-05 07:08:34

引用来自“OSC大波波泷泽萝拉”的评论

V IP 是单独的虚拟IP,对外暴露的,假如你的 VIP是内网的IP 那你的有个固定的IP需要映射到内网的这个VIP上

裸钻 2021-12-05 06:57:21

引用来自“OSC大波波泷泽萝拉”的评论

VIP 是 这个KEEPALIVED组对外暴露的IP,这下明白了吧,外部访问的时候访问的是VIP,当一个机子挂掉,会自动漂移到另外一台机子上

辞别 2021-12-05 06:52:35

VIP 是 这个KEEPALIVED组对外暴露的IP,这下明白了吧,外部访问的时候访问的是VIP,当一个机子挂掉,会自动漂移到另外一台机子上

策马西风 2021-12-05 06:03:00

回复
我说的防火墙是硬件防火墙

断爱 2021-12-05 04:42:03

回复
你假如使用的是阿里云的,他也有很多的,一个内网IP一个外网IP

怎言笑 2021-12-04 18:24:07

回复
执行上面的iptables现在不会出现那个问题,只是没能转发,刚刚是我的设置有些问题。

怎言笑 2021-12-04 04:01:19

V IP 是单独的虚拟IP,对外暴露的,假如你的 VIP是内网的IP 那你的有个固定的IP需要映射到内网的这个VIP上

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文