UNIXな生活
更新:2002/12/23  
Linuxな生活  FreeBSDな生活
 Solarisな生活
 JAVAな生活
 Practical use
 掲示版
Solarisでのarpテーブルの変更

*arpテーブル
通信している器機のIPアドレスとMACアドレスの対応表。
実際にpingなどで他の器機と通信する場合は、このarpテーブル内の設定を参照しMACアドレスを確認するため、同じIPを設定した別の器機(MACが変わる)を接続しても、arpテーブル内のMACアドレスが正しいものに書き変わるまでネットワーク接続の確立はできない。

arpテーブルの確認と設定はコマンドで行なえます。

設定の参照 /usr/sbin/arp -a
設定の削除 /usr/sbin/arp -d [IPアドレス]
設定の追加 /usr/sbin/arp -s [IPアドレス] [MACアドレス]


*例
以下のマシンがネットワークにつながっていると仮定します
hostA=192.168.0.1
hostB=192.168.0.2


1.現在の状態を確認します。

arp -a
Net to Media Table: IPv4
Device   IP Address               Mask      Flags   Phys Addr
------ -------------------- --------------- ----- ---------------
iprb0  192.168.0.1         255.255.255.255       00:00:a8:24:**:**
iprb0  192.168.0.2         255.255.255.255       00:20:ec:4c:**:**
iprb0  hogehost               255.255.255.255 SP    08:00:46:0c:**:**
iprb0  BASE-ADDRESS.MCAST.NET 240.0.0.0       SM    01:00:5e:**:**:**

表示される情報は、ホスト名 (IPアドレス) MACアドレス デバイスです。
名前解決が出来てないホストは?で表示されます。

本来新しい機器が接続されればarpテーブルは自動で更新されます。
ここで問題になるのが、例えばhostAが壊れ、全く同じ設定をした予備機のhostAを接続したとします。
IPは同じですがデバイス毎に設定されたMACアドレスは当然変わります。
OS側でarpを書き変えてくれればネットワークの接続が確立出来ますが、まれに書き変わらない場合があります。
arpのMACアドレス部分が変更されなければ、hostAへのpingすら通らなくなります。
そこで、手動で再定義します。


2.旧hostAの定義を削除

rootで作業します。
#arp -d 192.168.0.1

確認
arp -a
Net to Media Table: IPv4
Device   IP Address               Mask      Flags   Phys Addr
------ -------------------- --------------- ----- ---------------
iprb0  192.168.0.2         255.255.255.255       00:20:ec:4c:**:**
iprb0  hogehost               255.255.255.255 SP    08:00:46:0c:**:**
iprb0  BASE-ADDRESS.MCAST.NET 240.0.0.0       SM    01:00:5e:**:**:**


3.再定義

arpテーブルに再定義するには、arpコマンドで追加するか、hostAにpingを発行しarpテーブルに存在しないIPであれば、接続か確立された時点で自動的にarpが追加される方法と2種類存在します。
arpコマンドで追加するにはhostAのMACアドレスが必要ですので、ここではpingを発行し自動で再定義させます。
ping 192.168.0.1

arpテーブルを再度確認します。
arp -a
Net to Media Table: IPv4
Device   IP Address               Mask      Flags   Phys Addr
------ -------------------- --------------- ----- ---------------
iprb0  192.168.0.1         255.255.255.255       00:00:b1:fc:**:**
iprb0  192.168.0.2         255.255.255.255       00:20:ec:4c:**:**
iprb0  hogehost               255.255.255.255 SP    08:00:46:0c:**:**
iprb0  BASE-ADDRESS.MCAST.NET 240.0.0.0       SM    01:00:5e:**:**:**

最初のMACアドレスと比較し、MACアドレスが変更されているか確認して下さい。


なお、pingを再送してもつながらずarpテーブルが更新されない場合はコマンドで設定します。
まず192.168.0.1(hostA)のMACアドレスを調べて下さい。

設定の追加(arpコマンドから)

rootで作業
#arp -s 192.168.0.1 00:00:b1:fc:**:**

設定の確認
arp -a
Net to Media Table: IPv4
Device   IP Address               Mask      Flags   Phys Addr
------ -------------------- --------------- ----- ---------------
iprb0  192.168.0.1         255.255.255.255       00:00:b1:fc:**:**
iprb0  192.168.0.2         255.255.255.255       00:20:ec:4c:**:**
iprb0  hogehost               255.255.255.255 SP    08:00:46:0c:**:**
iprb0  BASE-ADDRESS.MCAST.NET 240.0.0.0       SM    01:00:5e:**:**:**




Producted by Tomoya Sakurai