Unixでは、インターフェースの管理には ifconfig コマンドを用います。 インターフェースに割り当てられているイーサネット・アドレスを得るためには、 システムの起動後にコマンド
# /sbin/dmesg | grep fxp |
fxp0: <Intel EtherExpress Pro 10/100B Ethernet> rev 0x08 int a irq 10 on pci10.10.0 fxp0: Ethernet address 00:90:27:bb:84:b |
これによって同時にインターフェース名 fxp0 も得られています。
正式には ifcofig -a で現在のインターフェース情報が全て得られます。
# /sbin/ifconfig -a
fxp0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::290:27ff:febb:840b%fxp0 prefixlen 64 scopeid 0x1
inet 10.16.164.20 netmask 0xffffff00 broadcast 10.16.164.255
ether 00:90:27:bb:84:0b
media: autoselect (100baseTX <full-duplex>) status: active
supported media: autoselect 100baseTX <full-duplex> 100baseTX 10baseT/UT
P <full-duplex> 10baseT/UTP
...
|
インターフェースにIPを振ることによって、同一ネットワーク部を持つ、同一 セグメント内での通信が可能になります。通常は、起動時に/etc/rc.conf の 設定に従い、ifconfig コマンドによって自動的にインターフェースは設定 されます。従って、IPアドレスの変更や、DHCPによるIPの自動取得などの 設定は /etc/rc.conf を編集する必要があります。
デフォルトでは(/etc/defaults/rc.confによって)、インターフェースのリスト は自動的に取得されます。
network_interfaces="auto" # List of network interfaces (or "auto") |
このように auto が設定された場合、/etc/rc.network で ifconfig -l が
実行され、リストが network_interfaces 変数にセットされます。
ifconfig -l の結果は、例えば以下のようになります。
# ifconfig -l fxp0 fxp1 lp0 gif0 gif1 gif2 gif3 lo0 ppp0 sl0 faith0" |
上の場合、fxp0,fxp1 が物理デバイスですが、その他にlo0のループバック インターフェースや、擬似インターフェース、IPv6関係などもあります。
通常は、この auto の設定は変更しなくても良いでしょう。
次に、リストに上がったデバイスそれぞれに対して設定を書きます。 インストーラで設定した場合はその設定が /etc/rc.conf に書き込まれています。 次の /etc/rc.conf の設定は、fxp0 に対して DHCP による IP割り当てを 行う場合の設定です。
ifconfig_fxp0="DHCP" |
これを固定アドレス 10.16.128.1 に変更するには次のように書きます。
ifconfig_fxp0="inet 10.16.128.1 netmask 255.255.255.0" |
この設定によって実際には次のようなコマンドで起動時にIPの設定がされます。
# ifconfig fxp0 inet 10.16.128.1 netmask 255.255.255.0 |
つまり、ifconfig コマンドにそのまま引数として渡されている訳です。
複数のインターフェースがある場合には、同じように設定 /etc/rc.conf に
書くだけですが、通常は、まず手動で上記のコマンドを実行し、
ifconfig -a で結果を見て、更に ping などのツールで接続を
確認してから rc.conf に設定をします。
(このコマンドを使えば、現在の設定を変更する事も出来ますが、
DHCPでIPを取得している場合は注意が必要です。
FreeBSDの場合 dhclient が常時走っているので(ISC DHCPのクライアントソフト)、
固定アドレスを振る場合にはこのプロセスを殺してから行わなければ
なりません。)