메뉴 닫기

ipip 터널링을 이용한 로드밸런싱 (Linux)

L4 로드밸런싱을 하다보면 같은 네트워크가 아닌 서로 다른 네트워크 간에
서버를 밸런싱 해야할 상황이 발생합니다.
그럴때 리눅스 환경에서는 서버간의 ipip 프로토콜을 통해 로드밸런싱이 가능합니다.
아래 예시로 IP부분은 사설로 설정해서 설명하고 있지만 서로 다른 공인 환경에서도 가능합니다.

L4 VIP : 192.168.10.20
REAL WEB IP : 192.168.20.10

[L4 서버]

ifconfig eth0:1 192.168.10.20 netmask 255.255.255.255 broadcast 192.168.10.20 up
route add -host 192.168.10.20 dev eth0:1

[ipvsadm]
-A -t 192.168.10.20:80 -s sh
-a -t 192.168.10.20:80 -r 192.168.20.10:80 -i -w 1

[웹서버쪽 셋팅]
Centos 5.X / 6.X 계열

ifconfig tunl0 192.168.10.20 netmask 255.255.255.255 broadcast 192.168.10.20 up

리부팅하면 올라오게끔 파일을 만들어준다

/etc/sysconfig/network-scripts/ifcfg-tunl0

TYPE=”ipip”
DEVICE=tunl0
ONBOOT=yes
IPADDR=192.168.10.20
NETMASK=255.255.255.255
BROADCAST=192.168.10.20

제대로 연결이 안이루어 질시 아래 명령어 추가.
route add -host 192.168.10.20 dev tunl0

/etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.tunl0.arp_ignore = 1
net.ipv4.conf.tunl0.arp_announce = 2

시스템에 적용
sysctl -p

iptables 을 사용중이라면 아래 프로토콜을 허용해야함.
INPUT, FORWARD, OUTPUT
iptables -A INPUT -p pre -j ACCEPT
iptables -A INPUT -p ipencap -j ACCEPT

 

 [polldaddy rating=”7739789″]

1 Comment

  1. 김병철

    다른 idc의 ip터널링을 하려면…그 쪽 IDC 네트워크에서 에서 ip spoofing을 허용해 해줘야 한다는 점. 참고 사항..국내에서 spoofing 이 가능 한 네트워크는 딱 하나 있음..
    우리의 경우 LG 네트워크 단에서 막혀 있는 상태임

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다