brctl로 인터페이스를 묶었을때 커널 상에서 일어나는 작업들에

blue39의 이미지

안녕하세요~~

brctl로 인터페이스들을 논리적인 하나의 인터페이스를 묶을때 과연 커널 안에

서는 어떤 작업들이 수행될까요? brctl로 묶은 상태에서는 패킷을 전달할때

ARP 이상의 상위 프로토콜에 대해서는 알지 못하는 걸로 알고 있는데요. 또한

묶인 인터페이스 사이에 패킷을 포워딩할때 복사의 횟수가 줄어든다는 의미가

이처럼 ARP 이상의 프로토콜 레이어를 거치지 않고 그 밑단에서 포워딩이 이루

어지기 때문에 불필요한 데이터의 복사와 전달이 줄어든다는 의미라고 생각하는

데요. 그런데 실질적으로 이렇게 인터페이스들을 묶으면 그에따른 세부 정보들

이 필요할거 같은데요. 가령 묶여 있는 인터페이스의 목록이라던가 어디로 받은

패킷을 어디로 포워딩 시켜야 한다던지 등등의 정보가 어딘가에 저장이 되어 있

어야 할거 같은데 이 부분에 대한 정보는 잘 않보이네요. 그리고 마지막으로

brctl 함수를 보면 ioctl 함수를 이용해서 등록할 브리지 명과 플래그로 SIOGIFBR 이라는 녀석을 넘기는데요 그럼 이 ioctl이 작용 했을때 커널 내에서

어떤 일들이 일어나는지 정말 궁금합니다. 질문이 너무 길었나요? ^^;

여러분의 조언 부탁드립니다.

좋은 하루 보내시구요.

keizie의 이미지

....베가를 사서는 usb 케이블로 노트북 우분투에 물리려고 이쪽을 찾아보는데, 이 질문 자체도 꽤 어려운 말들로 가득하네요. -_-;;

prether의 이미지

eth0, eth1 을 br0로 묶는다면 두 네트워크는 논리적으로 하나의 네트워크가 되고
그 호스트는 마치 switch 처럼 행동합니다.

브릿지가 된 그 호스트는 각 물리적인 포트에 어떤 호스트가 직접 링크되어 있는지 정보를
저장합니다.

예를 들어 eth0에 직접 링크된 네트워크 세그먼트에는 MAC_ADDRESS A, B를 가진 호스트가 존재하고
eth1 에는 MAC_ADDRESS C, D가 존재한다는 정보를 저장하죠.

MAC ADDRESS 정보는 각 포트로 도착하는 패킷의 SOURCE MAC ADDRESS 정보를 수집해서
저장합니다.

그러다가 Destination MAC address가 C인 패킷이 eth0에 도착한다면
br0에 묶여있는 다른 물리적인 인터페이스에 그것이 링크되어 있는지 조사하고
eth1에 직접 링크되어 있으므로 그 포트로 포워딩을 하죠.

브릿지가 아닐 경우 IP address를 key로 하여 IP routing decision을 하지만
브릿지로 만들 경우 MAC routing decision을 하는 셈이지요.

/***************************************
Being the one is just like being in love.
***************************************/

댓글 달기

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