LoginSignup
2
5

More than 3 years have passed since last update.

Fortigate(6.0.5)でフレッツ光ネクストのIPv6(NonInternet)経由でVPNを張ってみる

Last updated at Posted at 2019-07-09

やりたいこと

NTT西日本管内の2箇所にあるフレッツ光ネクスト回線を使って,フレッツ網内のIPv6だけで,Site-to-SiteのIPsec VPN(v4 over v6)を張ってみる。

環境

  • 拠点1: フレッツ光ネクスト隼,ISPのIPoEオプションを使ってグローバルIPv6の世界を泳げる。
  • 拠点2: フレッツ光ネクストマンション対応,ISPのIPoEオプション無し,フレッツ払い出しのIPv6のみ。グローバルIPv6の世界を泳げない。フレッツ網内でのユーザ間IPv6通信をするために,v6オプションを申し込んでおく必要があります。
  • 機材:ヤフオクで仕入れたFortigate60D×2台。ありがたいことにサポートが残っていたのでファームを6.0.5まで上げて,execute factoryreset。

参考にしたURL

はまったこと

どうやら,同一の物理インタフェースでPPPoEとIPsec用のインタフェースを同居させると,トンネルは張られているように見えるがIPsecのパケット(ESP)が送出されないというバグ?を踏んでしまったらしい。(tunnelをパケットキャプチャすると送出されているが,物理IFのキャプチャではESPパケットが出ていない,と言うことを確認した)
なので,WAN1をIPsec用,WAN2をPPPoE用と完全に使い分けました。

遅延は?

京都~岡山間のRTTはおおむね16ms~19msと,かなり優秀。

FortigateのIPv6対応

  • GUIでIPv6アドレスを入力できないと事がかなりある。CLI必須(独特なので,慣れるまで大変)
  • DHCPv6との相性が悪い?https://help.fortinet.com/fos50hlp/54/Content/FortiOS/fortigate-whats-new-54/FeatureCatalog-ipv6.htm を参考にDHCPv6-PDの設定をしてみたが,diag ipv6 [address | route] listでアドレスを取得している形跡がない。(でもHGWのDHCPv6クライアント一覧には出てくるという不思議。片思いになっている?)

物理的な接続

  • 拠点1:HGWのLANと,FortigateのWAN1を接続。VPN専用なのでPPPoEは未設定
  • 拠点2:HGWのLANと,FortigateのWAN1を接続(IPv6&IPsec用)。HGWのLANとWAN2を接続(IPv4のPPPoE用)。2台の機材を2本のケーブルで接続するちょっと不思議な構成

HGWで対向のIPv6アドレスからのパケットを許可する(両拠点とも)。

  • HGWの「IPv6パケットフィルタ設定(IPoE)」で,対向側からのパケット受信を許可します。 image.png

FortigateのWAN1インタフェース設定

  • HGWの管理画面を見て,割当てられたプレフィックスを確認します。/60で,Fortiの固定IPv6アドレスを決めます。
  • GUIで,固定のIPv6を設定します。DHCPだとHGWからIPv6アドレスを取得してくれないようですし,対向側の設定をするとき面倒です。
  • IPv6のデフォルトゲートウェイ設定は,HGWのグローバルアドレスを指定してください(HGWのリンクローカルアドレスを指定してもつながるようでした)。HGWの管理画面の「DHCPv6サーバ払い出し状況」で確認できる「DNSサーバアドレス」がHGWのグローバルIPv6アドレスです。
  • アドレス設定後はIPv6をしゃべれるPCからPingでテストしておきます。対向のFortigateから「execute ping6 2400:ほげ:1234」でPingがつながることを確認します。 image.png

IPsecトンネルの作成(Phase1・Phase2設定)

  • コマンドラインで設定します。
  • 拠点AのConfig
set vpn ipsec phase1-interface
    edit "toB"
        set interface "wan1"
        set ip-version 6
        set peertype any
        set proposal aes128-sha256 aes256-sha256 aes128-sha1 aes256-sha1
        set dpd disable
        set comments "to B"
        set remote-gw6 対向側FortigateBのWAN1のIPv6アドレス
        set psksecret IPsec接続パスワード(対向とあわせる)
    next
end
set vpn ipsec phase2-interface
    edit "toB2"
        set phase1name "toB"
        set proposal aes128-sha1 aes256-sha1 aes128-sha256 aes256-sha256
        set auto-negotiate enable
        set src-addr-type name
        set dst-addr-type name
        set src-name "all"
        set dst-name "all"
    next
end
  • 拠点BのConfig
set vpn ipsec phase1-interface
    edit "toA"
        set interface "wan1"
        set ip-version 6
        set peertype any
        set proposal aes128-sha256 aes256-sha256 aes128-sha1 aes256-sha1
        set dpd disable
        set comments "to A"
        set remote-gw6 対向側FortigateAのWAN1のIPv6アドレス
        set psksecret IPsec接続パスワード(対向とあわせる)
    next
end
set vpn ipsec phase2-interface
    edit "toA2"
        set phase1name "toA"
        set proposal aes128-sha1 aes256-sha1 aes128-sha256 aes256-sha256
        set auto-negotiate enable
        set src-addr-type name
        set dst-addr-type name
        set src-name "all"
        set dst-name "all"
    next
end
  • 設定が正しければ,この時点でIPsecトンネルが確立するはず。モニタ>IPsecモニタで,トンネルが確立したことを確認する(緑の↑矢印が出ればOK。赤い×印は未確立) image.png

ポリシー設定

  • ポリシー&オブジェクト>IPv4ポリシーで,2つポリシーを作る。一つはトンネル→Internal,もう一つはInternal→トンネルの許可。ポイントは,インタフェース名にphase1で作った名前を指定する(今回はtoB) ことと,NATを無効化すること。

    image.pngimage.png

  • 対向側のFortigateBも同様の設定を行う。

スタティックルート設定

  • 対向側のサブネットへのルーティングを設定する。「ネットワーク>スタティックルート」

    image.png

  • 対向側のFortigateBも同様の設定を行う。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5