interfaces 覚書

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

# /etc/network/interfaces
``ifup(8)`` , ``ifdown(8)`` の設定ファイル。

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

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

使用可能なオプションの詳細は [INTERFACES(5)](http://qiita.com/JhonnyBravo/items/135aa654d7a4b5c64c34) を参照。

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

```
auto lo

iface lo inet loopback
```

ethernet カードの設定例: (``broadcast`` と ``gateway`` は任意)

```
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
```