LoginSignup
60

More than 5 years have passed since last update.

interfaces 覚書

Posted at

/usr/share/doc/ifupdown/examples/network-interfaces.gz の和訳。

/etc/network/interfaces

ifup(8) , ifdown(8) の設定ファイル。

先頭に # が記述された行と空白行は無視される。インデントは必須ではない。
行末に記述された \ は次の行を現在の行の続きとして扱うことを表す。

pre-up , up , down , post-down オプションは
全てのインターフェイスにおいて有効であり、複数回指定することができる。
他のオプションは一度のみ指定することができる。

使用可能なオプションの詳細は INTERFACES(5) を参照。

loopback インターフェイスは実際のところ重要ではないのだが、
必要であれば使用することができる。

auto lo

iface lo inet loopback

ethernet カードの設定例: (broadcastgateway は任意)

auto eth0

iface eth0 inet static
   address 192.168.0.42/24
   gateway 192.168.0.1

より複雑な ethernet 設定例。
あまり一般的ではないネットマスクと独自のブロードキャストアドレスを使用する:
(up の行はインターフェイスが起動する際に実行され、
down の行はインターフェイスが停止する際に実行される)

auto eth0

iface eth0 inet static
   address 192.168.1.42/25
   up route add -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2
   up route add default gw 192.168.1.200
   down route del default gw 192.168.1.200
   down route del -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2

単一の ethernet カードで二つのインターフェイスを設定する ethernet 設定例。

Note:
ifconfig のような操作を実行する。 ifup / ifdown が扱う : とは異なる。

Warning:
二つのインターフェイスが起動している時に ifdown eth0 を実行した場合、
正しい状態に定義されない既知のバグがある。正しい状態に戻すには下記のコマンドを実行する。

ifdown eth0:1 ; ifup eth0; ifdown eth0

BTW, this is “bug” #193679 (これは実際のところバグというより禁則に近い)

auto eth0 eth0:1

iface eth0 inet static
   address 192.168.0.100/24
   gateway 192.168.0.1

iface eth0:1 inet static
   address 192.168.0.200
   netmask 255.255.255.0

別の方法で記述することもできる:

auto eth0

iface eth0 inet static
   address 192.168.0.100/24
   gateway 192.168.0.1

iface eth0 inet static
   address 192.168.0.200
   netmask 255.255.255.0

しかしこの方法で複数アドレスを指定する場合、
ifup / ifdown を使用して、個別に追加 / 削除を実行する方法がない。

pre-up コマンドと post-down コマンドを利用することもできる。
pre-up , post-down の終了ステータスを確認し、失敗していた場合、
設定(または設定の解除)は中断される:

auto eth0

iface eth0 inet dhcp
   pre-up [ -f /etc/network/local-network-ok ]

上記の設定は /etc/network/local-network-ok ファイルが存在する場合にのみ
eth0 の起動を許可する。

一つは信頼済み LAN へ接続され、もう一つは未検証のインターネットへ接続される、
2つの ethernet インターフェイスの設定例。
(ネットワークカードの探査時に、更新されたカーネルが異なる命令を出した為に)
MAC アドレスがスワップされた場合、インターフェイスの起動は実行されない。

auto eth0 eth1

iface eth0 inet static
   address 192.168.42.1
   netmask 255.255.255.0
   pre-up /path/to/check-mac-address.sh eth0 11:22:33:44:55:66
   pre-up /usr/local/sbin/enable-masq

iface eth1 inet dhcp
   pre-up /path/to/check-mac-address.sh eth1 AA:BB:CC:DD:EE:FF
   pre-up /usr/local/sbin/firewall

一つは信頼済み LAN へ接続され、もう一つは未検証のインターネットへ接続された、
2 つの ethernet インターフェイスを
インターフェイス名ではなく、 MAC アドレスで識別する設定例:

auto eth0 eth1

mapping eth0 eth1
   script /path/to/get-mac-address.sh
   map 11:22:33:44:55:66 lan
   map AA:BB:CC:DD:EE:FF internet

iface lan inet static
   address 192.168.42.1
   netmask 255.255.255.0
   pre-up /usr/local/sbin/enable-masq $IFACE

iface internet inet dhcp
   pre-up /usr/local/sbin/firewall $IFACE

異なる場所で使用するノートパソコンの PCMCIA インターフェイス:

Note:
auto 行の欠損に注意。

mapping eth0
   script /path/to/pcmcia-compat.sh
   map home,*,*,*                  home
   map work,*,*,00:11:22:33:44:55  work-wireless
   map work,*,*,01:12:23:34:45:50  work-static

iface home inet dhcp

iface work-wireless bootp

iface work-static static
   address 10.15.43.23
   netmask 255.255.255.0
   gateway 10.15.43.1

Note:
/etc/pcmcia/network を下記のように変更した場合は動作しない:

if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi
get_info $DEVICE
case "$ACTION" in
   'start')
      /sbin/ifup $DEVICE
      ;;
   'stop')
      /sbin/ifdown $DEVICE
      ;;
esac
exit 0

上記と同じことを実行する設定例:
(この場合は、インターフェイスへオプションを設定したノートパソコンの識別し、
適切なネットワークにおいて ping が応答するコンピュータを検出する。
変数の値は注意深い検討が必要とされる)

mapping eth0
   script /path/to/ping-places.sh
   map 192.168.42.254/24 192.168.42.1 home
   map 10.15.43.254/24 10.15.43.1 work-wireless
   map 10.15.43.23/24 10.15.43.1 work-static

iface home inet dhcp
iface work-wireless bootp
iface work-static static
   address 10.15.43.23
   netmask 255.255.255.0
   gateway 10.15.43.1

Note:
ping-places スクリプトは iproute パッケージのインストールが必要となり、
/etc/pcmcia/network の変更が必要となる。

ネットワーク上の全ての通信を読込むインターフェイスの設定例。
この設定は 'stealth'-type 設定の
Network Intrusion Detection センサーの設定において役立つ。
これはネットワーク上に IP アドレスを持たない為、
NIDS システムを危険なネットワークへ直接接続することを防止する。
しかし NIDS のセンサーに既知のバグ(例えば DSA-297 を参照)があり、
ネットワークパケットの処理によってバッファオーバーフローを引き起こすことがある。

auto eth0

iface eth0 inet manual
   up ifconfig $IFACE 0.0.0.0 up
   up ip link set $IFACE promisc on
   down ip link set $IFACE promisc off
   down ifconfig $IFACE down

ifupdown によって IP アドレスを割当てず、
外部プログラムによって設定されるインターフェイスの設定例。
これは PPPOE スクリプトのような外部プログラムによって
設定を行うインターフェイスにおいて役立つ。

auto eth0

iface eth0 inet manual
   up ifconfig $IFACE 0.0.0.0 up
   up /usr/local/bin/myconfigscript
   down ifconfig $IFACE down

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60