设为首页 收藏本站
查看: 1608|回复: 0

[经验分享] lvs 一个网卡单个管理ip,多个跨网段VIP解决办法

[复制链接]

尚未签到

发表于 2019-1-5 10:19:56 | 显示全部楼层 |阅读模式
  说明:lvs的vip和realserver的rip是可以跨网段的
  ifconfig输出如下:
[root@sh-it-prd-lvs01 scripts]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:84:86:FB  
          inet6 addr: fe80::250:56ff:fe84:86fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7492562 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4443845 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:474201572 (452.2 MiB)  TX bytes:246936351 (235.4 MiB)
eth0.200  Link encap:Ethernet  HWaddr 00:50:56:84:86:FB  
          inet6 addr: fe80::250:56ff:fe84:86fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:936 (936.0 b)
eth0.1016 Link encap:Ethernet  HWaddr 00:50:56:84:86:FB  
          inet addr:172.24.130.113  Bcast:172.24.130.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe84:86fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7446938 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3145054 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:367240583 (350.2 MiB)  TX bytes:176803005 (168.6 MiB)
eth0.1025 Link encap:Ethernet  HWaddr 00:50:56:84:86:FB  
          inet6 addr: fe80::250:56ff:fe84:86fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45600 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1298779 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2106209 (2.0 MiB)  TX bytes:70132410 (66.8 MiB)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1024962 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1024962 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:72580466 (69.2 MiB)  TX bytes:72580466 (69.2 MiB)
[root@sh-it-prd-lvs01 scripts]#  其中 eth0.1016 和 eth0.1025做trunk
  

  ip a输出如下:
[root@sh-it-prd-lvs01 scripts]# ip a
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
9: eth0.200@eth0:  mtu 1500 qdisc noqueue state UP
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
11: eth0.1016@eth0:  mtu 1500 qdisc noqueue state UP
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet 172.24.130.113/24 brd 172.24.130.255 scope global eth0.1016
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
12: eth0.1025@eth0:  mtu 1500 qdisc noqueue state UP
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
[root@sh-it-prd-lvs01 scripts]#  

  最终效果如下:
[root@sh-it-prd-lvs01 ~]# ip a
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
9: eth0.200@eth0:  mtu 1500 qdisc noqueue state UP
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
11: eth0.1016@eth0:  mtu 1500 qdisc noqueue state UP
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet 172.24.130.113/24 brd 172.24.130.255 scope global eth0.1016
    inet 172.24.130.5/32 scope global eth0.1016
    inet 172.24.130.6/32 scope global eth0.1016
    inet 172.24.130.7/32 scope global eth0.1016
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
12: eth0.1025@eth0:  mtu 1500 qdisc noqueue state UP
    link/ether 00:50:56:84:86:fb brd ff:ff:ff:ff:ff:ff
    inet 172.24.25.5/32 scope global eth0.1025
    inet 172.24.25.6/32 scope global eth0.1025
    inet 172.24.25.7/32 scope global eth0.1025
    inet6 fe80::250:56ff:fe84:86fb/64 scope link
       valid_lft forever preferred_lft forever
[root@sh-it-prd-lvs01 ~]#  keepalived配置文件如下:
[root@sh-it-prd-lvs01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
        notification_email {
        wuxiaoyu@meituan.com
        }
        #notification_email_from root@localhost
        #smtp_server 127.0.0.1
        #smtp_connect_timeout 30
        router_id 980124
}
vrrp_sync_group VG_1 {
        group {
                VI_1
                VI_11
        }
}
vrrp_sync_group VG_2 {
        group {
                VI_2
                VI_21
        }
}
vrrp_sync_group VG_3 {
        group {
                VI_3
                VI_31
        }
}
vrrp_instance VI_1 {
        state MASTER
        interface eth0.1016  ##指定vrrp网卡
        virtual_router_id 50
        priority 150
        nopreempt # no seize,master must add
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 123456
        }
        virtual_ipaddress {
        172.24.130.5 dev eth0.1016
        }
        notify_master /etc/keepalived/scripts/state_master.sh
        notify_backup /etc/keepalived/scripts/state_backup.sh
        notify_fault  /etc/keepalived/scripts/state_fault.sh
}
vrrp_instance VI_11 {
        state MASTER
        interface eth0.1016  ##指定vrrp网卡
        virtual_router_id 150
        priority 150
        nopreempt # no seize,master must add
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 123456
        }
        virtual_ipaddress {
        172.24.25.5 dev eth0.1025
        }
        notify_master /etc/keepalived/scripts/state_master.sh
        notify_backup /etc/keepalived/scripts/state_backup.sh
        notify_fault  /etc/keepalived/scripts/state_fault.sh
}
virtual_server 172.24.130.5 53 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        #sorry_server 127.0.0.1 53
        protocol UDP
        real_server 172.24.130.115 53 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        MISC_CHECK {
                misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
                misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.115 53"
                }
        }
        real_server 172.24.130.116 53 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        MISC_CHECK {
                misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
                misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.116 53"
                }
        }
}
virtual_server 172.24.25.5 53 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        #sorry_server 127.0.0.1 53
        protocol UDP
        real_server 172.24.130.115 53 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        MISC_CHECK {
                misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
                misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.115 53"
                }
        }
        real_server 172.24.130.116 53 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        MISC_CHECK {
                misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
                misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.116 53"
                }
        }
}
vrrp_instance VI_2 {
        state  MASTER
        interface eth0.1016  ##指定vrrp网卡
        virtual_router_id 51
        priority 150
        nopreempt # no seize,master must add
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 123456
        }
        virtual_ipaddress {
        172.24.130.6 dev eth0.1016
        }
        notify_master /etc/keepalived/scripts/state_master.sh
        notify_backup /etc/keepalived/scripts/state_backup.sh
        notify_fault  /etc/keepalived/scripts/state_fault.sh
}
vrrp_instance VI_21 {
        state  MASTER
        interface eth0.1016  ##指定vrrp网卡
        virtual_router_id 151
        priority 150
        nopreempt # no seize,master must add
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 123456
        }
        virtual_ipaddress {
        172.24.25.6 dev eth0.1025
        }
        notify_master /etc/keepalived/scripts/state_master.sh
        notify_backup /etc/keepalived/scripts/state_backup.sh
        notify_fault  /etc/keepalived/scripts/state_fault.sh
}
virtual_server 172.24.130.6 80 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        #sorry_server 127.0.0.1 53
        protocol TCP
        real_server 172.24.130.117 80 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 80
                }
        }
        real_server 172.24.130.118 80 {
        weight 0
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 80
                }
        }
}
virtual_server 172.24.25.6 80 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        #sorry_server 127.0.0.1 53
        protocol TCP
        real_server 172.24.130.117 80 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 80
                }
        }
        real_server 172.24.130.118 80 {
        weight 0
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 80
                }
        }
}
vrrp_instance VI_3 {
        state  MASTER
        interface eth0.1016  ##指定vrrp网卡
        virtual_router_id 52
        priority 150
        nopreempt # no seize,master must add
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 123456
        }
        virtual_ipaddress {
        172.24.130.7 dev eth0.1016
        }
        notify_master /etc/keepalived/scripts/state_master.sh
        notify_backup /etc/keepalived/scripts/state_backup.sh
        notify_fault  /etc/keepalived/scripts/state_fault.sh
}
vrrp_instance VI_31 {
        state  MASTER
        interface eth0.1016  ##指定vrrp网卡
        virtual_router_id 152
        priority 150
        nopreempt # no seize,master must add
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 123456
        }
        virtual_ipaddress {
        172.24.25.7 dev eth0.1025
        }
        notify_master /etc/keepalived/scripts/state_master.sh
        notify_backup /etc/keepalived/scripts/state_backup.sh
        notify_fault  /etc/keepalived/scripts/state_fault.sh
}
virtual_server 172.24.130.7 10051 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        #sorry_server 127.0.0.1 53
        protocol TCP
        real_server 1.1.1.1 10051 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 10051
                }
        }
        real_server 1.1.1.2 10051 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 10051
                }
        }
}
virtual_server 172.24.25.7 10051 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        #sorry_server 127.0.0.1 53
        protocol TCP
        real_server 1.1.1.1 10051 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 10051
                }
        }
        real_server 1.1.1.2 10051 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
        TCP_CHECK {
                connect_timeout 3
                #nb_get_retry   3
                retry   3
                delay_before_retry 3
                connect_port 10051
                }
        }
}
[root@sh-it-prd-lvs01 ~]#  参考:https://github.com/acassen/keepalived/issues/445
  

  

  上面的172.24.25.5、172.24.25.6、172.24.25.7 vip  是不通的,解决办法,更新内核参数
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.core.netdev_max_backlog = 500000
net.ipv4.conf.all.accept_local=1
net.ipv4.conf.all.rp_filter=2  注意!!!!可以将上面的内容复制到机器上!!!!
  eth0.10.25 进包,从eth0.1016转发出包。
  

  另外vip可以和real server ip不在同一个网段,只要有一个物理网卡通接口,keepalived配置文件如下
! Configuration File for keepalived
global_defs {
        notification_email {
        #liusichen02@meituan.com
        }
        #notification_email_from root@localhost
        #smtp_server 127.0.0.1
        #smtp_connect_timeout 30
        router_id hwl
}
vrrp_sync_group VG_1 {
        group {
                VI_1
                VI_11
        }
}
vrrp_instance VI_1 {
        state MASTER
        interface eth0.1016
        virtual_router_id 213
        priority 150
        advert_int 1
        authentication {
                auth_type PASS
          auth_pass sankuai
        }
        virtual_ipaddress {
                172.24.130.5
        }
   #     notify_master /etc/keepalived/scripts/state_master.sh
    #    notify_backup /etc/keepalived/scripts/state_backup.sh
    #    notify_fault  /etc/keepalived/scripts/state_fault.sh
}
vrrp_instance VI_11 {
        state MASTER
        interface eth0.1016
        virtual_router_id 214
        priority 150
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass sankuai
        }
        virtual_ipaddress {
                172.24.25.5 dev eth0.1025
                172.24.25.6 dev eth0.1025
                172.24.25.7 dev eth0.1025
        }
    #    notify_master /etc/keepalived/scripts/state_master.sh
    #    notify_backup /etc/keepalived/scripts/state_backup.sh
    #    notify_fault  /etc/keepalived/scripts/state_fault.sh
}
virtual_server 172.24.130.5 53 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        protocol UDP
        real_server 172.24.130.115 53 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
  #      MISC_CHECK {
  #              misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
             #   misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.115 53"
#               }
        }
        real_server 172.24.130.116 53 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
#        MISC_CHECK {
#                misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
#                misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.116 53#"
#                }
        }
}
virtual_server 172.24.130.5 53 {
        delay_loop 6
        lb_algo wrr
        lb_kind DR
        persistence_timeout 50
        #sorry_server 127.0.0.1 53
        protocol UDP
        real_server 172.24.25.12 53 {
        weight 100
        #notify_up up.sh
        #notify_down down.sh
#        MISC_CHECK {
#                misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
#                misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.115 53"
#                }
        }
#        real_server 172.24.25.11 53 {
#        weight 100
        #notify_up up.sh
        #notify_down down.sh
#       MISC_CHECK {
#               misc_timeout 10
                #connect_timeout 3
                #nb_get_retry   3
                #retry   3
                #delay_before_retry 3
#               misc_path "/usr/local/keepalived/UDP_CHECK.sh 172.24.130.116 53"
#               }
#       }
}  上述实验证明,一个管理ip多个vip网段也是可以的,




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-659564-1-1.html 上篇帖子: 用LVS配置一个简单的web LB集群 下篇帖子: RHEL5下构建LVS负载均衡系统详解(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表