(旧サイトから転載)
任意の固定IPv6アドレスを割り当て
(2015-04-13)
さて、ユニークローカルIPv6ユニキャストアドレス(ULA)で計算した固定のIPv6アドレスを、OS起動時に自動的に設定してみます。 このページの方法では、自動割り当てされるIPv6アドレスは消えてなくなり、その代わりに指定のIPv6アドレスが割り当てられます。
実験開始
OSのバージョンはこんな感じ。
Linux rasp01 3.18.11+ #776 PREEMPT Mon Apr 6 13:13:58 BST 2015 armv6l GNU/Linux
設定としては特に難しいことはなく、/etc/network/interfaces ファイルを下記のように記述すればOKでした(無線LANなのでインターフェース名がeth0ではなくwlan0になっています)。
auto lo iface lo inet loopback auto wlan0 iface wlan0 inet static address 192.168.1.21 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface wlan0 inet6 static #--------------- address fdzz:zzzz:zzzz:1::21 # この3行を追加 netmask 64 #---------------
それと、忘れずに /etc/modprobe.d/ipv6 の
alias net-pf-10 off
をコメントアウトするのを忘れずに。
結果はこうなります。
/etc/network/interfaces に追加する前の状態
$ ifconfig wlan0 wlan0 Link encap:イーサネット ハードウェアアドレス 00:11:22:33:44:55 inetアドレス:192.168.1.21 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 inet6アドレス: fe80::xxxx:xxxx:xxxx:xxxx/64 範囲:リンク inet6アドレス: 2408:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy/64 範囲:グローバル UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:223 エラー:0 損失:44 オーバラン:0 フレーム:0 TXパケット:108 エラー:0 損失:1 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:51381 (50.1 KiB) TXバイト:27998 (27.3 KiB)
/etc/network/interfaces にした後の結果
$ ifconfig wlan0 wlan0 Link encap:イーサネット ハードウェアアドレス 00:11:22:33:44:55 inetアドレス:192.168.1.21 ブロードキャスト:192.168.1.255 マスク:255.255.255.0 inet6アドレス: fdzz:zzzz:zzzz:1::21/64 範囲:グローバル inet6アドレス: fe80::xxxx:xxxx:xxxx:xxxx/64 範囲:リンク UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1 RXパケット:93 エラー:0 損失:16 オーバラン:0 フレーム:0 TXパケット:72 エラー:0 損失:1 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:1000 RXバイト:24468 (23.8 KiB) TXバイト:19337 (18.8 KiB)
inetアドレスの「範囲:グローバル」のところが、自動設定されたアドレス:
inet6アドレス: 2408:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy/64 範囲:グローバル
から、手動設定したアドレス:
inet6アドレス: fdzz:zzzz:zzzz:1::21/64 範囲:グローバル
に変化したことがわかります。
おまけ:仮想ブリッジを構成している場合
仮想ブリッジを構成している場合、/etc/network/intefacesは下記の内容でOKのようです。
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.1.20 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 bridge_ports eth0 bridge_maxwait 10 iface br0 inet6 static #--------------- address fdnn:nnnn:nnnn:1::20 # この3行を追加 netmask 64 #---------------
宿題
(2016-02-02追記) 自動割当されるIPv6アドレス(GUA)と、上記にて手動で追加したULAを同時に設定するにはどうすんですかね。
(以下未確認につき注意!!) メモ:/etc/network/interfacesを下記のように変更とか・・・
#iface eth0 inet6 static #address xxxx:xxxx:... #netmask 64 iface eth0 inet6 static post-up ip addr add fdxx:xxxx:..../64 dev eth0 pre-down ip addr del fdxx:xxxx:..../64 dev eth0
なんてね。