3.12 IPv6クライアント設定 #
対象機種: AX30 / AX11 / AX21 / AG10 / AG20 / AR10 / AR20
本節ではアムニモのデバイス上で、amshやamnimo GUIとは別に、netplanによりIPv6通信を行う設定が可能です。4種類の方法によるIPアドレス取得について、それぞれのnetplan設定について説明します。またリンク状態同期IPv6制御スクリプトを利用し、IPv6を使用するインターフェイスのリンクアップ/ダウンに同期したIPv6の有効化/無効化の制御についても説明します。
補足: エッジゲートウェイのlan0, lan1をブリッジインターフェイス(br0)にバインドしてIPv6通信用に使用し、残りのlan2, lan3はIPv4通信用に使用した場合を例に説明します。
3.12.1 IPv6の特徴と種類 #
IPv6は、128ビット長のアドレス空間を持つ次世代のインターネットプロトコルです。IPv4と異なり、アドレス枯渇の心配がなく、セキュリティや自動設定機能が強化されています。
以下の4種類の方法でIPv6アドレスの設定例で説明します。
| 設定方式 | 説明 | 備考 |
|---|---|---|
| リンクローカルアドレス | 自動生成されるローカルネットワーク内専用のアドレスです。RA/DHCPは必要ありません。 | fe80::/10 で始まる。隣接機器との通信に使用。 |
| 固定IPアドレス | 管理者が手動で設定するアドレスです。RA/DHCPを使いません。 | サーバー用途や静的ルーティングに適する。管理が必要だが、安定した通信が可能。 |
| RA (Router Advertisement) | IPv6ルーターが定期的に送信する情報を元に、端末が自動でアドレス生成します。 補足: SLAAC(Stateless Address Autoconfiguration)と呼ばれ、端末が自身でIPアドレスを構成します。 | 軽量な自動構成に適し、DNS情報は別途設定が必要。 |
| DHCPv6 | DHCPv6サーバーがIPアドレスやDNS情報などを割り当てます。 この方式には2つのモードがあります。 ステートレスモード RAでIPを構成し、DHCPv6でDNSなどの情報のみ取得 ステートフルモード IPアドレスも含めてすべてDHCPv6で配布 | ステートレスはRAと併用、ステートフルはIP管理が必要な企業ネットワーク向け。 |
3.12.2 リンク状態同期IPv6制御スクリプト #
IPv6を使用するインターフェイスのリンクアップ/ダウンに同期してIPv6の有効化/無効化が行われるようにスクリプトファイルを配置します。
スクリプトファイルはカーネルパラメータ “net.ipv6.conf.<IFNAME>.disable_ipv6”の0(IPv6有効)/1(IPv6無効)を切り替えます。
リンクアップ:/etc/amnimo/if-up.d/00-user-ipv6
#!/bin/sh
V6IF="br0" # IPv6を使用するインターフェイスを指定
if [ "x${IFACE}" = "x${V6IF}" ]; then
sysctl net.ipv6.conf.${V6IF}.disable_ipv6=0
fi
作成したファイルには次のアクセス権限を設定します。
$ sudo chmod +x /etc/amnimo/if-up.d/00-user-ipv6
リンクダウン:/etc/amnimo/if-down.d/00-user-ipv6
#!/bin/sh
V6IF="br0" # IPv6を使用するインターフェイスを指定
if [ "x${IFACE}" = "x${V6IF}" ]; then
sysctl net.ipv6.conf.${V6IF}.disable_ipv6=1
fi
作成したファイルには次のアクセス権限を設定します。
$ sudo chmod +x /etc/amnimo/if-down.d/00-user-ipv6
3.12.3 リンクローカルアドレス設定 #
注意: リンクローカルアドレスは自動生成されるためエッジゲートウェイの再起動により再起動前と異なるアドレスが設定される可能性があることに注意してください。
netplan設定
netplan設定には、IPv6アドレスを設定するインターフェイスのみ設定を行い、amshやamnimo GUIではブリッジインターフェイスにバインドするインターフェイスの設定をnetplan設定に合わせて設定します。
netplanの設定ファイル(10-user-ipv6.yaml)を/etc/netplan配下に作成します。
設定例:10-user-ipv6.yaml
network:
version: 2
renderer: networkd
ethernets: # IPv6を設定しないインターフェイス(lan2, lan3)については記述しない
lan0:
optional: true # lan0の設定はamshで定義
lan1:
optional: true # lan1の設定はamshで定義
bridges:
br0:
interfaces: [lan0, lan1]
routes: # ゲートウェイを設定したい場合に記述する
- to: "::/0"
via: "fe80::1"
interface: br0
nameservers: # リンク内のDNSを使用したい場合に設定
addresses:
- "fe80::2%br0" # リンクローカルではインターフェイスの指定が必要
dhcp4: false
dhcp6: false
accept-ra: false # Router Advertisementを無効
link-local: [ipv6] # リンクローカルアドレスの自動生成を有効化
mtu: 1500
optional: false
作成したファイルには次のアクセス権限を設定します。
$ sudo chmod 600 /etc/netplan/10-user-ipv6.yaml
netplanで設定するインターフェイスはamshの設定と競合しないようにconfig.yamlから削除します(ここではbr0)。
amnimo(cfg)# no interface br0 ←netplanで設定したインターフェイスの設定を削除
amnimo(cfg)# config file save ←設定を保存
設定を反映します。
$ sudo netplan apply
$ sudo ip link set br0 down
$ sudo ip link set br0 up
補足: 上記説明では、設定後に sudo netplan apply を実行していますが、これは設定後に即時反映させるため実行しています。アムニモ機器では、再起動後に netplan apply を実行しなくても IPv6 設定は有効になるように配慮されています。
3.12.4 固定IPアドレス設定 #
固定IPアドレス(ULA:ユニークローカルアドレス)にはRFC 4193の”3. Local IPv6 Unicast Addresses”に従って生成したアドレスを設定します。
ここでは例としてグローバルIDの生成にopensslコマンドのrandオプションを使用します。
$ openssl rand -hex 5
7e400adc92
ローカル IPv6 ユニキャストアドレス(fd00::/8)に生成した40ビット値を付与することでサブネットIDを決定し、ブリッジインターフェイス(br0)に任意のインターフェイスIDを割り当てます。
# ネットワークのプレフィックス
fd7e:400a:dc92::/48
# サブネットID
fd7e:400a:dc92:1::/64
# br0
fd7e:400a:dc92:1::10/64
ブリッジインターフェイス(br0)にバインドされたインターフェイス(この場合はlan0, lan1)に接続されたIPv6通信機器のサブネットIDの設定も同様に合わせます。
netplan設定
netplanの設定ファイル(10-user-ipv6.yaml)を/etc/netplan配下に作成します。
設定例:10-user-ipv6.yaml
network:
version: 2
renderer: networkd
ethernets: # IPv6を設定しないインターフェイス(lan2, lan3)については記述しない
lan0:
optional: true # lan0の設定はamshで定義
lan1:
optional: true # lan1の設定はamshで定義
bridges:
br0:
interfaces: [lan0, lan1]
addresses:
- "fd7e:400a:dc92:1::10/64" # 生成したユニークローカルアドレスを設定
routes: # ゲートウェイを設定したい場合に記述する
- to: default
via: "fd7e:400a:dc92:1::1"
nameservers: # 内部DNSを使用したい場合に設定
addresses:
- "fd7e:400a:dc92:1::2"
dhcp4: false
dhcp6: false
accept-ra: false # Router Advertisementを無効
mtu: 1500
optional: false
作成したファイルには次のアクセス権限を設定します。
$ sudo chmod 600 /etc/netplan/10-user-ipv6.yaml
netplanで設定するインターフェイスはamshの設定と競合しないようにconfig.yamlから削除します(ここではbr0)。
amnimo(cfg)# no interface br0 ←netplanで設定したインターフェイスの設定を削除
amnimo(cfg)# config file save ←設定を保存
設定を反映します。
$ sudo netplan apply
$ sudo ip link set br0 down
$ sudo ip link set br0 up
3.12.5 RAアドレス設定 #
エッジゲートウェイをDHCPv6クライアントとして設定する方法について説明します。IPv6アドレスを割り当てるインターフェイスはRAを送信するIPv6ルーターに接続されている必要があります。
netplan設定
netplanの設定ファイル(10-user-ipv6.yaml)を/etc/netplan配下に作成します。
設定例:10-user-ipv6.yaml
network:
version: 2
renderer: networkd
ethernets: # IPv6を設定しないインターフェイス(lan2, lan3)については記述しない
lan0:
optional: true # lan0の設定はamshで定義
lan1:
optional: true # lan1の設定はamshで定義
bridges:
br0:
interfaces: [lan0, lan1]
dhcp4: false
dhcp6: false # ステートフルモードのDHCPv6サーバーに接続の場合はtrue
accept-ra: true # Router Advertisementの受信を有効
mtu: 1500
optional: false
作成したファイルには次のアクセス権限を設定します。
$ sudo chmod 600 /etc/netplan/10-user-ipv6.yaml
netplanで設定するインターフェイスはamshの設定と競合しないようにconfig.yamlから削除します(ここではbr0)。
amnimo(cfg)# no interface br0 ←netplanで設定したインターフェイスの設定を削除
amnimo(cfg)# config file save ←設定を保存
設定を反映します。
$ sudo netplan apply
$ sudo ip link set br0 down
$ sudo ip link set br0 up
DNS設定
本エッジゲートウェイではamnimo-dns.service (Unbound)でIPv6名前解決を行います。
既存の設定を上書きするため/etc/unbound/unbound.conf.d/zz-user-ipv6.confを作成します。
補足: 設定ファイルはファイル名の辞書順に評価されます。ファイル名を zz- で始めることでserver_default.confのdo-ip6: no設定を上書きします。
設定例:zz-user-ipv6.conf
server:
do-ip6: yes
resolv.conf設定
amnimo-dns.service (Unbound)が提供するIPv6名前解決を使用するため、/etc/resolv.confにIPv6ローカルホストを追加します(2 行目の nameserver ::1 を追加します)。
設定例:resolv.conf
nameserver 127.0.0.1
nameserver ::1
設定を反映します。
$ sudo systemctl restart amnimo-dns.service
3.12.6 フィルター設定について #
アムニモデバイスでは、iptables(IPv4)とip6tables(IPv6)は共存して設定できます。amshやamnimo GUIによるIPv4のフィルター設定とは別にIPv6通信のフィルター設定を必要に応じて行ってください。

補足: エッジゲートウェイのlan0, lan1をブリッジインターフェイス(br0)にバインドしてIPv6通信用に使用し、残りのlan2, lan3はIPv4通信用に使用した場合を例に説明します。
注意: リンクローカルアドレスは自動生成されるためエッジゲートウェイの再起動により再起動前と異なるアドレスが設定される可能性があることに注意してください。