LVS로드 밸런싱 클러스터 --- DR 모드의 실제 배포에 대한 자세한 설명

LVS로드 밸런싱 클러스터-DR 모드의 실제 배포에 대한 자세한 설명

1. LVS-DR 데이터 패킷 흐름 분석

원리 분석을 용이하게하기 위해 클라이언트와 클러스터 머신을 동일한 네트워크에 배치하고 데이터 패킷 흐름의 경로는 1-2-3-4입니다.

여기에 사진 설명 삽입

1. 클라이언트가 대상 VIP에 요청을 보내고 디렉터 (로드 밸런서)가 요청을받습니다. 이때 소스 MAC 주소는 클라이언트 MAC 주소이고 대상 MAC 주소는 스케줄러 디렉터의 MAC 주소입니다.

2. 디렉터는로드 밸런싱 알고리즘에 따라 RealServer_1을 선택하고 IP 메시지를 수정하거나 캡슐화하지 않고 데이터 프레임의 MAC 주소를 RealServer_1의 MAC 주소로 변경 한 다음 LAN으로 보냅니다. 이때 원본 MAC 주소는 Director의 MAC 주소이고 대상 MAC 주소는 RealServer_1의 MAC 주소입니다.

3. RealServer_1은이 프레임을 수신하고 캡슐화 해제 후 대상 IP가 로컬 시스템과 일치 함을 발견하여 (RealServer는 미리 VIP에 바인딩 됨)이 메시지를 처리합니다. 그런 다음 메시지를 다시 캡슐화하고 응답 메시지를 lo 인터페이스를 통해 물리적 네트워크 카드로 보낸 다음 전송합니다. 이때 원본 MAC 주소는 RealServer_1의 MAC 주소이고 대상 MAC 주소는 클라이언트의 MAC 주소입니다.

4. 클라이언트는 응답 메시지를받습니다. 클라이언트는 정상적인 서비스를받는다고 생각하지만 어떤 서버가 그것을 처리하는지 모릅니다.
참고 : 네트워크 세그먼트를 통과하는 경우 메시지는 인터넷을 통해 라우터를 통해 사용자에게 반환됩니다.

둘째, LVS-DR의 ARP 문제

1. LVS-DR로드 밸런싱 클러스터에서로드 밸런싱과 노드 서버는 모두 동일한 VIP 주소로 구성되어야합니다.

2. 근거리 통신망에서 동일한 IP 주소를 사용하면 필연적으로 서버 간의 ARP 통신 장애가 발생합니다.

  • ARP 브로드 캐스트가 LVS-DR 클러스터로 전송되면로드 밸런서와 노드 서버가 동일한 네트워크에 연결되어 있기 때문에 둘 다 ARP 브로드 캐스트를 수신하게됩니다.
  • 프런트 엔드로드 밸런서 만 응답하고 다른 노드 서버는 ARP 브로드 캐스트에 응답하지 않아야합니다.

3. VIP에 대한 ARP 요청에 응답하지 않도록 노드 서버를 처리합니다.

  • 가상 인터페이스 lo : 0을 사용하여 VIP 주소 전달
  • 커널 매개 변수 arp_ignore = 1을 설정합니다. 시스템은 대상 IP가 로컬 IP 인 ARP 요청에만 응답합니다.

4. RealServer는 메시지 (소스 IP가 VIP)를 반환하고 라우터에 의해 전달되며 메시지를 다시 캡슐화 할 때 라우터의 MAC 주소를 먼저 획득해야합니다.

5. ARP 요청을 보낼 때 Linux는 기본적으로 보내는 인터페이스의 IP 주소를 사용하는 대신 IP 패킷의 소스 IP 주소 (예 : VIP)를 ARP 요청 패킷의 소스 IP 주소로 사용합니다.

  • 예 : ens33

6. 라우터가 ARP 요청을 수신하면 ARP 테이블 항목을 업데이트합니다.

7. 원래 VIP에 해당하는 Director의 MAC 주소는 VIP에 해당하는 RealServer의 MAC 주소로 업데이트됩니다.

8. 라우터가 ARP 테이블 항목에 따라 새 요청 메시지를 RealServer로 전달하여 Director의 VIP가 실패합니다
.

  • 노드 서버를 처리하려면 커널 매개 변수 arp_announce = 2를 설정합니다. 시스템은 IP 패킷의 소스 주소를 사용하여 ARP 요청의 소스 주소를 설정하지 않지만 전송 인터페이스의 IP 주소를 선택합니다.

9. ARP의 두 가지 문제를 해결하기위한 방법 설정
/etc/sysctl.conf 파일 수정

net.ipv4.conf.lo.arp_ignore=1 
net.ipv4.conf.lo.arp_announce=2 
net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=

2

3, DR 모드, LVS로드 밸런싱 클러스터

(1) 데이터 패킷 흐름 분석

(1) 클라이언트는 디렉터 서버 (로드 밸런서)에 요청을 보내고 요청 된 데이터 메시지 (소스 IP는 CIP, 대상 IP는 VIP)가 커널 공간에 도달합니다.
(2) Director Server와 Real Server는 동일한 네트워크에 있으며 데이터는 2 계층 데이터 링크 계층을 통해 전송됩니다.
(3) 커널 공간은 데이터 패킷의 대상 IP가 로컬 VIP라고 판단하고 이때 IPVS (IP 가상 서버)는 데이터 패킷이 요청한 서비스가 클러스터 서비스인지 비교하고 클러스터 서비스 인 경우 데이터 패킷을 다시 패키징합니다. 원본 MAC 주소를 Director Server의 MAC 주소로 수정하고 대상 MAC 주소를 Real Server의 MAC 주소로 수정합니다. 원본 및 대상 IP 주소는 변경되지 않고 데이터 패킷을 Real Server로 전송합니다.
(4) Real Server에 도착한 요청 메시지의 MAC 주소는 자신의 MAC 주소이며 메시지를 수신합니다. 데이터 패킷은 메시지를 다시 캡슐화하고 (소스 IP 주소는 VIP이고 대상 IP는 CIP) 응답 메시지는 lo 인터페이스를 통해 물리적 네트워크 카드로 전송 된 다음 전송됩니다.
(5) Real Server는 응답 메시지를 클라이언트에게 직접 전송합니다.

(2) DR 모드의 특징

(1) Director Server와 Real Server는 동일한 물리적 네트워크에 있어야합니다.
(2) Real Server는 사설 주소 또는 공용 네트워크 주소를 사용할 수 있습니다. 공용 네트워크 주소를 사용하는 경우 인터넷을 통해 RIP에 직접 액세스 할 수 있습니다.
(3) Director Server는 클러스터의 액세스 포털 역할을하지만 게이트웨이 역할은하지 않습니다.
(4) 모든 요청 메시지는 디렉터 서버를 통과하지만 응답 응답 메시지는 디렉터 서버를 통과 할 수 없습니다.
(5) Real Server의 게이트웨이는 Director Server IP를 가리킬 수 없습니다. 즉, Real Server가 보낸 데이터 패킷은 Director Server를 통과 할 수 없습니다.
(6) Real Server의 lo 인터페이스에서 VIP IP 주소를 구성합니다.

4. 프로젝트 실제 운영

(1) 실험 환경 요구 사항

5 개의 Linux 가상 머신

DR 服务器:192.168.126.10
Web 服务器1192.168.126.20
Web 服务器2192.168.126.30
共享服务器:192.168.126.40
客户端:192.168.126.50
vip(虚拟IP):192.168.126.88

(2), 실험 단계

1.로드 스케줄러 (192.168.126.10) 구성

systemctl stop firewalld.service
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

여기에 사진 설명 삽입
여기에 사진 설명 삽입

(1), 가상 IP 주소 구성 (VIP : 192.168.126.88)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0				#若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.126.88
NETMASK=255.255.255.255

ifup ens33:0        #开启

ifconfig ens33:0   # 查看虚拟ip

여기에 사진 설명 삽입

(2) proc 응답 매개 변수 조정

由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭Linux 内核的重定向参数响应。
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

여기에 사진 설명 삽입

(3), 부하 분산 전략 구성

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t 192.168.126.88:80 -s rr
ipvsadm -a -t 192.168.126.88:80 -r 192.168.126.10:80 -g			#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.80.188:80 -r 192.168.126.20:80 -g
ipvsadm 

ipvsadm -ln					#查看节点状态,Route代表 DR模式

여기에 사진 설명 삽입

2. 공유 스토리지 배포 (NFS 서버 : 192.168.126.40)

systemctl stop firewalld.service
setenforce 0
yum -y install nfs-utils rpcbind
mkdir /opt/chenwei /opt/mm
chmod 777 /opt/mm/opt/chenwei

vim /opt/chenwei/index.html   #写内容在文档里,挂载给网站首页 /var/www/html

vim /opt/mm/index.html 
vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.80.0/24(rw,sync)
/opt/benet 192.168.80.0/24(rw,sync)
systemctl start rpcbind.service
systemctl start nfs.service

3. 노드 서버 (192.168.126.10, 192.168.126.20) 구성

systemctl stop firewalld.service
setenforce 0

(1), 가상 IP 주소 구성 (VIP : 192.168.126.88)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.80.188
NETMASK=255.255.255.255						#注意:子网掩码必须全为 1

ifup lo:0
ifconfig lo:0
route add -host 192.168.80.188 dev lo:0		#添加VIP本地访问路由,将访问VIP的数据限制在本地,以避免通信紊乱

여기에 사진 설명 삽입

여기에 사진 설명 삽입

여기에 사진 설명 삽입

(2) proc 응답 매개 변수 조정

vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
或者
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p

여기에 사진 설명 삽입

yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start nfs
systemctl start httpd
--192.168.126.10---
mount.nfs 192.168.126.40:/opt/chenwei /var/www/html
--192.168.126.20---
mount.nfs 192.168.126.40:/opt/mm /var/www/html

여기에 사진 설명 삽입

4. LVS 클러스터 테스트

클라이언트의 브라우저를 사용하여 http://192.168.126.88/을 방문합니다. 기본 게이트웨이는 192.168.126.88을 가리 킵니다.

여기에 사진 설명 삽입

여기에 사진 설명 삽입

추천

출처blog.csdn.net/weixin_51573771/article/details/112883345