#はじめに
Network ManagerをインストールしたLinux向けです。
現状、有名所のディストリなら標準で入ってます(CentOSやDebian,Ubuntu)
RaspberryPiには標準では入っていませんが、aptでインストールすれ問題なく動くことが確認できています
この記事通り設定するとIPv6のグローバルIPが固定され、かつ自動設定のおよそ半分の長さになる
macOSやWindowsではこの方法でIPは設定できません
#IPv6アドレスの設定パターン
━┳Static (固定)━━━━━━完全固定(プレフィックスとインターフェースIDを固定)・・・・①
┃
┣Semi-Static (半固定)━━インターフェースIDのみ固定━┳macアドレスから自動生成・・・②
┃ ┗手動で固定・・・・・・・・・・③
┃
┗Dynamic(自動)━━━━━━匿名(一時)アドレス・・・・・・・・・・・・・・・・・・・・・④
WindowsやmacOSでIPv6を自動設定した場合、②と④が設定される
Network ManagerをインストールしたLinuxでもGUIやnmtuiコマンドで自動設定を選択した場合も②と④が設定される
②と④は同時に割り当てられることもあり、その場合はどちらを優先するかも設定できる
同様にWindowsやmacOSやLinuxのGUIやnmtuiコマンドで手動や固定を選択すると①が設定される
しかし、Linuxでは③が設定可能である。③の利点は後に示す
#ちょっと補足(IPv6のプレフィクスとインターフェースID)
IPv6は128bitで表現され、日本では概ねプレフィクスが64bit、インターフェースIDが64bitと考えて頂いて構わない。(ひかり電話とか一部例外はあるが)
プレフィクス | インターフェースID |
---|---|
64bit | 64bit |
プレフィックスはIPv4で言うところのネットワークID、インターフェースIDはホストIDと思って構わない
プレフィックスが固定できるかはIPv6接続方式によって変わる
IPoE | PPPoE | |
---|---|---|
プレフィックスの固定 | 半固定のみ(変動は数年に1回程度?) | 完全固定が選択可 |
プロバイダ月額 | 1,000円程度 | 14,000円程度 |
最大理論速度 | 10Gb | ??? |
#IPv6アドレスの設定パターン毎の短所
④匿名(一時)アドレスは起動する毎にIPアドレスが変わるため、サーバーとしては使えない
①完全固定は接続方式がPPPoEv6などでプレフィックスが固定された環境であれば使えるが、プレフィックスが変動してしまうとメンテすらできなくなる
②インターフェースIDをmacアドレスから自動生成するということは名前の通りmacアドレスをインターネットに晒すことになる。
③インターフェースIDを手動設定するはプレフィクスが変動してもプレフィクスを知ることさえできればアクセスは可能である。もちろんプレフィックスを固定できる環境であれば、①と同様に使える
#インターフェースIDを手動設定する方法
NICをいじるため、SSHなどネットワーク越しでは失敗するかもしれません。
まず、Network Managerのnmtuiコマンドを使い、全てauto(または自動と)でEthernet connection 1を作る
nmtui
デフォルトでは全て自動になっているため、そのままを選択
作ったプロファイル名は覚えておく
nmtuiコマンドで作ったプロファイルをnmcliコマンドを使いカスタマイズする
"有線接続 1"はプロファイル名なので適宜読み替えてください
ipv6.token ::1:1の設定値も適宜設定してください
nmcli c m "有線接続 1" ipv6.ip6-privacy 0
nmcli c m "有線接続 1" ipv6.addr-gen-mode eui64
nmcli c m "有線接続 1" ipv6.token ::1:1
コマンドの意味は、以下の通りです
設定値 | 意味 | デフォルト値 |
---|---|---|
ipv6.ip6-privacy 0 | 匿名(一時)アドレスを無効化する | -1 |
ipv6.addr-gen-mode eui64 | IPv6アドレス生成モードをEUI-64にする | privacy-stable |
ipv6.token ::1:1 | インターフェースIDを::1:1に固定する | -- |
ipv6.addr-gen-modeのprivacyは上記の④匿名(一時)アドレスを表します
ipv6.addr-gen-modeのstableは上記の②インターフェースIDをmacアドレスから自動生成する
デフォルトの設定はprivacy-stableとなっていますので、④匿名(一時)アドレスを優先して使うようになっています
ディストリによってはstable-privacyがデフォルトになっているものもあるようです
#設定結果確認
設定結果は以下の方法で確認してもらえばOKだが、IPv6のグローバルIPが固定され、かつ自動設定のおよそ半分の長さになる
直接IPを入力する機会はmDNSなどのプロトコルが出てきたため減ってはいるのだか短いアドレスは利点がある
また、DNSに登録するにはIPには以下で確認できるIPを登録すれば良い
プレフィクスをどう固定するか、変動したらどうするかは別途議論する
##ローカルの端末を設定したならip aで確認
$ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.1.17/32 brd 192.168.1.17 scope global eth0
valid_lft forever preferred_lft forever
inet6 2100:a:a::1:1/64 scope global noprefixroute dynamic
valid_lft 13594sec preferred_lft 11794sec
inet6 fe80::aabb:ccff:fedd:eeff/64 scope link
valid_lft forever preferred_lft forever
##リモート端末ならmDNSで確認したほうが簡単
手前味噌ながらAndroidでmDNSでグローバルIPv6を引けるソフトを作ったため、使ってみてほしい
https://play.google.com/store/apps/details?id=com.dokoden.dotlocalfinder
その他のOSでの検索方法は、別途記事にした
https://qiita.com/maccadoo/items/48ace84f8aca030a12f1
ip aの結果からもわかりますがリンクローカルアドレス(fe80から始まるアドレス)は別途生成されているし、今回の設定では変更されていないこともわかる
#注意
NTTフレッツ光を使われているかた、NTTがレンタルで貸し出しているONUのIPv6周りのセキュリティはザルなので注意してほしい
https://qiita.com/maccadoo/items/41e4cde50d1a288a19d6