gateway 질문 입니다.

skah2lp2의 이미지

...아이피 공유 프로그램을 소프트웨어 구현 하려고 하는데요..

..클라이언트에서 다양한 tcp/ip 요청을

gateway(라우터) 에서 어떤 방식으로 패킷을 잡나요??

..예를 들면..

사설아이피를 source ip 로 가지고
yahoo 가 destination인 패킷이 있다고 하면...

.. gateway 에서 패킷헤더를 분석해서
적절한 다음홉으로 넘길텐데요...

..여기서 이 패킷을 잡을려면 어떠한 방식으로 해야 되나요?

..이건 책에도 자세히 안나와있고.. 검색해도..-_-;;

저같은 경우는 지금 한대의 컴퓨터에 두개의

이더넷 카드(사설(gateway),공인) 를 꽂고 하고 있는데요..

서버/클라이언트 프로그래밍만 해봐서...감이 잘 안잡힙니다..

..질문의 요지는..

gateway 는 어떠한 형식으로 gateway를 거쳐가는
패킷들을 확인하느냐.. 이겁니다.

인터럽터?.. || 킷을 잡을수 있는 recv 함수?

..부탁드립니다.

익명 사용자의 이미지

패킷을 잡기만 한다는 개념은 아니고요.
패킷을 일단 멈춘다는(block) 개념이 더 맞겠습니다.
다음 단으로 넘어가기 전에 패킷을 멈추게하고, 이를 잡아서, 조작후에
다음단으로 넘겨주는것이라고 하겠습니다.

패킷의 포워딩을 자동으로 하는게 아니라, 사용자 프로그램등에서 조작후에 포워딩하는것이지요.
당근으로 네트워크 인터페이스 카드(NIC; 이더넷등)이 2개 이상소요되고,
한쪽에서 잡은것을 다른 쪽으로 넘겨주어야 겠지요. 조작후에.
이러한 작업을 수행하기위해서는 당연히, 패킷단위로 처리할 수 있는 프로그래밍 인터페이스가 필요합니다.
리눅스의 경우 넷필터 프레임워크를 잘 ~ 사용하면 되겠습니다.
아니면, NAT를 사용하는 것도 하나의 방법이겠지요?
아래 링크도 한번 참조해보세요.
http://kldp.org/Translations/html/2.4_NAT-KLDP/2.4_NAT-KLDP.html

익명 사용자의 이미지

참고로 넷필터 프레임워크에는 프로그래밍 인터페이스도 있고,
이 프로그래밍 인터페이스를 이용한 유틸리티인 iptables라는 훌륭한 도구도 있습니다.
보통은 iptables등과 같은 훌륭한 도구를 사용해서 많이들 합니다(??). F/W, NAT등 만들때 말입니다.

익명 사용자의 이미지

네트워크쪽 ..으로 잘아는 분들이

데브피아보다 여기에 더많은것 같아서 여기에 질문드렸는데..

윈도우에서도 넷필터 그런 기능이 있나요?

그리고. 그걸.. 소프트웨어적으로(소켓프로그래맹)으로

제어를 할수 있나요..?

제가 만들려는게 NAT 이거든요..

.....부탁드립니다..

Necromancer의 이미지

윈도우 방화벽은 xp sp2 부터입니다.
공유기능은 2000부터 제공되었던 걸로 알고 있고요.

그 이전꺼는 자체 방화벽은 없고 별도 프로그램을 깔아야죠.

물론 프로그램 인터페이스나 사용방식은 netfilter와는 전혀 틀립니다.

Written By the Black Knight of Destruction

익명 사용자의 이미지

윈도우환경이라면, DDK를 이용하거나, firewall 제작 툴킷정도를 필요로 합니다.
다음을 참고해보세요.
주제는 파이어월쪽이지만, 이를 응용하여 NAT를 구현하는데 사용하시면 될듯합니다. 필터링대신 어드레스 트랜슬레이션을 만들면 되겠지요.

http://www.codeproject.com/internet/FwHookDrv.asp

그외에도 다수 자료가 있을듯 합니다.

아쉽게도 저는 윈도우 플랫폼에서는 패시브모니터링만 해봐서, 확답을 드리지는 못하겠군요.
그럼 20,000

댓글 달기

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