IPv6 MTU 문제

popory99의 이미지

안녕하세요. 혼자 해결해보려다 시간만 끌어서 이렇게 질문해 봅니다.

설정된 MTU보다 큰 패킷이 들어오면 처리를 하지 않는 네트워크 드라이버도 있는지요?

테스트 환경은 아래와 같습니다. 두 시스템 모두 IPv6 주소를 사용합니다.
노트북(페도라) : MTU 1500
저희 장비(port 4개) : MTU 1280 (ifconfig eth0 mtu 1280)으로 설정한 후
(커널 2.6.15, 네트워크 드라이버 : sk98lin)

노트북에서
#ping6 -s 1500 장비IP
이렇게 실행하면 reply가 오지 않습니다.
그리고 장비에서 tcpdump로 패킷을 확인하면
***** tcpdump result ****
16:55:57.201543 3ffe:501:ffff:100::10 > 3ffe:501:ffff:100::20: frag (1448|60)
16:55:58.211133 3ffe:501:ffff:100::10 > 3ffe:501:ffff:100::20: frag (1448|60)
16:55:59.211167 3ffe:501:ffff:100::10 > 3ffe:501:ffff:100::20: frag (1448|60)
16:56:00.211188 3ffe:501:ffff:100::10 > 3ffe:501:ffff:100::20: frag (1448|60)
**********
이렇게만 옵니다. 즉 그 앞에 fragment된 icmp6 echo request(0|1448) 패킷이 올라오지가 않습니다.
그렇다고 해서 drop된 것 같지도 않습니다.
ifconfig로 장비의 eth0 부분을 보면 아래와 같이 drop된 패킷도 없습니다.
*********************************
UP BROADCAST RUNNING MULTICAST MTU:1280 Metric:1
RX packets:11 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6822 (6.6 KiB) TX bytes:382 (382.0 b)
Interrupt:10 Memory:d8320000-0
***********************************

이럴 경우 뭐가 문제일까요? 네트워크 드라이버에서 설정된 MTU보다 크거나 같은 패킷이 들어오면 처리를 잘하지 못하는 것일까요?
커널 버전도 다르고 (더 낮은 것도) 네트워크 인터페이스도 다른 장비로도 테스트 해 봤는데 다른 데서는 별 문제가 없네요...ㅜㅜ

뭐가 문제일까요? 이런 경우 있으셨나요?

cometee의 이미지

혹시 IPv6 Multicast 프로토콜에는 문제가 없음을 확인하셨는지요. 패킷 드롭도 않되고 그런걸 보면, IPv6 네이버링 즉 IPv4에서의 ARP같은 것이 완료되지 않았을 문제가 있을거 같아요. 두 IPv6 호스트간의 IPv6 관련 모든 프로토콜을 봐야 알수 있을 문제 같군요.

popory99의 이미지

먼저 답변해주셔서 감사합니다. ^^
그런데 테스트 해보니 IPv6뿐만 아니라 IPv4에서도 같은 문제네요...
MTU가 1280일 때 그보다 더 큰 패킷이 들어오니 패킷이 truncate되어서 들어옵니다.
sk98lin(sky2 드라이버도 되는데 이도 역시 같은 문제 발생) 드라이버를 사용하고 있는데, 네트워크 개발자에게 메일을 보내봤는데 하드웨어가 자기 버퍼보다 큰 패킷을 받으면 hang이 걸리기 때문에 truncate register를 둬서 패킷을 자른 후 upper layer로 올린답니다. 그래니 커널이 이 패킷을 처리못하는 거 같고요... 하드웨어 문제라 수정할 수 없는건지 아니면 드라이버를 그렇게 구현해 놓아서 그런건지...드라이버를 수정할 수는 없는지 다시 메일을 보냈는데 아직 답변이 없네요...

유독 이 드라이버만 그렇네요....같은 회사 (Marvell? SysKonnect?)의 다른 네트워크 인터페이스는 skge 드라이버를 사용하니 그런 문제가 없는데 말이죠...
sky2.c 라는 소스를 보면 잘은 모르겠지만 oversize패킷에 대해서 truncate처리 하는 것 같습니다.
흐....방법이 없나....
답답하네요...이걸 빨리 처리해야 하는데...
다른 대부분의 네트워크 드라이버는 mtu가 1280일 때 큰 패킷이 들어와도 잘 처리하는데....
ㅜㅜ

댓글 달기

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