テレワーク中のネットワークエンジニア向けのブログとして2つ目です。 未だ出社が難しい状況がつづき、自宅で日々とスキルを磨いているネットワークエンジニアも多いのではないでしょうか。
インターネット環境での検証がしたい
前回に引き続き、擬似的なWANを仮想環境に作成し、UTMを使ったWAN部分の検証をするための機器設定についての記事です。
IPv6のIPoE及びIPv6のトンネリング
今回は、最近自宅でも導入されていることが多いと思われる、IPv6を使ったインターネット接続の疑似環境を作ってみます。 というのも、最近パートナーからのお問い合わせで多いものとして、IPv6を使ったWAN接続ができるかどうかの質問も増えてきています。 おそらくですが、IPv4のPPPoEによるNTE(Network Termination Equipment)側の遅さを回避する目的として、IPoE(IPv4 over IPv6)による回避目的が注目されているのかもしれません。
実際にインターネット回線が高速化されるかどうかはユーザーの環境に大きく依存するところが多いですが、プロバイダの契約によってはIPv6のオプションが安価なので、できることなら実装したほうが良いと思います。 また最近のUTM製品の多くに、SD-WANまたはWANの冗長化機能が標準搭載されているため、IPv4のPPPoE回線とIPv6の回線を併用することでより快適なインターネットアクセス環境を提供できる可能性があります。
通勤ができれば会社で契約しているIPv6回線の環境を利用できるかもしれませんが、自宅ではなかなかそのような物理環境を用意できないことも多いので、今回は仮想環境に簡易的なIPv6環境を作ります。
DS-Liteの疑似環境を作る
DS-Lite自体はインターネットで検索するとたくさんのブログや記事が見つかりますのでここでは詳細は記載しません。 手元でDS-Liteの検証をするための準備をします。
検証するために以下のような構成で設定を行います。
図を見ていただいた通りですが、UTMのWAN側(疑似WAN)は完全なIPv6環境を用意します。
この中にIPv6トンネル張ることでIPv4のインターネットの世界と接続するという方法です。
通常はvyatta ASAMAPとなる側はプロバイダで用意されている環境ですが、ここを自作することで手持ちのUTMやルーターでIPv6のトンネル検証ができる環境を作ることができます。
AFTR用のルータを入手と作成
AFTR(Address Family Transition Router)は通常プロバイダ側で用意する仕組みのため、一般のユーザーで設定する必要がありません。
AFTRを作るためには調べてみるとVyatta ASAMAPというのが使えるようです。 https://tools.ietf.org/html/draft-janog-softwire-report-01
Vyattaとは前回のブログで紹介したVyOSの前進のOSでブロケードコミュニケーションズに買収される前の名称です。素の状態のVyOSやVyattaではAFTRを作るための設定ができないため、この機能が搭載された、Vyatta ASAMAPというものが必要です。
イメージのダウンロードはこちらからできるようです。
MAP対応Vyatta(ASAMAP)仮置き場
ここから、vyatta-2014-03-07.isoというファイルをダウンロードして仮想マシンを作成してください。
Vyattaの基本設定
前回のブログでVyOSの基本設定と、IPv4環境の疑似PPPoEサーバーの作り方を紹介しました。 VyOSで作るPPPoEサーバーの作り方 ベースはこちらを参考にいただければ問題ありません。
必要最低限の大まかな手順は以下の通りです。
- ログインはユーザー名/パスワードは
vyatta
変更可能 - eth0は仮想環境のWAN側として、IPv4のIPアドレスを設定
- eth1は疑似WAN用のIPv6の設定
- インターフェースにMAP機能を有効化しAFTRの設定を行う
- NAT(SNAT)の設定は不要
ざっと私の環境での追加した設定情報は以下の通りです。
set interfaces ethernet eth0 address '192.168.101.202/24'
set interfaces ethernet eth0 ip 'enable-proxy-arp'
set interfaces ethernet eth1 address '2001:db8:89ab:0:1::1/64'
set interfaces map map0 br-address '2001:db8::1/64'
set interfaces map map0 default-forwarding-mode 'encapsulation'
set interfaces map map0 default-forwarding-rule 'true'
set interfaces map map0 ipv4-fragment-inner 'true'
set interfaces map map0 ipv6-fragment-size '1500'
set interfaces map map0 pool 1 pool-prefix '192.168.101.203/32'
set interfaces map map0 role 'br'
set protocols static interface-route 192.168.101.203/32 next-hop-interface 'map0'
set protocols static route 0.0.0.0/0 next-hop '192.168.101.254'
set service 'ssh'
set system time-zone 'Asia/Tokyo'
インターフェース設定
Vyattaのインターフェース設定です。 eth0がWAN側でIPv4の固定アドレス設定をしています。合わせてプロキシARPの設定をしています。 eth1が擬似WANでIPv6の設定をしています。今回はIPoEを想定しUTM側も固定IP想定で作ってみます。
set interfaces ethernet eth0 address '192.168.101.202/24'
set interfaces ethernet eth0 ip 'enable-proxy-arp'
set interfaces ethernet eth1 address '2001:db8:89ab:0:1::1/64'
MAP設定
AFTRとなるトンネルを終端しIPv4へ変換する設定です。
AFTRのアドレスを2001:db8::1
で受け付けます。UTM側のリモートエンドとして指定させるアドレスです。
またpool-prefix '192.168.101.203/32'
はIPv6のアドレスをAFTR側でCGNするための設定です。
set interfaces map map0 br-address '2001:db8::1/64'
set interfaces map map0 default-forwarding-mode 'encapsulation'
set interfaces map map0 default-forwarding-rule 'true'
set interfaces map map0 ipv4-fragment-inner 'true'
set interfaces map map0 ipv6-fragment-size '1500'
set interfaces map map0 pool 1 pool-prefix '192.168.101.203/32'
set interfaces map map0 role 'br'
ルート設定
WAN側へのデフォルトルートと、mapへのルートを設定しています。
set protocols static interface-route 192.168.101.203/32 next-hop-interface 'map0'
set protocols static route 0.0.0.0/0 next-hop '192.168.101.254'
概要的なお話をせずに、単純な検証用のAFTRを作るだけなら以外と簡単にできると思います。 ここまで環境が用意できれば、あとはDS-Liteに対応したUTMやルーターを用意して接続検証を行ってください。
DS-Liteの設定編
ここからは、実際にUTM/NGFWを持ち込んでAFTRとの接続確認を実施してみたいと思います。 用意したのは、仮想環境でも使いやすいSophos XG FirewallとFortiGate VM(NGFW)です。
基本的にはどの製品でも同じような設定を行います。 設定のポイントとしては以下の通りです。
- WANインターフェースへIPv6アドレスの設定
- IPv6トンネルを設定(メーカーによって名称が異なる場合があります)
- IPv4のルートをIPv6トンネルインターフェースをネクストホップインターフェースとする設定
- ファイアウォールポリシーで許可する設定(NATの設定は不要)
Sophos XG Firewall
今なら90日間無償利用可能なので、UTMの検証をやってみたいユーザーにはおすすめしやすいです。 Sophos XG Firewall 無償評価版 バージョンはSFOS 17.5.12 MR-12で確認
ネットワーク設定
IPv6トンネル設定
4in6トンネルで設定を行う
ルーティング設定
必要に応じてIPv4デフォルトルートをIPトンネルへ設定
ファイアウォール設定
LANからWANへのルールを設定
通信の確認
ログビューワーを起動して、IPv6トンネルを経由しているか確認します。
Fortinet FortiGate VM(NGFW)
FortiGate VMを利用する場合トライアル利用であっても評価ライセンスの発行が必要です。 ただし、15日間であればVM00として無償評価です。 バージョンはFortiOS6.0.9で確認
IPv6の機能を有効化
ネットワーク設定
IPv6トンネル設定(要CLI設定)
config system ipv6-tunnel
edit "tunnel-interface Name"
set source "WAN IPv6 address"
set destination "Tunnel Address"
set interface "WAN Port"
ルーティング設定
必要に応じてIPv4デフォルトルートをIPv6トンネルへ設定
ファイアウォール設定
LANからトンネルインターフェースへのルールを設定
トンネルの確認
diag ipv6 ipv6-tunnel list
Vyatta 確認
Vyatta側でmapの機能が動作しているか以下のコマンドで確認してみましょう。
show interfaces map map0 napt
出力例:
vyatta@vyatta:~$ sho interfaces map map0 napt
Proto: 'I' = ICMP, 'T' = TCP, 'U' = UDP.
Flags: SynOut, SynAckIn, AckOut, FinOut, FinAckIn, FinIn, FinAckOut, Rst.
'!' = Up, '.' = Down.
Last used, Local IPv6 address, Local address:port, Mapped address:port, Remote address:port, Proto, Flags.
12:40:33 2001:db8:89ab:0:1::2 172.16.16.11:54498 192.168.101.203:(0xea4d)59981 180.42.XX.XX:58907 U ........
12:40:30 2001:db8:89ab:0:1::2 172.16.16.11:59005 192.168.101.203:(0xf5fc)62972 216.58.XX.XX:443 T !!!.....
12:40:28 2001:db8:89ab:0:1::2 172.16.16.11:54498 192.168.101.203:(0xea4d)59981 74.125.XX.XX:3478 U ........
12:40:26 2001:db8:89ab:0:1::2 172.16.16.11:57489 192.168.101.203:(0xcbae)52142 64.233.XX.XX:5228 T !!!.....
12:40:25 2001:db8:89ab:0:1::2 172.16.16.11:59089 192.168.101.203:(0xd3c4)54212 52.229.XX.XX:443 T !!!!!!!.
環境とことなるかもしれませんが、上記の変換テーブルを見ると、UTM内のローカルアドレスが変換されていることがわかります。(172.16.16.11) UTMのWAN側にIPv4アドレスを設定せず、更にファイアウォール上でNAPT(IPマスカレード)の設定をしていないので、アドレスが変換されずに通信している状態です。
まとめ
ドキュメントや仕様書で機能上問題なくても、メーカーの製品によっては設定方法や表現が異なる場合があります。 一度設置するとなかなか、設定変更するわけではないので、どうしても設置経験が少なくなり、その結果詳細な設定方法がわからず、不安になることがあります。 社内でしっかり検証ができれば、自信をもって、ユーザー先での導入を進めたり、新しい製品の取り扱いにも使えると思います。 単純なIPoE(DS-Lite)の接続検証だけでなく、IPv4とIPv6の冗長回線を使ったSD-WAN検証や複数の拠点間アクセスにも使えるので、WANを使った新しい提案にご活用できるかと思います。
なお、今回構築した環境はあくまでも疑似環境です。実際のプロバイダが提供するIPoE環境やDS-Liteの環境とは仕様上異なる場合があるのでご注意ください。
参考文献
【Stay Home 特集】 テレワーク中のNWエンジニアのための検証環境を作る
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部
宮本 世華
釣りが好きです。