3.13 RA/DHCPv6サーバー設定 #
対象機種: AX30 / AX11 / AX21 / AG10 / AG20 / AR10 / AR20
本節ではエッジゲートウェイをRA/DHCPv6サーバー(radvd + isc-dhcp-server6.service)として運用するための設定(ステートレスモードとステートフルモード)について説明します。
IPv6の概要については『3.12.1 IPv6の特徴と種類』も参照ください。
IPv6を使用するインターフェイスのリンクアップ/ダウンに同期してIPv6の有効化/無効化が行われるようにスクリプトファイルを配置します。詳細は『3.12.2 リンク状態同期IPv6制御スクリプト』を参照ください。
補足: エッジゲートウェイのlan0, lan1をブリッジインターフェイス(br0)にバインドしてIPv6通信用に使用し、残りのlan2, lan3はIPv4通信用に使用した場合を例に説明します。
サーバー自身でIPv6名前解決を行う場合は、『3.12.5 RAアドレス設定』のDNS設定およびresolv.conf設定を参照してください。
3.13.1 ステートレスモード #
エッジゲートウェイをRA/DHCPv6サーバー(ステートレスモード)として運用するための設定について説明します。
説明の前提としてアドレスを配布するエッジゲートウェイとクライアントは次のサブネットを持つこととします。(環境に応じて読み替えてください)
fd12:3456:789a:1::/64
サブネットおよびエッジゲートウェイのブリッジインターフェイス(br0)には『3.12.4 固定IPアドレス設定』で説明した方法で生成したサブネットおよびアドレスを設定します。
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:
- fd12:3456:789a:1::10/64 # 生成したユニークローカルアドレスを設定
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 ←設定を保存
radvd.conf設定
/etc/radvd.confを編集します。
設定例:radvd.conf
interface br0
{
AdvSendAdvert on;
AdvManagedFlag off; # クライアントにDHCPv6でアドレスを取得させない
AdvOtherConfigFlag on; # DNSなどの追加情報をDHCPv6から取得させる
prefix fd12:3456:789a:1::/64
{
AdvOnLink on;
AdvAutonomous on; # SLAAC 有効
};
};
dhcpd6.conf設定
/etc/dhcp/dhcpd6.confを編集します。
設定例:dhcpd6.conf
subnet6 fd12:3456:789a:1::/64 { # 配布するアドレスのサブネット
# アドレス範囲は指定しない(SLAACが担当)
# オプション情報のみ提供(DNS, SNTP)
option dhcp6.name-servers fd12:3456:789a:1::1;
option dhcp6.domain-search "example.com";
option dhcp6.sntp-servers fd12:3456:789a:1::10;
}
override.conf設定
/etc/systemd/system/isc-dhcp-server6.service.d/override.confを編集します。
$ sudo mkdir -p /etc/systemd/system/isc-dhcp-server6.service.d
設定例:override.conf
[Unit]
# amnmo-amsrv.serviceとの競合を避けるため After を設定します
After=systemd-networkd.service amnimo-amsrv.service
Wants=systemd-networkd.service
[Service]
EnvironmentFile=/etc/default/isc-dhcp-server6
# DHCPv6サーバーの起動前に、
# アドレスを配布するインターフェイス自身のアドレス設定を強制する
ExecStartPre=/usr/bin/networkctl reconfigure br0
isc-dhcp-server6設定
/etc/default/isc-dhcp-server6を編集します。
設定例:isc-dhcp-server6
DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf
DHCPDv6_PID=/var/run/dhcp-server6/dhcpd6.pid
OPTIONS=""
INTERFACESv6="br0" # アドレスを配布するインターフェイスを指定
RA/DHCPv6サービスの起動
isc-dhcp-server6.serviceを起動します。
エッジゲートウェイではデフォルトでmaskされているためunmaskが必要です。
$ sudo systemctl unmask isc-dhcp-server6.service
$ sudo systemctl start isc-dhcp-server6.service
radvdをインストールし、起動および有効化します。
$ sudo apt update
$ sudo apt install radvd
$ sudo systemctl restart radvd
$ sudo systemctl enable radvd
3.13.2 ステートフルモード #
エッジゲートウェイをRA/DHCPv6サーバー(ステートフルモード)として運用するための設定について説明します。
説明の前提としてアドレスを配布するエッジゲートウェイとクライアントは次のサブネットを持つこととします。(環境に応じて読み替えてください)
fd12:3456:789a:1::/64
サブネットおよびエッジゲートウェイのブリッジインターフェイス(br0)には『3.12.4 固定IPアドレス設定』で説明した方法で生成したサブネットおよびアドレスを設定します。
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:
- fd12:3456:789a:1::10/64 # 生成したユニークローカルアドレスを設定
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 ←設定を保存
radvd.conf設定
/etc/radvd.confを編集します。
設定例:radvd.conf
interface br0
{
AdvSendAdvert on;
AdvManagedFlag on; # DHCPv6 クライアントにアドレスを要求させる
prefix fd12:3456:789a:1::/64
{
AdvOnLink on;
AdvAutonomous off; # SLAACを無効(DHCPv6のみ使用)
};
};
dhcpd6.conf設定
/etc/dhcp/dhcpd6.confを編集します。
設定例:dhcpd6.conf
subnet6 fd12:3456:789a:1::/64 { # 配布するアドレスのサブネット
range6 fd12:3456:789a:1::30 fd12:3456:789a:1::33; # 配布するアドレス範囲
option dhcp6.name-servers fd12:3456:789a:1::1;
option dhcp6.domain-search "example.com";
option dhcp6.sntp-servers fd12:3456:789a:1::10;
}
override.conf設定
/etc/systemd/system/isc-dhcp-server6.service.d/override.confを編集します。
$ sudo mkdir -p /etc/systemd/system/isc-dhcp-server6.service.d
設定例:override.conf
[Unit]
# amnmo-amsrv.serviceとの競合を避けるため After を設定します
After=systemd-networkd.service amnimo-amsrv.service
Wants=systemd-networkd.service
[Service]
EnvironmentFile=/etc/default/isc-dhcp-server6
# DHCPv6サーバーの起動前に、
# アドレスを配布するインターフェイス自身のアドレス設定を強制する
ExecStartPre=/usr/bin/networkctl reconfigure br0
isc-dhcp-server6設定
/etc/default/isc-dhcp-server6を編集します。
設定例:isc-dhcp-server6
DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf
DHCPDv6_PID=/var/run/dhcp-server6/dhcpd6.pid
OPTIONS=""
INTERFACESv6="br0" # アドレスを配布するインターフェイスを指定
RA/DHCPv6サービスの起動
isc-dhcp-server6.serviceを起動します。
エッジゲートウェイではデフォルトでmaskされているためunmaskが必要です。
$ sudo systemctl unmask isc-dhcp-server6.service
$ sudo systemctl start isc-dhcp-server6.service
radvdをインストールし、起動および有効化します。
$ sudo apt update
$ sudo apt install radvd
$ sudo systemctl restart radvd
$ sudo systemctl enable radvd

補足: エッジゲートウェイのlan0, lan1をブリッジインターフェイス(br0)にバインドしてIPv6通信用に使用し、残りのlan2, lan3はIPv4通信用に使用した場合を例に説明します。