raspberry_pi:ipv6:任意の固定ipv6アドレスを割り当て

(旧サイトから転載)

任意の固定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

なんてね。

  • raspberry_pi/ipv6/任意の固定ipv6アドレスを割り当て.txt
  • 最終更新: 2023/03/26 16:18
  • by dkroot