ネットワーク接続確認方法

ハード的な認識, ドライバ

NIC のハードウェアを認識し, さらに, ドライバが組み込まれていることを確認. ここまでで, eth0 のようなデバイスが有効になる. (まだ通信はできない)
ハード的に検出可能か?
カーネルが認識していないカードでも, PCI バスから情報を引き出せる.
cat /proc/pci, lspci -b, lspci -vv , lspci -b
lspci -b はカーネルの認識とは独立に, PCI バスから IRQ を調べる.
カーネルがどう認識しているか?
cat /proc/ioports, cat /proc/interrupts
$ cat /proc/pci
....略
Bus 1, device 8, function 0:
Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller (rev 66).
IRQ 11.
Master Capable. Latency=66. Min Gnt=8.Max Lat=56.
Non-prefetchable 32 bit memory at 0xd0200000 [0xd0200fff].
I/O at 0x7000 [0x703f].

$ cat /proc/ioports
...略
7000-703f : Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller
  7000-703f : eepro100

$ cat /proc/interrupts
    CPU0
...略
 11: 1243459 XT-PIC Intel ICH3, usb-uhci, usb-uhci, usb-uhci, i82365, eth0
...略
ドライバ が組み込まれているか?
dmesg でドライバの組み込みを確認.
/var/log/syslog, /var/log/messages なども参考に.
モジュールを, 認識できているか?
lsmod で使用中のモジュール一覧を見る.
/lib/modules/(カーネル version)/modules.dep にモジュール一覧がある.
ドライバの起動オプションは正しいか?
カーネルオプションで ether=0,0,0x30,eth0 とか
insmod で insmod e1000 TxDescriptors=80,128 のように (man insmod, /etc/modules.conf)
パラメータを指定することがある.
カーネルソースの Documentation/kernel-parameters.txt, Documentation/networking/ の文書を読む.
インターフェースが生きているか?
/sbin/ifconfig eth0 で Device not found, unknown interface にならないこと.
インターフェース

eth0 に IP アドレスを与える. ルーターを越えない隣接ホストには ping -nr (IPアドレス) で通信を確認できるようになる.
インターフェースが生きているか?
/sbin/ifconfig eth0 で Device not found, unknown interface にならないこと.
IPアドレスなどを設定
/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}
のエラーが出る場合,
ハード認識かドライバに問題がある.
インターフェースが正しく設定されているか?
/sbin/ifconfig
$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
     inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
     UP BROADCAST NOTRAILERS RUNNING MTU:1500 Metric:1
     RX packets:600988 errors:0 dropped:0 overruns:0 frame:0
     TX packets:446624 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:100
     Interrupt:11 Base address:0xd000
パケットが流れているか?
/sbin/ifconfig の表示の packets の項.
隣接(ルータを越えない)マシンと通信できるか?
ping -nr (相手のIPアドレス)
異常が無いか
ifconfig, cat /proc/net/dev , netstat -i も用いて, errs(エラー), colls(パケット衝突) など確認.

ルーティング

ネットワークのパケットの送付先などを設定します. ルーターを越えたマシンとパケットをやりとりできるようになります.
ルーティング設定.
/sbin/route ....
ルーティング確認.
/sbin/route -n, cat /proc/net/route
$ /sbin/route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
ルーターを越えたマシンと通信できるか?
ping -n (相手のIPアドレス)
相手を IP でなく マシン名で指定するには, /etc/hosts か DNS でマシン名参照を可能にする必要がある.
パケットの送付経路は?
traceroute -n (相手のIPアドレス)
この段階でルーターを越えたマシンとパケットをやりとりできる.
参考:

ルータ,ファイアウォール などでは更に iptables で パケットの送付/受理などに関する設定を行う. (...がここでは省略.)
pingを耳で聞きながら作業できます.
ping IPアドレス | gawk '{printf "\a"}'
最終更新:2011年10月18日 12:47
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。