Keepalived LVS-DR中VIP如何被外网访问
求大神赐教!
有3台拥有独立ip的双网卡机器(eth0外网ip,eth1内网ip,3台机器在同一内网)。不是很理解VIP究竟是要外网IP还是内网IP。用户是如果通过VIP访问LVS然后路由到RS上?
eth0 | eth1 | |
LVS | 122.115.92.50 | 192.168.92.50 |
RS1 | 122.115.92.51 | 192.168.92.51 |
RS2 | 122.115.92.52 | 192.168.92.52 |
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 } } }
#!/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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
楼主这个问题怎么解决,能不能分享一下?谢谢!
楼主搞定了吗?遇到了相似的问题,求指教
用硬件防火墙,或者路由器 做一对一映射。 比如你的公网ip是1.2.3.4,你的虚拟ip是192.168.0.100,在防火墙设备上做mip 。 如果没有呢? 据说用虚拟ip是个公网ip也可以,但这样不安全,而且浪费公网ip地址。
引用来自“OSC大波波泷泽萝拉”的评论
V IP 是单独的虚拟IP,对外暴露的,假如你的 VIP是内网的IP 那你的有个固定的IP需要映射到内网的这个VIP上
引用来自“OSC大波波泷泽萝拉”的评论
VIP 是 这个KEEPALIVED组对外暴露的IP,这下明白了吧,外部访问的时候访问的是VIP,当一个机子挂掉,会自动漂移到另外一台机子上
VIP 是 这个KEEPALIVED组对外暴露的IP,这下明白了吧,外部访问的时候访问的是VIP,当一个机子挂掉,会自动漂移到另外一台机子上
回复
我说的防火墙是硬件防火墙
回复
你假如使用的是阿里云的,他也有很多的,一个内网IP一个外网IP
回复
执行上面的iptables现在不会出现那个问题,只是没能转发,刚刚是我的设置有些问题。
V IP 是单独的虚拟IP,对外暴露的,假如你的 VIP是内网的IP 那你的有个固定的IP需要映射到内网的这个VIP上