리눅스기반 라우터에서 라우팅테이블만을 갱신하고 forwarding은 안되게?

yhlvyp의 이미지

리눅스 기반 기가빗 라우터에서 fault tolerance데몬을 구현중입니다.

master라우터가 있고 standby상태의 slave라우터가 있습니다.

이때 master만이 라우팅을 해주는 것이죠

이 master가 죽게 되면 slave가 master의역할을 대신 수행하게 됩니다.

이때 신속한 전환을 위해

slave가 standby상태에 있을때 slave의 라우팅테이블을 master와 같은 상태로 유지하려 합니다.

물론 master에게 주기적으로 request하여 받는 방법도 있겠지만

그것보다는 어짜피 slave서버가 master가 받고있는 라우팅정보 패킷을 동시에 받을수 있으므로

라우팅테이블만을 업데이트 하고 forwarding이나 일반 데이터패킷의 처리는 하지않는 상태로 하려합니다.

직접 커널 라우팅 모듈을 건들지 않고 가능한 방법이 머가 있을지요?

//두 서버의 각 인터페이스 MAC과 IP는 동일합니다.
//그러므로 slave는 라우팅 정보패킷만을 받고 그에대한 응답 패킷은 하나도 내보내지 않아야합니다.
//그래야만 master와 ip충돌이 일어나지 않을테니까요 : )

swunk의 이미지

잼난 일을 하시네요...

내공이 없어서 답변은 못드리겠고..--;

반대로 질문에 궁금한 점이 있습니다.

먼저...

Quote:
리눅스 기반 기가빗 라우터에서 fault tolerance데몬을 구현중입니다.

리눅스 기반으로 소프트웨어로 패킷 포워딩을 하는데 기가빗 처리가 가능한가요 ?

혹시 추가적인 하드웨어를 사용하시나요 ?( NP 라든가...)

PC 기반으로 기가빗 랜카드 꼽아서 아무리 성능 올려봐도...700메가 이상 안나오던데...

그리고...

Quote:
어짜피 slave서버가 master가 받고있는 라우팅정보 패킷을 동시에 받을수 있으므로

어떻게 슬레이브가 마스터에게 오는 라우팅 패킷들들 동시에 받을수 있죠 ?

마지막으로 궁금한것은...

하시는 프로젝트를 학교에서 하시는 겁니까 ? 아니면 개인적인 프로젝트로? 아니면 회사업무로?

도음은 못드리고 되로 질문만 해서 죄송합니다.

익명 사용자의 이미지

Quote:

리눅스 기반으로 소프트웨어로 패킷 포워딩을 하는데 기가빗 처리가 가능한가요 ?

혹시 추가적인 하드웨어를 사용하시나요 ?( NP 라든가...)


네 NP사용합니다 :) 트래픽은 약 10기가 정도 됩니다.

Quote:
어떻게 슬레이브가 마스터에게 오는 라우팅 패킷들들 동시에 받을수 있죠 ?

라우터로 들어오는 경로가 허브로 연결되어 두 라우터에게 물리적으로 연결되어있습니다.

Quote:
프로젝트를 학교에서 하시는 겁니까 ? 아니면 개인적인 프로젝트로? 아니면 회사업무로?

학부생 학생이구요^^ 알바로 학교 연구실에서 일받아서 하고있습니다.=0=;;

yhlvyp의 이미지

윗글 제가 단거예요^^;

::peha::

익명 사용자의 이미지

Slave모드로 동작하는 경우, NF_IP_POST_ROUTING에서 모든 패킷을 DROP시켜버리면 되지 않을 까요?

* 그보다 마스터의 failure를 어떻게 감지할지가 더 궁금하군요.

jongwooh의 이미지

그런 일을 하도록 설계된 프로토콜인 VRRP를 참조하시기 바랍니다.

http://www.ietf.org/html.charters/vrrp-charter.html
http://www.terms.co.kr/VRRP.htm

리눅스상에서의 구현은 이거
http://off.net/~jme/vrrpd/
http://sourceforge.net/projects/vrrpd/

you must know the power of dark side.

swunk의 이미지

Quote:
라우터로 들어오는 경로가 허브로 연결되어 두 라우터에게 물리적으로 연결되어있습니다.

허브에 2개의 라우터가 물리적으로 연결되어 있고, 각각의 인터페이스는 같은 맥주소와 아이피주소를 가지고 있으면...문제가 있지 않나요 ? 허브에다가 아주 하드웨어적으로 입력 포트와 출력 포트를 밖아 버려서 처리한다고 하면 몰라도...

해당 dest 맥을 달고온 패킷을 허브가 어느 포트로 보내야 할지 맥러닝을 제대로 못하기 때문에 해당 패킷을 모든 포트로 브로드캐스트 시킬것 같은데...그러면 Throughput 이 많이 떨어질것 이고...10기가 환경에서 위와같이 사용한다는건 좀 문제가 있지 않을까요?
제가 이해를 잘못했나...--;

Quote:
학부생 학생이구요^^ 알바로 학교 연구실에서 일받아서 하고있습니다.=0=;;

학부생 ??? 캬...대단 합니다...
난 학부때 뭐했남???...ㅎㅎㅎ ^^;
yhlvyp의 이미지

Quote:
그런 일을 하도록 설계된 프로토콜인 VRRP를 참조하시기 바랍니다.

그런게 있었군요!!! 감사합니다^^

Quote:
Slave모드로 동작하는 경우, NF_IP_POST_ROUTING에서 모든 패킷을 DROP시켜버리면 되지 않을 까요?

* 그보다 마스터의 failure를 어떻게 감지할지가 더 궁금하군요.


아 그럴수도 있군요. 한번 해봐야겠습니다.^^
master와 slave사이에 독립적인 통신경로가 존재합니다.
그 경로로 req, rep를 통해 판단합니다.
그리고 하나의 라우터(master혹은 slave)는 내부적으로 sub system 두개를 가지고있어
그 서브 시스템 끼리도 서로 감시를 합니다.^^;
제가 나름대로 그렸봤던 간단한 개념도입니다.
http://pe-ha.net/garbage/concept.jpg

Quote:
허브에다가 아주 하드웨어적으로 입력 포트와 출력 포트를 밖아 버려서 처리한다고 하면 몰라도...

해당 dest 맥을 달고온 패킷을 허브가 어느 포트로 보내야 할지 맥러닝을 제대로 못하기 때문에 해당 패킷을 모든 포트로 브로드캐스트 시킬것 같은데...그러면 Throughput 이 많이 떨어질것 이고...10기가 환경에서 위와같이 사용한다는건 좀 문제가 있지 않을까요?
제가 이해를 잘못했나...--;


제가 알기로 아주 물리적으로 밖아버리는것 같습니다. 저도 아직 교수님께 시스템설계에 대한 설명만 들은터라 ^^;
며칠후 직접 장비에 올려보는 meeting예정인데 그날 눈으로 확인할수 있겠군요..

Quote:
학부생 ??? 캬...대단 합니다...
난 학부때 뭐했남???...ㅎㅎㅎ ^^;

이...이런;; 부..부끄러운 말씀을=ㅅ=;;; 별거 아닙니다=_=;;;

::peha::

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.