mac 주소로 packet 을 쏘는 것에 관해...

driver0401의 이미지

안녕하세요...

제가 만들려고 하는 것은 1번 머신 2번 머신 3번 머신을 갖고 있는데

1번 머신이 3번 머신으로 packet을 보냅니다. 그런데 꼭 2번 머신을 거쳐서 갑니다. 2번 머신은 3번 머신의 mac 주소만 알고 있습니다.

1번이 초기 단계에서 3번 머신으로 보낸 정보는 고스란히 갖고 있고 ( 소스 ip, port 등..) 2번에서는 받은 패킷을 libpcap으로 끌어 올려고 원본 packet은 버립니다. 끌어 올린 packet으로 작업을 한 후 그 packet을 다시 3번 머신의 mac주소로 보낼려고 하는데 이때, 1번과 3번은 2번 머신이 그 packet에 대한 처리를 했다는 것을 모르게 하고 싶습니다.

어떻게 해야하나요...
알려주세요/...

XFinger의 이미지

저도 초보입니다.

bridge계념이 아닌가 싶습니다.

리눅스 bridge 방화벽과 비슷한것 같아 짧은 지식으로 적어봅니다.

2번에 nic을 두개 달고 한쪽은 1번 , 또 한쪽은 3번으로..

2번의 리눅스 섭에서는 필터링이나 패킷에 대한 정보를 볼수가 있습니다.

www.woogi.org 에 한번 가보시길

오늘도 고수를 꿈꾸며, 삽질을 한당

eoxjf의 이미지

일단 2PC에 NIC을 2개를 설치합니다.

리눅스의 경우 eth0와 eth1번 2개의 장치가 생기게 될 것입니다.

eth0로 1번PC에서 들어온 패킷을 캡쳐합니다.

캡쳐 후 pcap_loop로 패킷을 캡쳐하면 호출되는 함수의 세번째 인자값으로 오는 값이

1번PC에서 보낸 패킷의 정보가 있습니다.

이때 세번째인자값의 p라는 변수로 가정한다면 p의 시작주소부터 6바이트가 목적지 MAC주소가 될 것 입니다.

또한 p+6부터 6바이트가 출발지 MAC주소가 될 것입니다.

p변수를 p변수와 같은 타입, 즉 unsigned char* 형태의 변수에 복사를 해주고

위에서 설명한 MAC주소가 가리키는 주소에 본인이 원하시는 MAC주소를 대입하신 후에

pcap_sendpacket함수를 이용해서 eth1번 랜카드로 3번 PC로 쏴주시면 해결이 될 것 같습니다.

제가 직접 구현해본 결과 아주 잘됐습니다

댓글 달기

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