designetwork

ネットワークを軸としたIT技術メモ

Cisco ASA5505でフレッツ光インターネットにIPv6接続しNAPT通信する

f:id:daichi703n:20170826234810p:plain

自宅フレッツ光インターネットの速度が遅く不満が大きくなってきたため、改善を狙ってIPv6を導入してみる。プロバイダの変更も検討したが、取り急ぎIPv6の追加を試す。Cisco ASAを継続利用するため制約事項はあるが、最低限のIPv6環境を構築することができた。

設定ポイントはこちら

2017/9/3 追記

ZOOT NATIVEのDS-Liteを使用し始めました。

designetwork.hatenablog.com

自宅ネットワーク概要

自宅ネットワークの概要は以下の通り。従来のPPPoE IPv4接続に加えて、IPv6(IPoE)オプションを追加して使用する。

  • @nifty+フレッツ IPv6接続オプション(プロバイダ/無料オプション追加)
  • ASA5505(インターネットPPPoEルータ/FW)
  • Cat2960+AIR1141(PC/サーバ接続)

本当はIPv6プラスを使用して、IPv4 over IPv6 (JPNEなのでMAP-E)接続したいのだが、Cisco ASAでは使用不可...

対応機器リストはこちら

csoption.nifty.com

csoption.nifty.com

Cisco ASA5505のIPv6設定

こちらを参考にIPv6の設定を追加した。

Cisco ASA: IPv6 Quick Start - Cisco Support Community

基本的なフレッツPPPoE設定にIPv6(IPoE)の設定を追加していく。追加部分に+を付けているためコピペしづらいですがご了承ください。

InterfaceでのIPv6有効化・IPv6アドレス取得

Vlan1が自宅内ネットワーク、Vlan99がインターネットとしている。インターネット側はISPからの自動割り当て、内部側はユニークローカルアドレスとする。(ユニークローカル使用理由は後述)

interface Vlan1
 nameif management
 security-level 100
 ip address 192.168.1.5 255.255.255.0 
+ ipv6 address fd00:1::/64 eui-64
+ ipv6 address autoconfig
+ ipv6 enable
+ ipv6 nd ra-interval 30
!
interface Vlan99
 description internet
 nameif outside
 security-level 0
 pppoe client vpdn group nifty
 ip address pppoe setroute 
+ ipv6 address autoconfig
+ ipv6 enable

IPv6アドレス取得確認

上記インタフェース設定でIPv6アドレスが取得できることを確認する。

それぞれリンクローカルアドレスが生成されていることが分かる。また、Vlan1(management)ではユニークローカルアドレスを設定できている。そして、Vlan99(outside)では、ISPから割り当てられたグローバルユニキャストアドレスが取得できている。IPv6アドレスはサブネット単位で割り当てられ、私の環境(@nifty IPv6接続オプション)では/64のIPv6アドレスレンジをもらえている。

ASA5505# sh ipv6 interface
management is up, line protocol is up
  IPv6 is enabled, link-local address is fe80::xxxx:xxxx:xxxx:xxxx
  Global unicast address(es):
    fd00:1::xxxx:xxxx:xxxx:xxxx, subnet is fd00:1::/64
  Joined group address(es):
    ff02::1:xxxx:xxxx
    ff02::2
    ff02::1
  <snip>
outside is up, line protocol is up
  IPv6 is enabled, link-local address is fe80::xxxx:xxxx:xxxx:xxxx
  Global unicast address(es):
    240b:10:XXXX:XXXX:xxxx:xxxx:xxxx:xxxx, subnet is 240b:10:XXXX:XXXX::/64 [AUTOCONFIG]
      valid lifetime 2591870 preferred lifetime 604670
  Joined group address(es):
    ff02::1:xxxx:xxxx
    ff02::2
    ff02::1
  <snip>

AP・SW経由で接続しているMacBookでも、以下の通り、ASAからのRAを元にIPv6アドレスを生成できている。また、netstat -nrで、IPv6ゲートウェイ情報も登録されていることが確認できる。(route addが必要だったかも...記憶とログがあやしい...)

MacBook$ ifconfig en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether xx:xx:xx:xx:xx:xx
    inet6 fe80::aa:xxxx:xxxx:xxxx%en0 prefixlen 64 secured scopeid 0x4
    inet6 fd00:1::xxxx:xxxx:xxxx:xxxx prefixlen 64 autoconf secured
    inet6 fd00:1::xxxx:xxxx:xxxx:xxxx prefixlen 64 autoconf temporary
    inet 192.168.1.105 netmask 0xffffff00 broadcast 192.168.1.255
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active
MacBook$
MacBook$ netstat -rn
Routing tables

Internet6:
Destination    Gateway                         Flags    Netif Expire
default        fe80::xxxx:xxxx:xxxx:xxxx%en0   UGc        en0
default        fe80::%utun0                    UGcI     utun0
::1            ::1                             UHL        lo0

インターネット向けIPv6ルーティング設定

ASAでインターネット向けIPv6ルーティング設定をするために、ISP対向装置のIPv6アドレスを取得する。show ipv6 neighborコマンドでinterface: outsideで認識されているアドレスがISP対向装置のIPv6アドレスになっている。

ASA5505# show ipv6 neighbor 
IPv6 Address               Age Link-layer Addr State Interface
fe80::221:d8ff:fe9a:xxxx     1 0021.d89a.xxxx  STALE outside
fe80::9e5c:f9ff:fe23:xxxx    1 9c5c.f923.xxxx  STALE management

確認したISPIPv6アドレス宛にIPv6デフォルトルートを設定する。

+ ipv6 route outside ::/0 fe80::221:d8ff:fe9a:xxxx

IPv6 NAPT設定

自宅IPv6 LANからインターネットへのアクセスは、従来のIPv4と同様にNAPT(PAT)で通信させる。理由は、通常のセキュリティ対策に加え、ASAの機器仕様でLAN内でISPから割り当てられたグローバルアドレスを使用できないという制約より。

ユニークローカルアドレスレンジからの通信をoutsideインタフェースのIPv6アドレスにNAPTするように設定する。

object-group network Internet-PAT
 description internet
 network-object 192.168.0.0 255.255.0.0
nat (management,outside) source dynamic Internet-PAT interface
+ object network inside_v6
+  subnet fd00:1::/64
+  nat (management,outside) dynamic interface ipv6

(参考) www.cisco.com

Cisco ASAはIPv6ブリッジをサポートしていない

IPv6環境は、本来はNATなしでPCでもグローバルアドレスを使用するように設計されている。ISPからの割り当てを受ける際には、DHCPv6-PD(prefix delegation)を使用することになる。

IPv6アドレッシングに関してはこちらを参照 www.infraexpert.com

このDHCPv6-PDで必要となるIPv6ブリッジをASAではサポートしていない。 supportforums.cisco.com

そのため、代替手段としてインターネットアクセスには従来と同様の考え方でIPv6 NAPTを適用する。

動作確認・スピードテスト

LAN内のPC(MacBook)からIPv6でのインターネットアクセスを確認する。こちらのサイトでIPv6での接続情報を確認する。

test-ipv6.com

以下の通り、IPv6でインターネットにアクセスできている。

f:id:daichi703n:20170823015111p:plain

スピードテストの適切なサイトが分からずアメリカ宛だが、スピードテストではIPv4: 5Mbps, IPv6: 29Mbpsと、約6倍の通信速度となった。

f:id:daichi703n:20170823015012p:plain

(参考)IPv6動作確認先はこちらを参照
DS-Lite 接続確認機種情報 - インターネットマルチフィード

ちなみに、@nifty(フレッツ)のIPv6はIPoEなので、MacBookを直接ONUに接続するだけでIPv6通信が可能となる。

IPv4 over IPv6は未設定

今回の設定はIPv6インターネットに接続する設定のみで、DS-LiteのようなIPv4 over IPv6トンネルの設定はしていないため、高速化対象はIPv6対応サイトのみであまり効果がない…

まとめ - Cisco ASA5505でインターネットにIPv6接続しNAPT通信する

Cisco ASA5505にIPv6の各種設定を追加して、インターネットにIPoEでIPv6接続し、NAPTによりLAN-PCからもIPv6通信ができるようにした。これにより、IPv6対応サイトのみにはなるが、高速インターネットアクセスが可能となった。

ご契約のプロバイダでのパラメータを確認の上お試しください。

追加設定(抜粋)

interface Vlan1
 nameif management
 security-level 100
 ip address 192.168.1.5 255.255.255.0 
+ ipv6 address fd00:1::/64 eui-64
+ ipv6 address autoconfig
+ ipv6 enable
+ ipv6 nd ra-interval 30
!
interface Vlan99
 description internet
 nameif outside
 security-level 0
 pppoe client vpdn group nifty
 ip address pppoe setroute 
+ ipv6 address autoconfig
+ ipv6 enable
!
+ ipv6 route outside ::/0 fe80::221:d8ff:fe9a:xxxx
!
object-group network Internet-PAT
 description internet
 network-object 192.168.0.0 255.255.0.0
nat (management,outside) source dynamic Internet-PAT interface
+ object network inside_v6
+  subnet fd00:1::/64
+  nat (management,outside) dynamic interface ipv6