본문 바로가기

리눅스

CentOS 7에서 DSR 방식을 설정하는 방법(DSR Loopback)

반응형

CentOS 7에서 DSR(Direct Server Return) 방식을 설정하는 방법(DSR Loopback)

DSR Mode는 로드 밸런서가 클라이언트의 요청을 서버로 전송한 후, 서버의 응답을 클라이언트에게 직접 전달하는 방식입니다.

이를 위해 서버는 VIP(가상 IP)를 루프백에 설정하고, ARP 응답을 하지 않도록 구성해야 합니다.

L3 DSR 구성에서의 패킷 흐름

출처-http://tech.kakao.com/files/l3dsr-packet-flow.png

1. VIP를 루프백 인터페이스에 추가

ip addr add 192.168.0.100/32 dev lo
  • 192.168.0.100 은 로드밸런서가 사용하는 VIP 주소입니다.
  • /32는 VIP에 대해 해당 호스트만 사용하는 것을 의미합니다.
  • lo는 루프백 인터페이스입니다.

☆ eth0 등의 실제 인터페이스가 VIP를 ARP 응답하지 않도록 해야 합니다.

2. ARP 응답 방지 설정

서버가 VIP에 대한 ARP 응답을 하지 않도록 합니다.

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
728x90

3. 영구 적용

영구적으로 적용하려면 /etc/sysctl.conf 또는 /etc/sysctl.d/99-dsr.conf에 아래 항목을 추가합니다.

vim /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

적용

sysctl -p

4. VIP 루프백 설정 영구화

echo "ip addr add 192.168.0.100/32 dev lo" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

5. 확인

VIP가 정상적으로 lo 인터페이스에 할당되었는지 확인

ip addr show lo

ARP 응답 여부 확인 (서버가 VIP에 대해 ARP 응답하면 안 됨)

arping -I eth0 192.168.0.100

 

참고URL

- kakao tech : kakao의 L3DSR 구성 사례

 

반응형