lvs集群

NAT实验

需求:实现同ip访问不同网页

主机IP
RS1192.168.220.10
RS2192.168.220.20
LVS192.192.220.30

配置RS1主机

#修改主机名
[root@localhost ~]# hostnamectl set-hostname RS1
[root@localhost ~]# bash
[root@RS1 ~]#
 
 #查看ip
[root@RS1 ~]# ip addr show ens33 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:d2:6d:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.10/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed2:6da2/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

#关闭防火墙和selinux
[root@RS1 ~]# systemctl disable --now firewalld
[root@RS1 ~]# vim /etc/selinux/config 
SELINUX=disabled

#安装httpd配置网页
[root@RS1 ~]# yum install httpd -y
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# echo 'RS1' > /var/www/html/index.html
[root@RS1 ~]# cat /var/www/html/index.html 
RS1

#配置网卡
[root@RS1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.220.10
PREFIX=24
GATEWAY=192.168.220.30  //将网关指向调度器主机的ip
DNS1=114.114.114.114
[root@RS1 ~]# systemctl restart NetworkManager

访问测试网页
在这里插入图片描述

配置RS2主机

#修改主机名
[root@localhost ~]# hostnamectl set-hostname RS2
[root@localhost ~]# bash
[root@RS2 ~]# 

#查看ip
[root@RS2 ~]# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:db:88:69 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.20/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.220.155/24 brd 192.168.220.255 scope global secondary dynamic noprefixroute ens33
       valid_lft 1781sec preferred_lft 1781sec
    inet6 fe80::20c:29ff:fedb:8869/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@RS2 ~]# 


# 关闭防火墙和selinux
[root@RS2 ~]# systemctl disable --now firewalld
[root@RS2 ~]# vim /etc/selinux/config 
SELINUX=disabled

# 安装apache配置测试网页
[root@RS2 ~]# yum install httpd -y
[root@RS2 ~]# systemctl enable --now httpd
[root@RS2 ~]# echo 'RS2' > /var/www/html/index.html
[root@RS2 ~]# cat /var/www/html/index.html 
RS2

#配置网卡
[root@RS2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.220.20
PREFIX=24
GATEWAY=192.168.220.30  //将网关指向调度器主机的ip
DNS1=114.114.114.114
[root@RS2 ~]# systemctl restart NetworkManager

访问测试网页
在这里插入图片描述

配置LVS主机

添加一块新网卡并设置为仅主机模式
在这里插入图片描述

#设置主机名
[root@localhost ~]# hostnamectl set-hostname LVS
[root@localhost ~]# bash
[root@LVS ~]# 

#查看ip 可以看到新网卡为ens36 ip为192.168.222.132
[root@LVS ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:8c:8e:d5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.30/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe8c:8ed5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:8c:8e:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.222.132/24 brd 192.168.222.255 scope global dynamic noprefixroute ens36
       valid_lft 1740sec preferred_lft 1740sec
    inet6 fe80::31ba:1428:68c4:30fd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

# 关闭防火墙和selinux
[root@LVS ~]# systemctl disable --now firewalld.service 
[root@LVS ~]# vim /etc/selinux/config 
SELINUX=disabled

# 开启ip转发功能
[root@LVS ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1  //此行写道文件内

[root@LVS ~]# sysctl -p  //读取让其生效
net.ipv4.ip_forward = 1

# 安装配置ipvsadm
[root@LVS ~]# yum install ipvsadm -y

[root@LVS ~]# ipvsadm -A -t 192.168.222.132:80 -s rr  
[root@LVS ~]# ipvsadm -a -t 192.168.222.132:80 -r 192.168.220.10:80 -m
[root@LVS ~]# ipvsadm -a -t 192.168.222.132:80 -r 192.168.220.20:80 -m
[root@LVS ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@LVS ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.222.132:80 -s rr
-a -t 192.168.222.132:80 -r 192.168.220.10:80 -m -w 1
-a -t 192.168.222.132:80 -r 192.168.220.20:80 -m -w 1

[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  192.168.222.132:80 rr
  -> 192.168.220.10:80            Masq    1      0          0         
  -> 192.168.220.20:80            Masq    1      0          0     




[root@LVS ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33   //删除dns的那一条
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.220.30
PREFIX=24
GATEWAY=192.168.220.2
[root@LVS ~]# systemctl restart NetworkManager

#访问测试
[root@LVS ~]# curl 192.168.222.132
RS2
[root@LVS ~]# curl 192.168.222.132
RS1

开启director的ip转发功能
在director上添加并保存规则:

ipvsadm -A -t vip:port -s rr
ipvsadm -a -t vip:port -r rip -m
ipvsadm -S > /etc/sysconfig/ipvsadm

浏览器访问测试网页
注:如果刷新页面不能访问 就开两个网页一起访问然后另外一个刷新就会变化
在这里插入图片描述
在这里插入图片描述

DR实验

要求:DR模式实现web站点负载均衡

主机IP
RS1192.168.220.10
RS2192.168.220.20
LVS192.192.220.30

配置RS1主机

#修改主机名
[root@localhost ~]# hostnamectl set-hostname RS1
[root@localhost ~]# bash
[root@RS1 ~]#
 
 #查看ip
[root@RS1 ~]# ip addr show ens33 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:d2:6d:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.10/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed2:6da2/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

#关闭防火墙和selinux
[root@RS1 ~]# systemctl disable --now firewalld
[root@RS1 ~]# vim /etc/selinux/config 
SELINUX=disabled

#安装httpd配置网页
[root@RS1 ~]# yum install httpd -y
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# echo 'RS1' > /var/www/html/index.html
[root@RS1 ~]# cat /var/www/html/index.html 
RS1

访问测试网页
在这里插入图片描述

配置RS2主机

#修改主机名
[root@localhost ~]# hostnamectl set-hostname RS2
[root@localhost ~]# bash
[root@RS2 ~]# 

#查看ip
[root@RS2 ~]# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:db:88:69 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.20/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.220.155/24 brd 192.168.220.255 scope global secondary dynamic noprefixroute ens33
       valid_lft 1781sec preferred_lft 1781sec
    inet6 fe80::20c:29ff:fedb:8869/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@RS2 ~]# 


# 关闭防火墙和selinux
[root@RS2 ~]# systemctl disable --now firewalld
[root@RS2 ~]# vim /etc/selinux/config 
SELINUX=disabled

# 安装apache配置测试网页
[root@RS2 ~]# yum install httpd -y
[root@RS2 ~]# systemctl enable --now httpd
[root@RS2 ~]# echo 'RS2' > /var/www/html/index.html
[root@RS2 ~]# cat /var/www/html/index.html 
RS2

访问测试网页
在这里插入图片描述

配置LVS主机

[root@localhost ~]# hostnamectl set-hostname LVS
[root@localhost ~]# bash
[root@LVS ~]# 

# 关闭防火墙和selinux
[root@LVS ~]# systemctl disable --now firewalld.service 
[root@LVS ~]# vim /etc/selinux/config
SELINUX=disabled


[root@LVS ~]# yum install net-tools -y   //安装ifconfig命令的软件包

#查看网卡信息
[root@LVS ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.220.30  netmask 255.255.255.0  broadcast 192.168.220.255
        inet6 fe80::20c:29ff:fe8c:8ed5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8c:8e:d5  txqueuelen 1000  (Ethernet)
        RX packets 22818  bytes 18040359 (17.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 17984  bytes 2669873 (2.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


# 配置dip
[root@LVS ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.220.30
PREFIX=24
GATEWAY=192.168.220.2
DNS1=114.114.114.114

#配置vip
[root@LVS ~]# ifconfig ens33:0 192.168.220.254/32 broadcast 192.168.220.254 up //配置vip为192.168.220.254  广播地址为192.168.220.254

#查看网卡
[root@LVS ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.220.30  netmask 255.255.255.0  broadcast 192.168.220.255
        inet6 fe80::20c:29ff:fe8c:8ed5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8c:8e:d5  txqueuelen 1000  (Ethernet)
        RX packets 31174  bytes 18679875 (17.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 30364  bytes 5067821 (4.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500   //上面配置的vip
        inet 192.168.220.254  netmask 0.0.0.0  broadcast 192.168.220.254
        ether 00:0c:29:8c:8e:d5  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

配置RS1

注意:此处必须先修改网卡内核参数然后再配置vip,因为如果先配vip,vip配好后就会立马通告给别人,而修改内核参数就是为了不通告
配置RS1的rip

[root@RS1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.220.10
PREFIX=24
GATEWAY=192.168.220.2
DNS1=114.114.114.114

配置参数

[root@RS1 ~]# vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@RS1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

配置vip

[root@RS1 ~]# ifconfig lo:0 192.168.220.254/32 broadcast 192.168.220.254 up

[root@RS1 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.220.10  netmask 255.255.255.0  broadcast 192.168.220.255
        inet6 fe80::20c:29ff:fed2:6da2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d2:6d:a2  txqueuelen 1000  (Ethernet)
        RX packets 37460  bytes 2876407 (2.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 56204  bytes 10689362 (10.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.220.254  netmask 0.0.0.0
        loop  txqueuelen 1000  (Local Loopback)

配置RS2

配置rip

[root@RS2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.220.20
PREFIX=24
GATEWAY=192.168.220.2
DNS1=114.114.114.114

配置参数

[root@RS2 ~]# vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@RS2 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

配置vip

[root@RS2 ~]# ifconfig lo:0 192.168.220.254/32 broadcast 192.168.220.254 up
[root@RS2 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.220.20  netmask 255.255.255.0  broadcast 192.168.220.255
        inet6 fe80::20c:29ff:fedb:8869  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:db:88:69  txqueuelen 1000  (Ethernet)
        RX packets 39942  bytes 3059152 (2.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 59431  bytes 11212720 (10.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.220.254  netmask 0.0.0.0
        loop  txqueuelen 1000  (Local Loopback)

配置路由
调度器和RS主机上都需要做

[root@RS1 ~]# route add -host 192.168.220.254 dev lo:0   //RS1
[root@RS2 ~]# route add -host 192.168.220.254 dev lo:0   //RS2
[root@LVS ~]# route add -host 192.168.220.254 dev ens33:0  //LVS

配置调度器

[root@LVS ~]# yum install ipvsadm -y
[root@LVS ~]# ipvsadm -A -t 192.168.220.254:80 -s wrr
[root@LVS ~]# ipvsadm -a -t 192.168.220.254:80 -r 192.168.220.10:80 -g  //-g dr模式
[root@LVS ~]# ipvsadm -a -t 192.168.220.254:80 -r 192.168.220.20:80 -g
[root@LVS ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[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  192.168.220.254:80 wrr
  -> 192.168.220.10:80            Route   1      0          0         
  -> 192.168.220.20:80            Route   1      0          0 

访问测试页面
在这里插入图片描述

在这里插入图片描述
cmd命令行访问
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值