# 設定例集#44: フレッツ 光ネクスト IPv6インターネット接続（IPv6 IPoE、DHCPv6 PD方式）

NTT東日本・NTT西日本が提供するフレッツ 光ネクスト回線を利用し、IPv6 IPoE接続によってIPv6インターネットに接続するための設定例です。IPoE接続ではひかり電話の契約有無によってIPv6アドレスの設定方法（IPv6プレフィックスの取得方法）が異なります。本構成はひかり電話を契約している場合の設定例です。

## 構成

ルーターの基本設定
WAN側物理インターフェース | eth1
WAN側（eth1）IPv6アドレス | リンクローカルアドレス
LAN側（vlan1）IPv6アドレス | DHCPv6 PDで取得したIPv6プレフィックスにもとづいて設定

ここでは、次の方針で設定を行います。

- ルーターのWAN側インターフェース（eth1）で受信したDHCPv6 PDパケットのIPv6プレフィックスにもとづいてLAN側インターフェース（vlan1）にIPv6アドレスを設定します。WAN側インターフェースではリンクローカルアドレスを使用します。
- 受信したDHCPv6 PDの送信元IPv6アドレスをIPv6のデフォルトゲートウェイとして登録し、ひかり電話から送信されるルーター通知（RA）パケットをデフォルトゲートウェイとして登録しないようにします。
- DHCPv6でDNSサーバーアドレスを取得します。
- LAN側に接続されたコンピューターは、本製品のLAN側インターフェースから送信されるRAによってIPv6アドレス、デフォルトゲートウェイ、DNSサーバーアドレスを自動設定します。
- ルーターのDNSリレー機能をオンにして、LAN側コンピューターからのDNSリクエストをDNSサーバーに転送します。
- ファイアウォールを利用して、外部からの不正アクセスを遮断しつつ、内部からは自由にIPv6インターネット、サービス情報サイト（NGN IPv6閉域網）へのアクセスができるようにします。

## 設定開始前に

### 自動設定の確認と削除

本設定例に掲載されているコマンドは、設定がまったく行われていない本製品の初期状態（スタートアップコンフィグなしで起動した状態）から入力することを前提としています。
そのため、通常は erase startup-config を実行し、スタートアップコンフィグが存在しない状態で起動してから、設定を始めてください。
ただし、本製品はスタートアップコンフィグなしで起動した場合でも、特定の条件を満たすと自動的な設定を行うことがあるため、その場合は設定例にしたがってコマンドを入力しても、コマンドがエラーになったり、全体として意図した動作にならない可能性があります。
これを避けるため、設定開始にあたっては次のいずれかの方法をとることをおすすめします。

- ネットワークケーブルを接続せずに起動する。
  起動時に自動設定が実行されるための条件の一つに、特定インターフェースのリンクアップがあります。
  ネットワークケーブルを接続しない状態で起動することにより、自動設定の適用を回避できます。
- 自動設定を手動で削除してから設定を行う。
  前記の方法を採用できず自動設定が適用されてしまった場合は、「自動的な設定内容の削除」にしたがって、これらを手動で削除してから設定を開始してください。

自動設定が行われる条件などの詳細については、AMF応用編のAMFネットワーク未検出時の拡張動作をご参照ください。

### システム時刻の設定

ログなどの記録日時を正確に保ち、各種機能を適切に動作させるため、システム時刻は正確にあわせて運用することをおすすめします。
ご使用の環境にあわせ、次のいずれかの方法でシステム時刻を設定してください。

- 手動で設定する方法 - 「運用・管理」/「システム」
- NTPで自動設定する方法 - 「運用・管理」/「NTP」

## ルーターの設定

1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル（RSTP）を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
   スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。

       no spanning-tree rstp enable

2. DNS問い合わせ機能を有効にします。これには、ip domain-lookupコマンドを使います。

       ip domain-lookup

3. WANポートeth1上でDHCPv6 PDクライアントを有効にします。初期設定で有効になっているRAによるアドレス自動設定（SLAAC）を無効化し、また、IPv6のデフォルト経路をルーター通知（RA）パケットの送信元ではなく、DHCPv6サーバーに向けるよう設定します。これには、ipv6 nd accept-ra-pinfo、ipv6 nd accept-ra-default-routes、ipv6 dhcp client pdコマンドを使います。
   DHCPv6 PDクライアントの詳細は「IPv6」/「IPv6インターフェース」をご覧ください。

       interface eth1
        no ipv6 nd accept-ra-pinfo
        no ipv6 nd accept-ra-default-routes
        ipv6 dhcp client pd IPoE default-route-to-server

4. LAN側インターフェースvlan1でIPv6を有効にし、DHCPv6 PDで割り当てられたIPv6プレフィックスにもとづくIPv6アドレスを設定します。そのため、初期設定で有効になっているRAによるアドレス自動設定（SLAAC）は無効化します。これにはipv6 nd accept-ra-pinfo、ipv6 address(DHCPv6 PD)コマンドを使います。
   また、LAN側クライアントにIPv6アドレスと設定情報を通知するため、RAの送信を有効にします。これには、ipv6 nd suppress-ra、ipv6 nd dns-serverコマンドを使います。
   IPv6インターフェースの詳細は「IPv6」/「IPv6インターフェース」をご覧ください。

       interface vlan1
        no ipv6 nd suppress-ra
        no ipv6 nd accept-ra-pinfo
        ipv6 address IPoE ::1/64 eui64
        ipv6 nd dns-server vlan1

5. IPv6パケット転送機能を有効化します。これにはipv6 forwardingコマンドを使います。

       ipv6 forwarding

6. ファイアウォールのルール作成時に使うエンティティー（通信主体）を定義します。
   エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
   外部ネットワークを表すゾーン「ngn」を作成します。
   これには、zone、network、ipv6 subnet、host、ipv6 addressの各コマンドを使います。

       zone ngn
        network wan_ipv6
         ipv6 subnet ::/0 interface eth1
         host eth1
          ipv6 address dynamic interface eth1

7. 内部ネットワークを表すゾーン「private_ipv6」を作成します。

       zone private_ipv6
        network lan
         ipv6 subnet ::/0 interface vlan1
         host vlan1
          ipv6 address dynamic interface vlan1

8. ファイアウォールのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
   これには、application、protocol、dport、sportの各コマンドを使います。
   アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。
   DHCPv6パケット（クライアント着）を表すカスタムアプリケーション「dhcpv6-r」を定義します。

       application dhcpv6-r
        protocol udp
        dport 546

9. DHCPv6パケット（クライアント発）を表すカスタムアプリケーション「dhcpv6-s」を定義します。

       application dhcpv6-s
        protocol udp
        sport 546

10. ICMPv6パケットを表すカスタムアプリケーション「icmpv6」を定義します。

        application icmpv6
         protocol ipv6-icmp

11. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewall、rule、protectの各コマンドを使います。
    ・rule 10 - 内部から内部への通信を許可します（ここでは本製品・端末間の通信）
    ・rule 20 - 内部から外部への通信を許可します
    ・rule 30 - 本製品（LAN側インターフェースに設定したアドレス）から外部へのDNS通信を許可します
    ・rule 40, 50 - 本製品（LAN側インターフェースに設定したアドレス）・外部間でのICMP通信を許可します
    ・rule 60, 70 - 本製品（WAN側インターフェースのリンクローカルアドレス）・外部DHCPv6サーバー間でのDHCPv6通信を許可します
    ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。

        firewall
         rule 10 permit any from private_ipv6 to private_ipv6
         rule 20 permit any from private_ipv6 to ngn
         rule 30 permit dns from private_ipv6.lan.vlan1 to ngn
         rule 40 permit icmpv6 from private_ipv6.lan.vlan1 to ngn
         rule 50 permit icmpv6 from ngn to private_ipv6.lan.vlan1
         rule 60 permit dhcpv6-s from ngn.wan_ipv6.eth1 to ngn
         rule 70 permit dhcpv6-r from ngn to ngn.wan_ipv6.eth1
         protect

12. DNSリレー機能を有効にします。これには、ip dns forwardingコマンドを使います。
    DNSリレー機能の詳細は「IP付加機能」/「DNSリレー」をご覧ください。

        ip dns forwarding

13. 以上で設定は完了です。

        end

## 設定の保存

設定が完了したら、現在の設定内容を起動時コンフィグとして保存してください。これには、copyコマンドを「`copy running-config startup-config`」の書式で実行します。

    awplus# copy running-config startup-config
    Building configuration...
    [OK]

また、write fileコマンド、write memoryコマンドでも同じことができます。

    awplus# write memory
    Building configuration...
    [OK]

その他、設定保存の詳細については「運用・管理」/「コンフィグレーション」をご覧ください。

## ファイアウォールログについて

ファイアウォールのログをとるには、次のコマンド（log(filter)）を実行します。

    awplus(config)# log buffered level informational facility local5

記録されたログを見るには、次のコマンド（show log）を実行します。ここでは、ファイアウォールが出力したログメッセージだけを表示させています。

    awplus# show log | include Firewall

## ルーターのコンフィグ

    !
    no spanning-tree rstp enable
    !
    ip domain-lookup
    !
    interface eth1
     no ipv6 nd accept-ra-pinfo
     no ipv6 nd accept-ra-default-routes
     ipv6 dhcp client pd IPoE default-route-to-server
    !
    interface vlan1
     no ipv6 nd suppress-ra
     no ipv6 nd accept-ra-pinfo
     ipv6 address IPoE ::1/64 eui64
     ipv6 nd dns-server vlan1
    !
    ipv6 forwarding
    !
    zone ngn
     network wan_ipv6
      ipv6 subnet ::/0 interface eth1
      host eth1
       ipv6 address dynamic interface eth1
    !
    zone private_ipv6
     network lan
      ipv6 subnet ::/0 interface vlan1
      host vlan1
       ipv6 address dynamic interface vlan1
    !
    application dhcpv6-r
     protocol udp
     dport 546
    !
    application dhcpv6-s
     protocol udp
     sport 546
    !
    application icmpv6
     protocol ipv6-icmp
    !
    firewall
     rule 10 permit any from private_ipv6 to private_ipv6
     rule 20 permit any from private_ipv6 to ngn
     rule 30 permit dns from private_ipv6.lan.vlan1 to ngn
     rule 40 permit icmpv6 from private_ipv6.lan.vlan1 to ngn
     rule 50 permit icmpv6 from ngn to private_ipv6.lan.vlan1
     rule 60 permit dhcpv6-s from ngn.wan_ipv6.eth1 to ngn
     rule 70 permit dhcpv6-r from ngn to ngn.wan_ipv6.eth1
     protect
    !
    ip dns forwarding
    !
    end