질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

lvs 구축시 ipvsadm 포워딩 문제

작성자 정보

  • 김석현 작성
  • 작성일

컨텐츠 정보

본문

현재 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 옵션을 다 잊어 설정 파일에 대한 답변을 제대로 못해드렸네요.

김석현님의 댓글

  • 김석현
  • 작성일
이종환님 너무 감사합니다.

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는 모듈로 컴파일 되어 있네요.

그럼 부디 성공하시길..

김석현님의 댓글

  • 김석현
  • 작성일
답변 너무 갑사합니다.

현재 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 쪽 문제인듯 보이는데....

패킷이 전달이 안되네요... 어딜 확인 해야 될지.....막막하네요..

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,201 개
  • 현재 접속자 :  239 명