LVS系列—LVS-DR 模式安装

来源:互联网 发布:珠海广电网络营业厅 编辑:程序博客网 时间:2024/05/17 21:59

一、准备工作——LVS Server

为了让您了解LVS的另外设置方式,本次我们使用VIP的方式,而不是两张网卡的方式(当然您也可以用两张网卡的方式)。VIP的方式是后面我们将讲到的LVS + Keepalived组合工作模式的常用方式。所谓VIP就是虚拟IP,是指这个IP不会固定捆绑到某一个网卡设备,而是通过ifconfig命令绑定,并在“适当时候”这种绑定关系会随之变化。

DIP:192.168.1.57
VIP:192.168.1.100

1、设置VIP信息

[root@bogon ~]# ifconfig ens33:0 192.168.1.100 broadcast 192.168.1.100 netmask 255.255.255.255 up[root@bogon ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.1.57  netmask 255.255.255.0  broadcast 192.168.1.255        inet6 fe80::2a8d:be6:a4a8:ea0  prefixlen 64  scopeid 0x20<link>        ether 00:0c:29:24:26:9c  txqueuelen 1000  (Ethernet)        RX packets 98059  bytes 7746619 (7.3 MiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 942  bytes 114751 (112.0 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.1.100  netmask 255.255.255.255  broadcast 192.168.1.100        ether 00:0c:29:24:26:9c  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 1  (Local Loopback)        RX packets 273  bytes 25704 (25.1 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 273  bytes 25704 (25.1 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2、设置路由信息

[root@bogon ~]# route add -host 192.168.1.100 dev ens33:0[root@bogon ~]# routeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         192.168.1.1     0.0.0.0         UG    101    0        0 ens33192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33192.168.1.100   0.0.0.0         255.255.255.255 UH    0      0        0 ens33

3、通过一个外网IP,可以ping通这个VIP(下面这个DOS系统是VM的母机)

C:\Users\1234>ping 192.168.1.100正在 Ping 192.168.1.100 具有 32 字节的数据:来自 192.168.1.100 的回复: 字节=32 时间<1ms TTL=64来自 192.168.1.100 的回复: 字节=32 时间<1ms TTL=64来自 192.168.1.100 的回复: 字节=32 时间<1ms TTL=64来自 192.168.1.100 的回复: 字节=32 时间<1ms TTL=64192.168.1.100Ping 统计信息:    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位):    最短 = 0ms,最长 = 0ms,平均 = 0ms

以上,我们完成了LVS主机设置LVS-DR工作模式的准备工作。注意:

  • 在您设置过程中,防火前最好关闭,但在正式生产环境中,LVS的防火强最好打开。
  • VIP信息在LVS主机重启后,会消失。所以您最好将设置VIP的命令做成一个脚本。

二、准备工作——Real Server

RIP:192.168.1.51

真实服务器的准备工作,需要保证真实服务器能够访问外网网关,并且保证由LVS改写的报文能够被Real Server处理,这就需要做一个回环IP。

1、设置回环IP

将报文的帧重新交给交换机的时候,交换机会根据目标MAC重新发往realserver,当realserver收到请求之后目标地址由于是VIP,因此为了让realserver接收目标地址为vip的报文,在每个realserver必须配置vip的地址,不然不匹配报文无法接收,也就意味着每个realserver都必须配置vip

# 指定广播地址为自己本机,不对外做任何广播,说明不需要与任何主机通信,只将在响应客户端的请求的时候将自己做为源地址。[root@bogon www.test1.com]# ifconfig lo:0 192.168.1.100 broadcast 192.168.1.100 netmask 255.255.255.255 up[root@bogon www.test1.com]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.1.51  netmask 255.255.255.0  broadcast 192.168.1.255        inet6 fe80::853a:c1a1:7172:a45d  prefixlen 64  scopeid 0x20<link>        inet6 fe80::2a8d:be6:a4a8:ea0  prefixlen 64  scopeid 0x20<link>        ether 00:0c:29:1a:76:7e  txqueuelen 1000  (Ethernet)        RX packets 100117  bytes 7785003 (7.4 MiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 1568  bytes 218186 (213.0 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: 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 1  (Local Loopback)        RX packets 72  bytes 6248 (6.1 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 72  bytes 6248 (6.1 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536        inet 192.168.1.100  netmask 255.255.255.255        loop  txqueuelen 1  (Local Loopback)

2、设置路由信息

响应报文从哪个接口出去,则将哪个接口的地址当做源地址。所以,为了使得源地址是VIP还必须加一条路由,如果主机目标地址是vip的,那么一定要通过lo接口出去。

[root@bogon www.test1.com]# route add -host 192.168.1.100 dev lo:0[root@bogon www.test1.com]# routeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         192.168.1.1     0.0.0.0         UG    100    0        0 ens33192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33192.168.1.100   0.0.0.0         255.255.255.255 UH    0      0        0 lo

3、关闭这台机器进行ARP查询的功能

事实上路由器将报文转发至directory之前要先进行arp广播请求,arp广播的意义是将vip转换为mac地址,那么按理来讲我们的realserver都配置了vip,也就意味着所有配置vip的主机都能响应其报文,很显然这么就乱套了,所以我们就期望进来的请求只到达directory,不然负载均衡就没有意义了。

[root@bogon www.test1.com]# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore[root@bogon www.test1.com]# echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce[root@bogon www.test1.com]# echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore[root@bogon www.test1.com]# echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

以上设置完成。完成后,您需要通过ping命令,检查一下网关是否可用(最好可以瓶ping一下外网的某个地址,例如163.com)。LVS-DR模式下,Real Server是直接向请求方返回结果,所以一定要保证网关时可用的。

[root@bogon www.test1.com]# ping www.baidu.comPING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=18.0 ms64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=17.6 ms64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=19.6 ms64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=17.1 ms^C--- www.a.shifen.com ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3010msrtt min/avg/max/mdev = 17.130/18.112/19.602/0.932 ms

4、看看Nginx是不是工作正常的

很重要的一点:Nginx服务器要监听在VIP上,即 lo:0 上。

[root@localhost ~]# curl 192.168.1.100192.168.3.11

Nginx的安装配置请参考Nginx系列—服务器安装与配置

Nginx虚拟机的配置请参考

  • Nginx系列—虚拟主机配置的三种方式(一)
  • Nginx系列—虚拟主机配置的三种方式(二)
  • Nginx系列—虚拟主机配置的三种方式(三)

按照同样的步骤多陪几台服务器,便于测试。

完成准备工作后,我们可以开始安装和配置LVS了。

三、开始安装和配置LVS-DR模式

[root@bogon www.test1.com]# ipvsadm -C[root@bogon www.test1.com]# ipvsadm -At 192.168.1.100:80 -s rr[root@bogon www.test1.com]# ipvsadm -at 192.168.1.100:80 -r 192.168.1.51 -g

介绍一下新出现的参数:

  • -g –gatewaying 指定LVS 的工作模式为直接路由模式DR模式(也是LVS默认的模式)。

四、配置完成,进行测试

接下来,我们就可以在外网,通过192.168.1.100这个IP访问配置的这几台Real Server上的Nginx服务了:

这里写图片描述

这里写图片描述

测试时,每次请求之前要清空浏览器缓存,这样才可以看到轮询的结果。


附、配置过程中问题

1、测试时,出现“192.168.1.10 连接被拒绝的”情况

使用命令 ipvsadm -lcn ,出现如下问题:

CP 00:54 SYN_RECV h100:12949 192.168.1.100:80 h104:80

原因如下:

realserver的服务监听IP我选择了监听指定的IP,即eth0的IP,而未监听lo,即本地地址,那么即使收到了由directoryserver转发的请求,通过本地广播给本机的lo:0,因为服务没有监听lo,所以也不会有响应。

2、arp_ignore 和 arp_announce

arp_ignore 响应级别:当接收到ARP请求时是否选择响应的级别。

  • 默认0 将本机任何接口上的任何地址向外通告;
  • 1:请求的目标IP配置在对外通信接口(一般是eth0)上,才响应;
  • 2:..
  • 3:..

arp_announce 向外通知级别:定义将自己地址主动向外通知的级别;

  • 默认0;
  • 1:本地接口地址不止一个,如果某个本地接口地址不在ARP请求的目标地址所在的子网络,就避免通告;
  • 2:响应最佳本地地址。即只有目标地址在网络接口的通信接口上,才予以回应。即通信接口(eth0)上的地址就是目标地址,才予以响应,当然如果没匹配,还是可以有其他响应的,先理解到这就可以了。

例如:假设一台主机,两个网卡,MAC1和MAC2

MAC1上边的网络接口有 eth0 和 lo。
IP地址配置为:

  • eth0配置192.168.10.3/24;
  • lo:0配置172.168.19.2/16;
  • lo:1配置192.168.10.111/24。

这里eth0和lo:1在同一子网。

MAC2 上边就一个接口eth0,配置IP 192.168.122.7/24。

arp_announce=1:我们知道如果要通信,则一定是经过eth0接口,所以

  • 当目标请求lo:1时,则在目标子网络中的接口有eth0,所以就会响应ARP请求;
  • 当目标请求lo:0,则目标网络中没有eth0,所以不响应。

注意到LVS-DR模型,VIP、DIP和RIP都在同一网段哦,所以设置arp_announce=1是不行的,因为RS主机上eth0上的RIP和lo:0上的VIP在同一网段,所以收到ARP广播是会响应的。

arp_announce=2:通告最佳本地地址,即只有目标地址在网络接口的通信接口上,才予以回应。即通信接口(eth0)上的地址就是目标地址,才予以响应。

再了解一个概念:

一个RS主机有两个网络接口(不是两个网卡哦,说白了就是eth0和lo是两个接口,但是是同一个网卡,所以只有一个MAC,但是所有向外通信都是通过eth0这个接口),一个eth0一个lo,对吧,我们将VIP配置到lo接口的别名lo:0上,如果VIP要通信,则一定是通过eth0,对吧,也就是说当收到ARP广播请求VIP地址时,请求是通过eth0进来的,而VIP将以eth0的MAC并通过eth0予以响应,所以我们只要设置了忽略响应级别和响应级别,即设置只要请求的IP不是配置在eth0接口上,一律不予响应(arp_ignore的意义)

3、关于LVS-DR中的一个普遍误区:lo:0配置路由

关于LVS-DR中的一个普遍误区:lo:0配置路由

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 火车坐过站了怎么办 被黄牛骗了300怎么办 断奶后乳房有硬块怎么办 断奶了有硬块疼怎么办 断奶时乳房有硬块怎么办 憋奶乳房有硬块怎么办 回奶以后有硬块怎么办 回奶里面有肿块怎么办 回奶时候的硬块怎么办 回奶乳房有硬块怎么办 回奶胀痛有硬块怎么办 回奶期间有硬块怎么办 回奶期间乳房有硬块怎么办 回奶乳房有肿块怎么办 牛犊子出生3天喘怎么办 猪高烧不退不吃怎么办 苹果6刷机失败怎么办 uc能看不能下怎么办 苹果6s铃声太小怎么办 苹果6铃声声音小怎么办 苹果7来电铃声小怎么办 红米手机声音小怎么办 微信安装不上去怎么办 6s无法安装微信怎么办 苹果4微信版本低怎么办 新手机没有微信怎么办 新手机登陆微信怎么办 新号码被注册过怎么办 微信注册不了怎么办啊 苹果4铃声不响怎么办 苹果6黑屏没反应怎么办 苹果7卡机黑屏了怎么办 苹果7手机铃声小怎么办 支付宝发现套现怎么办 空调滴水管断了怎么办 地漏下水管断了怎么办 脸上长白色糠疹怎么办 腋下长白色的毛怎么办 饥荒电羊死光了怎么办 6s储存空间虚满怎么办 大胸下垂穿婚纱怎么办