美文网首页
ipv6 lvs部署方案

ipv6 lvs部署方案

作者: jojo1313 | 来源:发表于2020-05-13 11:27 被阅读0次

    ipv6 lvs架构部署

    架构:
        lvs1                     lvs2   (lvs最少需要2块网卡,网卡1公网流量入口,网卡2内网转发)
          I                          |
        vip                       vip    (2个lvs挂载相同vip到公网流量入口网卡)
          |                         |
        waf1                      waf2  (2个waf内网卡各配置2个内网地址,网段1,网段2各一个)
    
      lvs 基于centos6.2 内核2.6.32-220.el6.x86_64,使用quagga 通过ospf6d发布vip到公网
      说明: 
         lvs 两块网卡,bond0配公网vip,  bond0.200配两个网段的内网ip,内网ip到waf连通正常
         waf 1块网卡,配置两个内网段ip,通过静态路由表处理lvs转发过来的流量
    
    1.安装组件yum install ipvsadm keepalived mysql-server
      rpm -ivh quagga-0.99.24.1-2015030701.x86_64.rpm
    
    2.vip-->waf realip 映射关系写入到mysql
    3.使用python脚本从mysql获取配置生成配置keepalived.conf文件
    4.配置ospf6d.conf 协议,启用ospf服务,目的把vip挂到公网上(需要交换机支持)
       /etc/init.d/watchquagga start
       /etc/init.d/ospf6d start
       /etc/init.d/zebra start
    
    5. 将vip 挂载到lo口
     ip -6 addr add xxx:xxx:64:8::42/128 dev lo
    
    6.打开linux内核转发功能(默认关闭)
     #/etc/sysctl.conf
     net.ipv4.ip_forward = 1
    net.ipv6.conf.all.forwarding = 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.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    net.core.netdev_max_backlog = 500000
    
    7.waf配置静态路由表
    #!/bin/bash
    # 配置静态路由表目的是内网转发lvs到waf之间流量
    ip -6 route add default via (lvs1网卡1) dev bond0.200 src (waf本地网卡1) table 11
    ip -6 rule add from  (waf本地网卡1) table 11
    
    ip -6 addr add (waf本地网卡2)  dev bond0.200 #一个网卡添加多个ip
    ip -6 route add default via lvs1网卡2 dev bond0.200 src  (waf本地网卡2) table 10
    ip -6 rule add from  (waf本地网卡2) table 10
    
    #/etc/quagga/ospf6d.conf
    !
    ! Zebra configuration saved from vty
    !   2003/11/28 00:49:49
    !
    hostname ospf6d
    password zebra
    log stdout
    debug ospf6 neighbor state
    
    interface bond0
    interface lo0
     ipv6 ospf6 cost 1
     !ipv6 ospf6 hello-interval 10
     !ipv6 ospf6 dead-interval 40
     !ipv6 ospf6 retransmit-interval 5
     ipv6 ospf6 priority 1
     ipv6 ospf6 transmit-delay 1
     ipv6 ospf6 instance-id 0
    !
    router ospf6
     router-id xxx.xxx.232.6
     interface lo area 0.0.0.1
     interface bond0 area 0.0.0.1
     area 0.0.0.1 range 2xxx:xxx:64:8::6/48
    
    
    #/etc/keepalived/keepalived.conf
        local_address_group laddr_v4 {
             192.168.33.254
        }
        local_address_group naddr_v4 {
             xxx.xxx.232.6
        }
        local_address_group laddr_v6 {
             fxxx:xxx:129:232:6:6:33::277  #内网转发ip,确保到waf连接正常
             fxxx:xxx:129:232:6:6:33::278
        }
        local_address_group naddr_v6 {
             fxxx:xxx:129:232:6:6:33::128  #本机公网vip
        }
        static_ipaddress {
             fxxx:xxx:129:232:6:6:33:277/64 dev bond0.200  #内网转发ip,确保到waf连接正常
             fxxx:xxx:129:232:6:6:33:278/64 dev bond0.200
    
        }
    
         virtual_server_group ipv6_vip_group_80 {
                 xxxx:xxxx:64:8::43 80  # 挂载lo vip 对外提供服务,对外可访问
                 xxxx:xxxx:64:8::44 80
         }
         virtual_server group ipv6_vip_group_80 {
            delay_loop 5
            lb_algo sh
            lb_kind NAT
            protocol TCP
            syn_proxy
            virtualhost lvscheck.xxx.xxx.net
             laddr_group_name laddr_v6
              real_server fxxx:xx:xxx:xx:6:6:33:6 8081 { #waf内网ip 
                  weight 10
                      TCP_CHECK {
                              connect_port 8081
                              connect_timeout 5
                      }
                }
              real_server fxxx:xx:xxx:xx:6:6:33:6 8082 {
                  weight 10
                      TCP_CHECK {
                              connect_port 8082
                              connect_timeout 5
                      }
                }
        }
    
    
    常用指令
    ip -6 route show table 10 查看路由表的配置
    ipvsadm -Ln 查看映射关系
    ip addr show 查看vip是否挂载
    ping6  xxx:xxx:xxx:xx::xx 测试ipv6地址连通性
    

    相关文章

      网友评论

          本文标题:ipv6 lvs部署方案

          本文链接:https://www.haomeiwen.com/subject/jlfbnhtx.html