LVS DR配置

因公司做小型IPTV系统,需要负载均衡。所以在网上查资料,自己试验了一下。记录如下

1. 概图

首先使网络正常,各个主机之间能正常通信。关闭防火墙或者打开相应端口。

查看版本都可以用 lsb_release -a

 

LVS服务器centos8 

R1 109 

ubuntu18.4 
R2 9ubuntu18.4

VIP:192.168.1.10  LVS服务器和后端服务器都必须配置。

2. arp_ignore arp_announce值

arp_ignore和arp_announce参数都和ARP协议相关,主要用于控制系统返回arp响应和发送arp请求时的动作。

限制响应 arp_ignore  

0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。

1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

限制通告 arp_announce

0:允许使用任意网卡上的IP地址作为arp请求的源IP,通常就是使用数据包a的源IP。

1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。

2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。

[root@centos8 ~]# cat /proc/sys/net/ipv4/conf/lo/arp_ignore                     
0
[root@centos8 ~]# cat /proc/sys/net/ipv4/conf/lo/arp_announce
0

4.LVS服务器:

安装ipvsadm

#!/bin/bash
ipvsadm -A -t 192.168.1.10:9081 -s rr
ipvsadm -a -t 192.168.1.10:9081 -r 192.168.1.9:9081 -g -w 1
ipvsadm -a -t 192.168.1.10:9081 -r 192.168.1.109:9081 -g -w 1

ifconfig lo:1 192.168.1.10 broadcast 192.168.1.255 netmask 255.255.255.255 up  #也必须配VIP

配置后使用ipvsadm -Ln查看

[root@centos8 home]# 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.1.10:9081 rr
  -> 192.168.1.9:9081             Route   1      0          0         
  -> 192.168.1.109:9081           Route   1      0          0         

如果配置错误或者清除配置

ipvsadm -C

清除VIP

ip address del 192.168.1.10 dev lo:1

5. 后端服务器

R1:

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:1 192.168.1.10 broadcast 192.168.1.255 netmask 255.255.255.255 up

R2:

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:1 192.168.1.10 broadcast 192.168.1.255 netmask 255.255.255.255 up

配置后能实现轮询。但是还需要设置检测后端在线情况。

6. 检测

客户端使用curl 192.168.1.10:9081测试

在LVS服务器上检测

[root@centos8 home]#  ipvsadm -ln  --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  192.168.1.10:9081                   0        1        0      218        0
  -> 192.168.1.9:9081                        0        1        0      204        0
  -> 192.168.1.109:9081                    0        0        0       14        0

CPS (current connection rate) 每秒连接数
InPPS (current in packet rate) 每秒的入包个数
OutPPS (current out packet rate) 每秒的出包个数
InBPS (current in byte rate) 每秒入流量(字节)
OutBPS (current out byte rate) 每秒入流量(字节)


[root@centos8 home]#  ipvsadm -l  --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  centos8:9081                        0        1        0       43        0
  -> 192.168.1.9:9081                    0        1        0       30        0
  -> 192.168.1.109:9081                  0        0        0       13        0

Conns (connections scheduled) 已经转发过的连接数
InPkts (incoming packets) 入包个数
OutPkts (outgoing packets) 出包个数
InBytes (incoming bytes) 入流量(字节)
OutBytes (outgoing bytes) 出流量(字节)

在R服务器上检测

tcpdump -nn port  直接以端口显示

root@ubuntu18s:/home# tcpdump -nn port 9081
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes
02:28:33.367742 IP 192.168.1.134.14403 > 192.168.1.10.9081: Flags [S], seq 1352389272, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
02:28:33.368508 IP 192.168.1.134.14403 > 192.168.1.10.9081: Flags [.], ack 2444804585, win 4106, length 0
02:28:33.368519 IP 192.168.1.134.14403 > 192.168.1.10.9081: Flags [P.], seq 0:81, ack 1, win 4106, length 81
02:28:33.371357 IP 192.168.1.134.14403 > 192.168.1.10.9081: Flags [F.], seq 81, ack 343, win 4104, length 0
02:28:33.372418 IP 192.168.1.134.14403 > 192.168.1.10.9081: Flags [.], ack 344, win 4104, length 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值