티스토리 뷰

LVS FULLNAT (성공하지 못함)

 

linux-2.6.38 (2.6.36 부터인가 별도의 커널 패칭 작업 필요없음)

iptables-1.4.8 (patch 파일 필요함)

ipvsadm-1.2.1 (이 버젼을 꼭 깔아야 하는지 패칭된 것을 구해 깔아야 하는지 의문)

 

 

linux 커널컴파일

 

커널버젼별 다운 아래 사이트에서 받기

ftp://ftp.sayclub.com

http://kernel.org

 

아래 링크에서 kernel 버젼 선택후 patch 파일 다운로드 해서 패치 진행

http://www.ssi.bg/~ja/nfct/ 

 

해당 리눅스 소스 디렉토리에서 patch -p1 < 패치파일이름

 

패치후에 make menuconfig 에서 아래 라인 확인 (M)에 꼭 선택되어 있어야 함

Networking support
Networking Options
Network packet filtering framework (Netfilter)
Core Netfilter Configuration
“ipvs” match support

 

 

커널컴파일

make && make modules && make modules_install && make install

 

 

ipvsadm 1.2.1

해당 버젼은 kernel 2.6.18 이상 (CentOS5 이상?) 에서는 아래와 같은 에러를 보인다 (원래 커널 2.4.X에서 사용되던 버젼인듯?)

[root@localhost ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Invalid operation.  Possibly wrong module version, address not unicast, ...

 

 

해당 버젼은 아래 FULL NAT 옵션을 선택가능함

 ipvsadm -h

 --fullnat -b fullnat mode

 

 

ipvsadm 설정

-A -t 가상아이피:http -s sh
-a -t 가상아이피:http -r 리얼서버아이피:http -b -w 1

 

iptables

*nat

-A POSTROUTING -m ipvs --vaddr 가상아이피 --vport 80 -j SNAT --to-source 리얼서버아이피

 

 

iptables 1.4.8 설치

patch 되지 않은 iptables 는 아래와 같은 에러 발생

iptables -t nat -A POSTROUTING -m ipvs
iptables v1.4.7: Couldn't load match `ipvs':/lib64/xtables/libipt_ipvs.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.

 

 

wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.8.tar.bz2

ln -sf /usr/local/src/iptables-1.4.8 /usr/src/iptables

 

 

 iptables 패치작업

 

google.com 에서 아래 검색어로 검색
“[patch v2.7 4/4] libxt_ipvs: user-space lib for netfilter matcher xt_ipvs

 

이중에 버젼을 제일 높은 아래 링크 선택 ([patch v2.8 0/4] IPVS full NAT support + netfilter 'ipvs' match support)
http://archive.linuxvirtualserver.org/html/lvs-devel/2010-07/msg00056.html

 

 

패치작업

[root@localhost iptables]# patch -p1 < v2.8-0-4-libxt_ipvs-user-space-lib-for-netfilter-matcher-xt_ipvs.patch
patching file configure.ac
Hunk #1 FAILED at 52.
1 out of 1 hunk FAILED -- saving rejects to file configure.ac.rej
patching file extensions/libxt_ipvs.c
patching file extensions/libxt_ipvs.man
patching file include/linux/netfilter/xt_ipvs.h

 

 ./configure

make && make install

 

 

error) iptables 시 에러시

 cp /usr/local/src/linux-2.6.36/include/linux/ip_vs.h /usr/src/iptables/include/linux

 

 

 ipvsadm 이 제대로 동작하지 않아 적용불가 아래와 같은 방법 사용

 

 

FULL NAT (with only iptables)

192.168.0.28 (VIP) 로 받아서 192.168.2.1 ~ 192.168.2.10 으로 NAT 아래라인은 다시 패킷받아서 주소 변환
FULLNAT + LVS 로 분배하는것과 동일한 효과 (퍼포먼스는 테스팅 해봐야 알듯함)

 

*nat

-A PREROUTING -d 192.168.0.28/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1-192.168.2.10
-A POSTROUTING -m iprange --dst-range 192.168.2.1-192.168.2.10 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.28

 

 

 

[FULL NAT] 참고자료

http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY (공식사이트인듯?)
http://blog.loadbalancer.org/enabling-snat-in-lvs-xt_ipvs-and-iptables/
http://archive.linuxvirtualserver.org/html/lvs-devel/2010-07/msg00033.html
http://www.ssi.bg/~ja/nfct/HOWTO.txt

http://www.keepalived.org/LVS-NAT-Keepalived-HOWTO.html

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함