리눅스 분류
lvs 구축시 ipvsadm 포워딩 문제
작성자 정보
- 김석현 작성
- 작성일
컨텐츠 정보
- 2,988 조회
- 4 댓글
- 0 추천
- 목록
본문
현재 ipvsadm 와 MON 을 이용해서 LVS 시스템을 구축했습니다. mon은 정상적으로 잘 작동합니다. 하지만 ipvsadm 이 정상작동을 안하고 있습니다. ipvsadm 입력 시 정보는 아래와 같습니다. IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 211.4.25.253:http wlc -> 211.4.25.243:http Tunnel 2 0 4 -> 211.4.25.250:http Local 2 1 0 211.4.25.250는 이 서버의 아이피로 eth0으로 세팅 하였으며 211.4.25.243는 타 서버에 아이피로 할당 하였습니다. 둘다 apache 가동 중입니다. 211.4.25.253 이 아이피를 입력 시 211.4.25.250에 대한 부분은 정상으로 뿌려 주는데 타 서버의 211.4.25.243 는 정성적으로 뿌리지 못하고 있습니다. 같은 서버에 가상으로 잡은 아이피에 대해서는 정상 작동하나 다른 서버의 아이피로는 포퉈딩 을 못하고 있습니다. 아래는 LVS 설정 파일 입니다. echo "1" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/ipv4/conf/all/send_redirects echo "0" > /proc/sys/net/ipv4/conf/default/send_redirects echo "0" > /proc/sys/net/ipv4/conf/eth0/send_redirects ifconfig eth1 211.4.25.253 netmask 255.255.255.224 broadcast 211.4.25.255 up route add -host 211.4.25.253 dev eth1 $IPVSADM -A -t 211.4.25.253:80 -s wlc $IPVSADM -a -t 211.4.25.253:80 -r 211.4.25.250 -i -w 2 $IPVSADM -a -t 211.4.25.253:80 -r 211.4.25.243 -i -w 2 관리용 서버 아이피는 211.4.25.250 입니다. 요즘 Centos4.4 버전에서는 virtualserver 에 대한 부분이 디폴트로 들어가 있는걸로 알고 있 습니다. 공인 아이피로 뿌려주기 위해 -i 옵션을 주었습니다만 정상 작동을 못하네요... 외 타 서버 아이피로 포워딩을 못해 주는 걸까요? 어떤 부분을 체크를 해봐야 될까요? |
관련자료
-
이전
-
다음
댓글 4
이종환님의 댓글
- 이종환
- 작성일
1. Node 서버에 PACKET 은 날라가는지 , 아니면 아예 날라 가지 않는지가 중요 합니다.
2. 날라간다면, 해당 Node 에서 제대로 Catch 를 못하는 것으로 여기에는 여러가지 이유가 있습니다. Virtual IP 를 세팅해 주지 않았거나, 포트가 막혀 있거나, 아니면, ARP 문제로 인해 벌어진 일일 수도 있습니다. 근데, IP tunneling 방식으로 구성을 하셨다면 ARP 는 문제가 되지 않기에 접어 두겠습니다. (DR 방식만 해당)
3. 안 날라간다면, ipvsadm 의 문제나 configure 를 제대로 못한 것일 수 있습니다. 아니면, 해당 리눅스 서버에서 ip tunneling 을 지원 못 할 수도 있습니다. (이게 가장 의심 스러움) local 을 down 하고 다른 서버만 enable 시키고 테스트 해보세요.
의견, ip 대역을 보니 같은 router 에 연결된 서버인 것으로 판단 됩니다. 그리고 위의 세팅을 보면 ip tunneling 으로 동작하는 거 같은데, 제 생각으로는 Direct routing 방식을 추천 합니다.
ps. ipvasdm 을 구성해 본지 오래되어 config 옵션을 다 잊어 설정 파일에 대한 답변을 제대로 못해드렸네요.
2. 날라간다면, 해당 Node 에서 제대로 Catch 를 못하는 것으로 여기에는 여러가지 이유가 있습니다. Virtual IP 를 세팅해 주지 않았거나, 포트가 막혀 있거나, 아니면, ARP 문제로 인해 벌어진 일일 수도 있습니다. 근데, IP tunneling 방식으로 구성을 하셨다면 ARP 는 문제가 되지 않기에 접어 두겠습니다. (DR 방식만 해당)
3. 안 날라간다면, ipvsadm 의 문제나 configure 를 제대로 못한 것일 수 있습니다. 아니면, 해당 리눅스 서버에서 ip tunneling 을 지원 못 할 수도 있습니다. (이게 가장 의심 스러움) local 을 down 하고 다른 서버만 enable 시키고 테스트 해보세요.
의견, ip 대역을 보니 같은 router 에 연결된 서버인 것으로 판단 됩니다. 그리고 위의 세팅을 보면 ip tunneling 으로 동작하는 거 같은데, 제 생각으로는 Direct routing 방식을 추천 합니다.
ps. ipvasdm 을 구성해 본지 오래되어 config 옵션을 다 잊어 설정 파일에 대한 답변을 제대로 못해드렸네요.
김석현님의 댓글
- 김석현
- 작성일
이종환님 너무 감사합니다.
Node 서버에 패킷을 아주 잘 갑니다.
ipvsadm은 정상적으로 make, make install 만 한 상태이기 떄문에 잘 돌아 갑니다.
혹시나 해서 다른 서버에 세팅 했는데도 상황은 동일합니다.
그리고 ipvsadm 서버에는 커널 커파일로 터널링 모듈을 올렸습니다.
일단 자체 서버로는 가상으로 잘 되는걸로 보아 ipvasdm은 잘 되는 듯 한데..
확실히 터널링 문제 인거 같습니다.
iptable_filter 4356 1
ip_tables 14324 1 iptable_filter
ip_vs_wlc 3712 1
ip_vs 95456 3 ip_vs_wlc
nf_conntrack_ipv4 19852 7
xt_state 3840 7
nf_conntrack 62600 2 nf_conntrack_ipv4,xt_state
nfnetlink 8216 2 nf_conntrack_ipv4,nf_conntrack
ipt_LOG 7552 1
xt_limit 3968 1
xt_tcpudp 4608 17
xt_length 3200 1
ipt_REJECT 5760 5
모듈 상황입니다.
먼거 잘 안된 부분이 있을까요?
Node 서버에 패킷을 아주 잘 갑니다.
ipvsadm은 정상적으로 make, make install 만 한 상태이기 떄문에 잘 돌아 갑니다.
혹시나 해서 다른 서버에 세팅 했는데도 상황은 동일합니다.
그리고 ipvsadm 서버에는 커널 커파일로 터널링 모듈을 올렸습니다.
일단 자체 서버로는 가상으로 잘 되는걸로 보아 ipvasdm은 잘 되는 듯 한데..
확실히 터널링 문제 인거 같습니다.
iptable_filter 4356 1
ip_tables 14324 1 iptable_filter
ip_vs_wlc 3712 1
ip_vs 95456 3 ip_vs_wlc
nf_conntrack_ipv4 19852 7
xt_state 3840 7
nf_conntrack 62600 2 nf_conntrack_ipv4,xt_state
nfnetlink 8216 2 nf_conntrack_ipv4,nf_conntrack
ipt_LOG 7552 1
xt_limit 3968 1
xt_tcpudp 4608 17
xt_length 3200 1
ipt_REJECT 5760 5
모듈 상황입니다.
먼거 잘 안된 부분이 있을까요?
이종환님의 댓글
- 이종환
- 작성일
아마 CentOS 는 ip tunneling 을 모듈로 컴파일 해서 배포 하는 거 같습니다.
근데 위의 모듈 리스트를 보니 ip tunneling 에 대한 모듈이 enable 안되있네요.
tunneling 에 대한 모듈 네임이 정확히 무엇인지는 모르겠지만, 아마 tunnel 로 검색
해 보면 나올 거 같습니다. 그리고 해당 모듈을 로딩한 후 사용하시면 될 거 같구요
혹시 모듈이 없다면, 커널을 다시 컴파일 해서 사용하셔야 할거 같습니다.
2.6 의 경우 Networking -> Network Option 에 IP: tunneling 이 있습니다.
Fedora Core 6는 모듈로 컴파일 되어 있네요.
그럼 부디 성공하시길..
근데 위의 모듈 리스트를 보니 ip tunneling 에 대한 모듈이 enable 안되있네요.
tunneling 에 대한 모듈 네임이 정확히 무엇인지는 모르겠지만, 아마 tunnel 로 검색
해 보면 나올 거 같습니다. 그리고 해당 모듈을 로딩한 후 사용하시면 될 거 같구요
혹시 모듈이 없다면, 커널을 다시 컴파일 해서 사용하셔야 할거 같습니다.
2.6 의 경우 Networking -> Network Option 에 IP: tunneling 이 있습니다.
Fedora Core 6는 모듈로 컴파일 되어 있네요.
그럼 부디 성공하시길..
김석현님의 댓글
- 김석현
- 작성일
답변 너무 갑사합니다.
현재 tunneling 모듈은 커널에 포함되어 있습니다. 제가 모듈로 말씀을 잘 못 드렸네
요. 죄송합니다.
사용할꺼 같아서 그냥 포함시켜 버렸습니다.
혹시
ifconfig eth1 211.4.25.253 netmask 255.255.255.224 broadcast 211.4.25.255 up
route add -host 211.4.25.253 dev eth1
이부분에 설정이 잘 못된건 아닐까요/
문명 routing 쪽 문제인듯 보이는데....
패킷이 전달이 안되네요... 어딜 확인 해야 될지.....막막하네요..
현재 tunneling 모듈은 커널에 포함되어 있습니다. 제가 모듈로 말씀을 잘 못 드렸네
요. 죄송합니다.
사용할꺼 같아서 그냥 포함시켜 버렸습니다.
혹시
ifconfig eth1 211.4.25.253 netmask 255.255.255.224 broadcast 211.4.25.255 up
route add -host 211.4.25.253 dev eth1
이부분에 설정이 잘 못된건 아닐까요/
문명 routing 쪽 문제인듯 보이는데....
패킷이 전달이 안되네요... 어딜 확인 해야 될지.....막막하네요..