yuriの日記: MACアドレス重複 7
日記 by
yuri
不可解現象メモ。
Linux1(192.168.1.1)とLinux2(192.168.1.2)とPC(192.168.1.3)をHUBにつないで、Linux1とLinux2を何回か再起動していたら、telnet 192.168.1.1しているのにLinux2につながる場合がある。
#3回に1回くらい、かなりの頻度
で、PCのコマンドラインで、"arp -a"したら、192.168.1.1と192.168.1.2に同じMACアドレスが割り当てられている。。。。おかしい。。。。イミフ。。。。
Linux1(192.168.1.1)とLinux2(192.168.1.2)とPC(192.168.1.3)をHUBにつないで、Linux1とLinux2を何回か再起動していたら、telnet 192.168.1.1しているのにLinux2につながる場合がある。
#3回に1回くらい、かなりの頻度
で、PCのコマンドラインで、"arp -a"したら、192.168.1.1と192.168.1.2に同じMACアドレスが割り当てられている。。。。おかしい。。。。イミフ。。。。
Linuxではよくある (スコア:3, 参考になる)
を間違えると、誤ったMACアドレスや、同じ種類のNICは全て同じMACアドレス
になったりします。新しいドライバをメーカー等からダウンロードして更新
すると治る事が多いです。スペックシートが手に入るなら、ドライバ書き換え
て正しい値を読みとるよう変更してしまうのも有りかと思います。
これはLinuxだけの話かと思ってたのですが、Windowsでも似たような事例を
経験した事があります。ASUS製のマザーのOnboard NICはRealTek製だったの
ですが、WindowsXP SP1ではMACアドレスのOUIがRealTekでした。しかしSP2
になったらMACアドレスが変わってしまいました。今度はOUIがASUSになって
しまいましたよ。推測ですが、当初はRealTekが付けたMACアドレスをドライバ
が読み込んでいたのだが、SP2になり今度はASUSが付けたMACアドレスが読み
出されたのだと思います。
Re:Linuxではよくある (スコア:1)
Linux1と2はifconfigで見てみるとちゃんと正しいIPアドレス-MACアドレスを表示しているので、PC側の何かがおかしいのかな~と思っていました。
ドライバかあ。。。試してみます。
Re:Linuxではよくある (スコア:1)
MACアドレスが誤認識されるという経験は7-8年ぐらい前によくあっ
た話です。最近はとんと経験していません。他の原因の可能性が
高いかと思います。
よくあると言う程ないよー。 (スコア:1)
確かにNICのMACアドレスはドライバ次第で何でも設定できるけどね。例えばRealTekの8139はデバイスが自分でROMを読んで設定するので余計な事をしない限りそれはない。RtkのGbEの石も資料をざっと見ただけだけど同様だった気がする(あやふやだが)。ただ、NE2000だと自分で設定する必要があるのと、その頃のふるーいNICにはROMがないのもあったりするのでおそらく昔はそういう事もあったかもだ。
# 窓についてはよく知らんし蟹は蟹でも100なのか1000なのか知らんけど、SP2でASUSのドライバが余計な事をしてる可能性が高いなー。MACアドレスはセグメント内でユニークでありさえすれば用は足りるのでその動作は完全に無意味なんだけど。
--
以下、参考までに>yuriさめ
talosでは0.2のツリーのdrivers/netにある8139.ccとne2k.ccがNICのドライバで、ne2kの方は288行あたりで読んで318行あたりで書き込んでいるのに対し、8139の方は220行あたりで読んでるだけになってるです。
Re:よくあると言う程ないよー。 (スコア:1)
Linux2にエイリアス…調べてみます。
#Linux1とLinux2はもともとオリジナルディスクからコピーして
#作ったマシンで、変えなければいけないところ(ifcfg-eht*)
#だけをいじっています。
#マシン名も同じだけど…マシン名は使わず常にIPアドレスを
#使って通信してるから問題にはならないと思ってます…
ちなみに、ハブに繋がっているPC、Linux1、Linux2のケーブルを、いざ通信が始まるまで引っこ抜いておいて、PC→Linux1→Linux2 と繋ぐとPCの
ARPテーブルはちゃんとLinux1、Linux2に別々のMACアドレスを割り当てているのですが、繋ぎ順をPC→Linux2→Linux1とすると、PCのARPテーブルが間違って(Linux1にもLinux2にもLinux2のMACアドレスが)割り当てられてしまいます。
あと、8139はデバイスが自分でROMを読んで設定する~NE2000だと自分で設定する必要があるという説明と、それに対応するソース行の解説、ありがとうございます!!なるほど~~☆
それ以前に (スコア:0)
Re:それ以前に (スコア:1)
sshでも同じ現象ですが、まあ、PCとLinux1とLinux2だけの閉じた世界なので…って言い訳になってませんね。
今後気をつけます(汗)。