MTUを1502 byteにしないとscpできない現象に遭遇
ホストOSからゲストOSである仮想マシンに向けてscpをしたのですが、1バイトも送ってくれません。色々調べていくうちに仮想マシン側でMTUを1502バイトにすると送れる現象に遭遇しました。
原因はUSB-LANアダプタのドライバだったようです。最新版のドライバをインストールしたら不思議な2バイトのtrailerはなくなりました。
問題の現象
- 成功$ ping -c 1 -M do -s 1470 192.168.1.1
- 失敗$ ping -c 1 -M do -s 1472 192.168.1.1
MTUは1500バイトなので1472バイトでも成功するはず。何故か成功しません。ホストOSからゲストOSに向けたscpでは、数バイトのデータは転送できますが、約2KB以上では転送できません(scpがだんまり)。
環境
- ホストOS: Ubuntu 18.04(192.168.123.1)
- ゲストOS: VyOS 1.1.8(192.168.123.254, 192.168.1.254), CentOS 7.4(192.168.1.1)
- ホストOSとゲストOSの通信では、マザーボード備え付けのLANアダプタではなく、USB3ポートに指したUSB-LANアダプタを使用(BAFFALO LUA4-U3)
調査結果
- ホストOS/ゲストOSともにMTUは1500
- ゲストOS側のMTUを1502バイトにすると問題はなくなる(でも設定としてはおかしな設定なのですぐに戻す)
- マザーボード備え付けのLANポートを使う場合は見られない現象(マザーボードのLANポートを使う場合はなんの問題もなし)
- WireSharkで通信データを見てみると、データの末尾に「VSS-Monitoring ethernet trailer」という2バイトのデータが付加されている。ん?
解決策
参考資料に挙げたように、同じ現象に遭遇された方がいらっしゃいました。
その方の対策を真似て、AX88179のLinuxドライバ・ソースファイルをダウンロードしてインストールし直したら、「VSS-Monitoring ethernet trailer」は無くなりました。
参考資料
Author And Source
この問題について(MTUを1502 byteにしないとscpできない現象に遭遇), 我々は、より多くの情報をここで見つけました https://qiita.com/tchofu/items/cacf0a6b78c55b5934e7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .