[완료] LVS 구현시 꼭 서버수 + 1 개의 ip 가 필요한가요??

d-rice의 이미지

[ http://kldp.org/node/96064 ]
위 링크글에 문의를 했었는데.. 아무런 답변이 없어서 ^^;;
다시 한번 문의를 드려 봅니다.

현재 LVS 를 구현해 보고 있습니다.
IDC 에 총 3 대가 들어가 있구요, IDC 호스팅 업체로 부터 할당 받은 ip 는 모두 리얼IP 3 개입니다.
Direct Route 방식이나 IP Tunneling 방식을 이용해서 구현하려 하는데,
문서들 마다 모두 총 4 개의 리얼 ip 가 필요하다고 나와 있네요... ㅡㅡ;

현재 처럼 3 개의 리얼 ip 만으로는 불가능한것인가요?
{
1번 서버 : 218.111.222.108 (라우터)
2번 서버 : 218.111.222.109
3번 서버 : 218.111.222.110
}

위와 같을때, ip 를 추가하지 않고 LVS 를 구현할수는 없는것인지요..
IDC 에서 ip 를 하나더 할당 받아서 할려면.. ㅠ.ㅜ 금전적인 부분도 여유롭지 않아서 말입니다.
그럼.. 꼭좀 부탁좀 드려 봅니다 ^^;

정 안되면..
라우터 서버에 DHCP 서버라도 운영하고, 서버간에 랜선연결해서 NAT 방식으로라도 하는수 밖에
없을것 같습니다만..

그래도 혹시나 하는 마음에 고수님들의 조언 부탁드립니다 ^^
그럼.. 즐거운 하루 되세요~

(현재 이 문제로 1 주일째 헤매고 있습니다.. 흑..
혹시나 해결되면 저 같은 분을 위해 처음부터 해결책까지의 방법을 올리도록 하겠습니다 ^__^;)

visualplus의 이미지

IDC안에 로드밸런스 서버와 실제서버가 모두 들어가있는 상태에서는
tunneling방식보단 direct routing방식이나 nat방식이 더 나을것 같네요.
tunneling방식은 로드밸런스 서버와 실제 서버가 떨어져있을 때 사용하는 방식입니다.

그리고 tunneling방식으로 하시려면 실제서버+1개의 ip가 필요합니다.
로드밸런스 서버에도 ip가 할당이 되어있어야 하기 때문이죠.
(실제 사용자들이 알고있는 ip가 이 로드밸런스 ip가 되겠쬬.)

하지만 님이 nat방식이나 direct routing방식을 사용하게 되면 ip는 한개만 있으면 됩니다.
실제서버를 다 사설로 해서 하면 되죠.

음.. 제 생각으로는 IDC안에 로드밸런스 서버와 실제 서버가 모두 있다면
궂이 tunneling방식을 사용해야 할 이유가 없는것 같네요.

d-rice의 이미지

예 저도 direct routing 방식이 추가 ip 가 필요하지 않다면,
당연히!! 당장!! 그 방식을 택할겁니다 ^^;

tunneling 방식을 말씀드린 이유는 둘다 가상 ip 가 필요하다는 문서들을 보고선 말씀을 드린것이구요

만약, direct routing 방식을 선택하게 되면, 사설 ip 즉,
각 서버들이 서로 랜선으로 물려 있어야 한다는 뜻이신가요?

아니면, VPN 이나 DHCP 등의 사설 네트웍을 만들고, 로드밸런서가 게이트웨이가 되어서
LVS 를 구축해야 한다는것인지요.

인터넷 상에 있는 LVS 문서들을 거의 모두 읽어 보고 나름 TEST 도 해 보았지만..
제 지식이 짧아서 인지 제대로 되질 않네요 ^^;

혹시, 3대의 서버와 3 개의 리얼 ip 만으로 direct routing 을 구축하는 방법에 대해 나와 있는
문서가 있으면 조언 좀 부탁드리겠습니다.

짧게나마 글로 방법에 관해 도움을 요청하고 싶지만, 염치없는것 같네요 ^^

답변 다시 한번 감사드리며, 모쪼록 편안한 밤 되시기 바랍니다.

ps)더운날 건강 유의하시구요 ~~ ^^

visualplus의 이미지

http://www.cyberlation.net/tag/LVS

여기 한번 가보세요. 제대로 읽어보진 않았지만 맞는거 같네요.
그리고 linuxvirtualserver.org 였나 여기 가보시면 엄청난 자료가 있습니다.ㅋ
단지 영어지만요 OTL

글구 여기서부턴 답변입니당
---------------------------------------------------------
만약, direct routing 방식을 선택하게 되면, 사설 ip 즉,
각 서버들이 서로 랜선으로 물려 있어야 한다는 뜻이신가요?

제가 생각하기에는 direct routing과 tunneling방식은 성격이 같은놈 같습니다.
단지 리얼서버와 밸런싱서버가 원거리에 있을 때 tunneling 방식을 사용하죠.
다시말하자면 근거리는 direct routing을 사용하고 원거리에 direct routing방식을 사용하고 싶으면 tunneling을 사용하는거죠.
좀 설명이 이상하긴 하네요;;ㅋ
답변은 예 입니다. 서로 랜선으로 연결되어있어야 하며 동일한 위치에 있어야 합니다.

구성방식

             [ router ]
                 |
          <---------------------------->
                 |eth1     |
             [ lvs dr ]    |
                 |eth0     |
           <--------->     |
              eth0|        |eth1
              [ realserver ]

user가 lvs dr ip로 접속을 하면 real server eth0을 게이트웨이로하여 (맥을 씌워) 패킷을 밑으로 보냅니다.
(주의할점은 dnat이 아니라는 겁니다. realserver에도 lvs dr의 ip와 동일한 ip가 숨겨져 있습니다)
그럼 real server가 그 ip를 받아 처리를 한 수 lvs dr ip를 출발지로 하여 유저에게 보냅니다.

패킷 플로우

user -> lvs dr //lvs dr eth1
user -> lvs dr via eth0 //lvs dr eth0
lvs dr -> user //realserver eth1 or realserver eth0
                 ( eth1을 설정 해도 되고 안해도 됩니다. 그러나 설정 하는게 밸런싱서버를 안거치니 좀 더 낫겠죠? )

이런방식입니다.ㅎ

----------------------

아니면, VPN 이나 DHCP 등의 사설 네트웍을 만들고, 로드밸런서가 게이트웨이가 되어서
LVS 를 구축해야 한다는것인지요.

글쎄요. 사실 tunneling방식이 vpn과 흡사한거 같으니..( 제 생각으로; )
vpn을 사용해서 하는 방법도 있겠지만 이건 안해봐서 모르겠네요;
될거 같긴 하네요.

----------------------

혹시, 3대의 서버와 3 개의 리얼 ip 만으로 direct routing 을 구축하는 방법에 대해 나와 있는
문서가 있으면 조언 좀 부탁드리겠습니다.

음 글쎄요. 위에 제가 링크해논 주소 혹은 lvs 홈페이지를 방문하시면 쉽게 하실 수 있을겁니다.
혹시 3개의 ip를 가져온것이 대역폭 문제가 아니라면 1개의 ip만으로도 서비스를 하실 수 있습니다.

---
답변이 좀 늦었네요.
글을 계속 확인하지 않아서;;
혹시 아직 해결 못하신 상태에서 이 글을 보신다면 -dreamake@한메일점컴으로 메일 보내주시거나
programmer_@네이트닷컴 요아이디를 네이트온에 추가하시면 도움 드리겠습니다.
제가 도울 수 있는 범위같네요. 그럼..

d-rice의 이미지

정말 많은 도움이 됬습니다 ^^
항상 건강하시고, 행여나 문의 사항 있으면 염치불구하고 도움 청하겠습니다 ^^;
나날이 즐거운날들 되시고, 하시는일 모두 잘되시길 진심으로 바랍니다.
다시 한번 감사합니다 ^__^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.