• 企业LVS实战案例之LVS-DR模式单网段案例


    拓扑图如下:

    环境:5台主机
    一台:客户端 eth0 :仅主机 192.168.0.6/24 GW:192.168.0.200
    一台:router
    eth0:NAT:10.0.0.200/24
    eth1:仅主机 192.168.0.200/24
    启用IP_FORWARD

    一台:LVS
    eth0:NAT:DIP:10.0.0.8/24 GW:10.0.0.200

    两台RS:
    RS1:eth0:NAT:10.0.0.7/24 GW:10.0.0.200
    RS2:eth0:NAT:10.0.0.17/24 GW:10.0.0.200

    1.LVS 网路配置

    #所有主机禁用iptables和selinux
    
    #internet主机环境
    [root@internet ~]#hostname
    internet
    [root@internet ~]#hostname -I
    192.168.0.6
    [root@internet ~]#route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.0.200   0.0.0.0         UG    100    0        0 eth0
    192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
    
    #路由器的网络配置
    [root@router ~]#echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
    [root@router ~]#sysctl -p
    
    [root@router network-scripts]#cat ifcfg-eth0
    DEVICE=eth0
    NAME=eth0
    BOOTPROTO=static
    IPADDR=10.0.0.200
    PREFIX=24
    ONBOOT=yes
    MACADDR=00:0C:29:DD:D9:E2
    
    [root@router network-scripts]#cat ifcfg-eth1
    DEVICE=eth1
    NAME=eth1
    BOOTPROTO=static
    IPADDR=192.168.0.200
    PREFIX=24
    ONBOOT=yes
    MACADDR=00:0C:29:DD:D9:EC
    
    
    #RS1的网络配置
    [root@rs1 ~]#hostname
    rs1
    [root@rs1 ~]#hostname -I
    10.0.0.7
    [root@rs1 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    NAME=eth0
    BOOTPROTO=static
    IPADDR=10.0.0.7
    PREFIX=24
    GATEWAY=10.0.0.200
    DNS1=223.6.6.6
    DNS2=180.76.76.76
    ONBOOT=yes
    [root@rs1 ~]#route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.200      0.0.0.0         UG    100    0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
    
    [root@rs1 ~]#yum install -y httpd
    [root@rs1 ~]#systemctl enable --now httpd
    [root@rs1 ~]#hostname -I > /var/www/html/index.html
    [root@rs1 ~]#ping 192.168.0.6 -c3
    PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data.
    64 bytes from 192.168.0.6: icmp_seq=1 ttl=128 time=0.817 ms
    64 bytes from 192.168.0.6: icmp_seq=2 ttl=128 time=0.493 ms
    64 bytes from 192.168.0.6: icmp_seq=3 ttl=128 time=0.688 ms
    
    [root@rs1 ~]#curl 10.0.0.7
    10.0.0.7
    
    
    #RS2 的网络配置
    [root@rs2 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    NAME=eth0
    BOOTPROTO=static
    IPADDR=10.0.0.17
    PREFIX=24
    GATEWAY=10.0.0.200
    ONBOOT=yes
    DNS1=223.6.6.6
    DNS2=180.76.76.76
    MACADDR=00:0C:29:47:74:99
    [root@rs2 ~]#route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.200      0.0.0.0         UG    100    0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
    
    [root@rs2 ~]#yum -y install httpd
    [root@rs2 ~]#systemctl enable --now httpd
    [root@rs2 ~]#hostname -I > /var/www/html/index.html
    [root@rs2 ~]#curl 10.0.0.17
    10.0.0.17 
    [root@rs2 ~]#ping 192.168.0.6 -c1
    PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data.
    64 bytes from 192.168.0.6: icmp_seq=1 ttl=128 time=1.32 ms
    
    [root@rs2 ~]#curl 10.0.0.17
    10.0.0.17
    
    #LVS的网络配置
    [root@lvs ~]#hostname
    lvs
    [root@lvs ~]#hostname -I
    10.0.0.8 
    [root@lvs ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=none
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=10.0.0.8
    PREFIX=24
    GATEWAY=10.0.0.200
    DNS1=223.6.6.6
    DNS2=180.76.76.76
    [root@lvs ~]#route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.200      0.0.0.0         UG    100    0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
    
    [root@lvs ~]#ping 192.168.0.6 -c1
    PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data.
    64 bytes from 192.168.0.6: icmp_seq=1 ttl=63 time=0.869 ms

    2.后端RS的IPVS配置

    #RS1的IPVS配置
    [root@rs1 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@rs1 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@rs1 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@rs1 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    [root@rs1 ~]#ifconfig lo:1 10.0.0.100/32
    [root@rs1 ~]#ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet 10.0.0.100/0 scope global lo:1
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:d6:9a:19 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.7/24 brd 10.0.0.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fed6:9a19/64 scope link 
           valid_lft forever preferred_lft forever
      
      
    #RS2的IPVS配置
    [root@rs2 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@rs2 ~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@rs2 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@rs2 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    [root@rs2 ~]#ifconfig lo:1 10.0.0.100/32
    [root@rs2 ~]#ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet 10.0.0.100/0 scope global lo:1
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:47:74:99 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.17/24 brd 10.0.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe47:7499/64 scope link 
           valid_lft forever preferred_lft forever

    3.LVS主机的配置

    #在LVS上添加VIP
    [root@lvs ~]#ifconfig lo:1 10.0.0.100/32
    [root@lvs ~]#ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet 10.0.0.100/0 scope global lo:1
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:95:ad:91 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe95:ad91/64 scope link 
           valid_lft forever preferred_lft forever
           
    
    #实现LVS 规则
    [root@lvs ~]#dnf -y install ipvsadm
    [root@lvs ~]#ipvsadm -A -t 10.0.0.100:80 -s rr              #A:在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器
    [root@lvs ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.7:80 -g  #a:在内核虚拟服务器表的一条记录里添加一条新的真实服务器
    [root@lvs ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.17:80 -g #g,–gatewayin:指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
    [root@lvs ~]#ipvsadm -Ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  10.0.0.100:80 rr
      -> 10.0.0.7:80                  Route   1      0          0         
      -> 10.0.0.17:80                 Route   1      0          0 

    4.测试访问

    [root@internet ~]#curl 10.0.0.100
    10.0.0.17 
    [root@internet ~]#curl 10.0.0.100
    10.0.0.7 
  • 相关阅读:
    LR12解决不能打开webTours服务问题
    python中join()方法介绍
    python中的sort方法和sorted方法
    如何发送最新的测试报告到目标邮箱?
    python2.7发送邮件失败之——邮箱安全问题
    python2.7发送邮件失败之——代码问题
    python2.7发送邮件失败之——SMTPAuthenticationError问题
    使用HTMLTestRunner在目标目录下并未生成HTML文件解决办法
    python标准日志模块logging及日志系统设计
    性能测试需求分析
  • 原文地址:https://www.cnblogs.com/yds941268778/p/13747278.html
Copyright © 2020-2023  润新知