- PR -

arp を使ったWindowsとのIP重複抑止

1
投稿者投稿内容
さかい
会議室デビュー日: 2004/06/24
投稿数: 8
投稿日時: 2004-06-24 12:50
こんにちは

WindowsでIPアドレスを固定で設定してネットワークに接続使用とした場合、まず設定されたIPアドレスをarpで確認して応答がなければそのIPアドレスを使用するという仕組みでIPアドレスの重複を抑止しています、Windows同士ではその仕組みが機能するのですがlinuxに同一IPが設定されていた場合linuxがarp応答をしないためWindowsに重複したIPアドレスが設定されてしまいます。

Windowsから出されるarp要求が送信元とターゲットのIPが同じarp要求なのでlinux側で無視しているかなんかではないかと思うのですが、linux側の設定でこのようなarpにも応答するようにすることはできないでしょうか?

ちなみにWindowsからでているarp要求のパケットはこんな感じです
0000 FF FF FF FF FF FF 08 00 - 46 16 B9 19 08 06 00 01 ........F.ケ.....
0010 08 00 06 04 00 01 08 00 - 46 16 B9 19 C0 A8 01 05 ........F.ケ.タィ..
0020 00 00 00 00 00 00 C0 A8 - 01 05 00 00 00 00 00 00 ......タィ........
0030 00 00 00 00 00 00 00 00 - 00 00 00 00 ............


--- MAC層 [08004616B919] → [FFFFFFFFFFFF] --------------------------------
【キャプチャ時間】2004/06/23 19:42:06.532498
【物理パケット長】60 (0x003C) バイト
【送信先MACアドレス】FFFFFFFFFFFF
【送信元MACアドレス】08004616B919

--- データリンク層 [EthernetU] ------------------------------------------------
【フレームタイプ】EthernetU
【プロトコルタイプ】0x0806 (ARP)

--- ARP要求 ---------------------------------------------------------------
【ハードウェアタイプ】1 (イーサネット)
【プロトコルタイプ】0x0800 (IP)
【ハードウェアアドレス長】6 バイト
【プロトコルアドレス長】4 バイト
【オペレーション】1 (ARP要求)
【送信元ハードウェアアドレス】08004616B919
【送信元プロトコルアドレス】192.168.1.5
【ターゲットハードウェアアドレス】000000000000
【ターゲットプロトコルアドレス】192.168.1.5
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-06-25 11:56
こんにちは〜。

ん〜同様の現象に出くわしたことはないのですが。(^^;
Linux が arp を無視するとは思えないのです(syslog には何か情報がないでしょうか?)。
解決策になるかどうかは分かりませんが、こちらの連載(特に第4回かな?)が参考になるかもしれません。
それと、Windows と Linux のバージョンなども記載されるとよいと思われます。

 ・ ネット・コマンドでトラブル解決 (@IT さんより)
さかい
会議室デビュー日: 2004/06/24
投稿数: 8
投稿日時: 2004-06-25 13:29
レスありがとうございます。

syslogのほうをチェックしてみましたがメッセージはなにもでませんでした試している環境ですがFedora Core2とRedHat8.0で試しています。どちらもデフォルトでインストールしてyumでアップデートし不要と思われるデーモンの起動を停止(これがまずかったのかな?)した状態です。各マシン情報はこんな感じです

1.Fedora Core2
kernel 2.6.6-1.435

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:50:04:76:CD:5C
IPADDR=192.168.1.5
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet

     起動しているデーモン
     rpcsvcgssd,xfs,syslog,crond,IIim,rawdevices,network,
     cpuspeed,cups,sshd,canna,anacron,iptables,random,
     acpid,ntpd,rpcgssd,microcode_ctl,mdmonitor,rpcidmapd,messagebus

2.Red Hat Linux 8.0
kernel-2.4.20-28.8

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.9
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

     起動しているデーモン
     syslog,httpd,network,random,rawdevices,atd,
     keytable,sshd,iptables,crond,anacron,proftpd

WindowsはWindowsXP pro と Windows Server 2003で行っています。この4台の組み合わせでは現象としては同じ結果ででています。

まずLinuxに設定したIPをWindowsに設定する:設定できてしまう
まずLinuxに設定したIPを別のLinuxに設定する:エラーがでて設定できない
まずWindowsに設定したIPをLinuxに設定する:エラーがでて設定できない
まずWindowsに設定したIPを別のWindowsに設定する:エラーがでて設定できない

今日調べていてわかったのはLinuxにIPを設定した場合に出力するarpがWindowsと微妙に違うということです。Windowsのarpには送信元のプロトコルアドレスに設定しようとするIPを設定していますがLinuxの場合は送信元のプロトコルアドレスに0.0.0.0を設定しています。この違いでLinuxが無視しているのか、私の環境がおかしいのか全くわかりません・・・
Linuxが出しているarpのパケットはこんな感じです。
0000 FF FF FF FF FF FF 00 50 - 04 76 CD 5C 08 06 00 01
0010 08 00 06 04 00 01 00 50 - 04 76 CD 5C 00 00 00 00
0020 FF FF FF FF FF FF C0 A8 - 01 05 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 - 00 00 00 00

--- MAC層 [00500476CD5C] → [FFFFFFFFFFFF] --------------------------------
【キャプチャ時間】2004/06/24 18:13:40.547045
【物理パケット長】60 (0x003C) バイト
【送信先MACアドレス】FFFFFFFFFFFF
【送信元MACアドレス】00500476CD5C

--- データリンク層 [EthernetU] ------------------------------------------------
【フレームタイプ】EthernetU
【プロトコルタイプ】0x0806 (ARP)

--- ARP要求 ---------------------------------------------------------------
【ハードウェアタイプ】1 (イーサネット)
【プロトコルタイプ】0x0800 (IP)
【ハードウェアアドレス長】6 バイト
【プロトコルアドレス長】4 バイト
【オペレーション】1 (ARP要求)
【送信元ハードウェアアドレス】00500476CD5C
【送信元プロトコルアドレス】0.0.0.0
【ターゲットハードウェアアドレス】FFFFFFFFFFFF
【ターゲットプロトコルアドレス】192.168.1.5

とりあえず明日はインストールしてなにもいじらない状態で試してみます。
さかい
会議室デビュー日: 2004/06/24
投稿数: 8
投稿日時: 2004-06-27 17:30
自己レスです

FedoraCore1をインストールして何も設定を変更しない状態でも状況は同じでした
やはり無理なのですかね・・・
1

スキルアップ/キャリアアップ(JOB@IT)