サーバーとネットワークのことで気になった事があるので質問です。


下記の架空の設定での問題をあなたならどう解決するか教えてください。
============================================
遠隔地にある管理用のlinuxサーバにsshでアクセスして、そのネットワーク内に存在するlinuxサーバを色々と管理しています。あるときLAN内に存在するとあるlinuxサーバのIPアドレスを誤って重複して設定しまいsshで接続する事が出来なくなってしまいました。
(アーンドお間抜けなことにそのIPアドレスも忘れてしまいました。historyもありません)

取り急ぎ手元の資料を見たところ、そのサーバに乗せているNICのMACアドレスは判明しました。

この状況であなたならどうやってIPアドレスの設定を間違えてしまったサーバに
リモートからログインしてIPアドレス設定し直しますか?
============================================

明言していないことについては勝手に仮定して答えてください。

回答の条件
  • 1人5回まで
  • 登録:2007/05/28 01:31:31
  • 終了:2007/06/04 01:35:02

回答(2件)

id:studioes No.1

studioes回答回数522ベストアンサー獲得回数612007/05/28 01:56:39

ポイント35pt

 通常はアドレス設定時に重複が検出されてIPが重複しません。

 もし、個別に設定して接続した場合には・・・

1,スイッチに入って、該当サーバのあるポートを停止する。

2,ルータに入って、重複したMACを拒否する。

3,そのネットワーク内(ブロードキャストドメイン)にある別のマシンに入って、ARPをスタティックにして入ってみる。

 普通、完全リモートなら、リモートアシスタンスカードとか入れておきますけどね・・・

id:tommyt

回答ありがとうございます。


>通常はアドレス設定時に重複が検出されてIPが重複しません。

linuxのcuiから直接設定すると重複してしまうことがあるんですよね・・・

(GUIのほうは設定したことがないので分かりませんが。)


自分で構築するサーバーならばリモートアシスタントカード等の

製品は入れておきたいですねぇ・・・・

ただ、仕事で管理する場合そういった製品が入っていない場合もあるのが悲しい所です。

2007/05/29 03:27:12
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402007/05/28 23:52:49

ポイント35pt

素直に現地に行く(笑)

まぁ実際そうなったらさらに泥沼にはまる前に行った方がいいと思いますけどね。


それはそれとして真面目な回答を。

大抵の OS は arp によって IPアドレス <-> MAC アドレスを自動検知しますが、コマンドによって固定する事も出来ます。

arp - ARPテーブルの表示/設定を行う

同一ネットワーク上の(ルーターをはさまない)Ethernet であれば結局のところ MAC アドレスとの対応さえ取れれば通信できるので、

静的に設定すれば問題ありません。

id:tommyt

回答ありがとうございます。

>素直に現地に行く(笑)

鉄板な解決方法ですよね(笑)


ちなみになのですが、MACアドレスから直接IPアドレスを取得するには

どうすれば良いのでしょうか?


ちょっと面倒ですが、arpテーブルの再構築とブロードキャストへの

pingを繰り返していればそのうち同一ネットワーク内に所属する

重複するIPアドレスなら判明するのですが、もうちょっと楽な方法はないかなー?

と思いまして・・・

2007/05/29 03:26:06
  • id:matsOS
    うろ覚えなのでコメント欄で。

    TCP/IPのネットワーク内だと、IPアドレスからMACアドレスを割り出して(ARP)、パケットを配送しているで、逆にMACアドレスからIPを割り出すことは無理なのでは。
    スイッチは接続されているサーバーのMACアドレスだけは全部知っているけどIPアドレスを知らないのでIPを割り出せない。
    ルータorサーバのARPキャッシュもIPアドレスを使ってMACアドレスを求めているのでMACアドレスからはIPを割り出せない。

    やっぱり「arpテーブルの再構築とブロードキャストへのpingを繰り返して」、たまたまarpテーブルに対象のMACアドレスが載るのを待つしかない気がします。
    ■でも■どう考えても障害が発生するので、速やかにSwitchにINしてポートを閉じ、現地の人に再設定をお願いするか現地にいくのが
    対応としては良い気がします。
  • id:b-wind
    >「arpテーブルの再構築とブロードキャストへのpingを繰り返して」、たまたまarpテーブルに対象のMACアドレスが載るのを待つ
    「待つ」必要は無いですね。
    ブロードキャストへの ping を行いつつ tcpdump 等でパケットキャプチャを行えば、arp への返答は行われているはずなので、arpテーブルに載る前の情報でも拾えます。
    問題は果てしなく面倒な作業だという事でしょうか。
  • id:matsOS
    こんな感じですかね。試してませんが。

    1.# tcpdump -nX arp -w hoge.log
    2.ping <ブロードキャストアドレス>
    3.tcpdump停止
    4.ログをMACアドレスでグレップ

    5.arpでIPとMACアドレスを固定
    6.サーバにINしてIPを変更
  • id:b-wind
    >こんな感じですかね。試してませんが。
    大体仰るとおりかと。コマンドは確認してませんが。
    ただ、

    4.5.重複している IPアドレスの洗い出しとそのMACアドレスのマシンの特定

    が実作業として入るでしょうね。
    現実的に MACアドレスとマシンの対応表を持っていないと意味が無い。
    まぁ、机上の空論っぽくなるのは仕方ありませんね。
  • id:matsOS
    自分で書いておいてなんですが、まったく別の美しい解決策がありそうな感じがしますね~。
  • id:tommyt
    コメントありがとうございます。

    この問題での一番厄介な点は↓ですね。
    >4.5.重複している IPアドレスの洗い出しとそのMACアドレスのマシンの特定

    実際にやるとなったらスクリプト書いてチェックしてあげないと
    面倒&ミスがありそうです。


    うろ覚えですが、以前ネットワークプログラミングの勉強を
    してた際に「RAWソケットを使えば大抵のことはできる」
    という事だったのでうまくwrapperみたいなのを書けば
    MACアドレス指定でtelnetとかもできるんでしょうかねぇ・・・
    (そんな知識ないので実現可能かどうかは分かりませんが)


    基本的にこういう自体はあまりないと思うのですが、
    興味本位で質問して色々な意見が聞けたので楽しかったです。
    みなさん回答有難うございました!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません