0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Fortigate(その2:VXLAN under NAT)

Posted at

NAT環境下の拠点間接続時の同一ネットワーク(VXLAN over IPsec under NAT)

その1」の続き。NAT環境下の拠点間接続時に同一ネットワークを実現する。調査及びトライ&エラーの結果、IPsec+NATトラバーサルを使わざるを得ないようであった。

ネットワーク

下記のようなネットワーク構成。中央にNATが存在し、左が内側、右が外側である。末端のPCどうしが同一ネットワークに属する。
VXLANoverIPsec.png

設定

各種項目作成については、「その1」も参照されたし。特記事項がなければ、基本的に左側のForigateの設定を記載している。

ループバック(Loopback)

後述するVXLANの宛先として、Loopback IPアドレスを作成する。
NetworkInterface_CreateLoopback.PNG
ここでは、左側FortigateのLoopback IPアドレスとして”1.1.1.1”、右側FortigateのLoopback IPアドレスとして”1.1.1.2”を用いる。

VXLAN

CLIによる作成。VNIとして、10を用いる。これは、双方のFortigateで同じ値。

FG1 (vxlan) # show
config system vxlan
    edit "vxlan"
        set interface "Lo"
        set vni 10
        set remote-ip "1.1.1.2"
    next
end

ソフトウェアスイッチ(Bridge)

ここは「その1」と同じ。作成したVXLANとInternal(ここではPort4および5)とをつなぐソフトウェアスイッチ(Bridge)を作成。
NetworkInterface_CreateSoftwareSwitch.PNG

WAN

  • 左側Fortigate:DHCPによるIPアドレス(10.1.1.x/24)
  • 右側Fortigate:10.1.3.1/24(固定)

ネットワークインターフェース

最終的には下記となる(一部後述するVPN記述含む)。

左側Fortigate

Inside_Network.PNG

右側Fortigate

Outside_Network.PNG

IPsec VPN

IPsecトンネルにて、「カスタム」を選択して作成する。

左側Fortigate(NAT inside)

リモートゲートウェイのスタティックIPアドレスとして、対向peerのIPアドレス”10.1.3.1”を指定する。NATトラバーサルを有効化することも重要。
Inside_IPsecTunnel3.PNG
事前認証鍵を指定する。
VPN_Password.PNG
オートネゴシエーション選択。
Inside_IPsecTunnel5.PNG
IPsec対象とするIPアドレスは指定しない。
Inside_IPsecTunnel4.PNG

右側Fortigate(NAT outside)

NAT外側では、対向PeerのIPアドレスが不定となる。リモートゲートウェイのダイアルアップユーザを選択する。NATトラバーサルを有効化することも同じ。
Outside_IPsecTunnel3.PNG
事前認証鍵指定は先ほどと同様。なお、ダイアルアップユーザの場合、オートネゴシエーション指定はできない。また、IPsec対象とするIPアドレスは指定しない。

Static Route

左側Fortigate(NAT inside)

Inside_StaticRoute.PNG
対向PeerのIPアドレス(10.1.3.1)へのルートを作成。今回の最大のポイントと感じたのは、対向PeerのループバックIPアドレス(1.1.1.1)のインターフェースとして、VPNトンネル(vpn1)を指定することであった。

右側Fortigate(NAT outside)

Outside_StaticRoute.PNG
同じく対向PeerのループバックIPアドレス(1.1.1.2)のインターフェースとして、VPNトンネル(vpn2)を指定。

Firewall

Fortigate内外(WAN-LAN間)を通信させるためのFirewall設定。VPNトンネル、ソフトウェアスイッチ、ループバックIPアドレス間通信を許可する。
Inside_Firewall.PNG
右側Fortigateでは、上記vpn1がvpn2に置き換わるだけである。

検証

pingによる検証。パケットはESPとなってしまい、見ることができないので、Wiresharkで取得したデータは省略。左側Fortigateのルーティングテーブルは下記となる。

FG1 # get route info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       V - BGP VPNv4
       * - candidate default

Routing table for VRF=0
C       1.1.1.1/32 is directly connected, Lo
S       1.1.1.2/32 [10/0] via vpn1 tunnel 10.1.3.1, [1/0]
C       10.1.1.0/24 is directly connected, wan1
S       10.1.3.1/32 [10/0] via 10.1.1.1, wan1, [1/0]
C       192.168.10.0/24 is directly connected, internal

右側ortigateのルーティングテーブルは下記となる。

FG2 # get route info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       V - BGP VPNv4
       * - candidate default

Routing table for VRF=0
S*      0.0.0.0/0 [15/0] via vpn2 tunnel 10.1.3.2, [1/0]
S       1.1.1.1/32 [10/0] via vpn2 tunnel 10.1.3.2, [1/0]
C       1.1.1.2/32 is directly connected, Lo
C       10.1.3.0/24 is directly connected, wan1
C       192.168.30.0/24 is directly connected, internal

なお、IPsecトンネルが確立されている状況は下記となる。
Inside_IPsecTunnel.PNG
Outside_IPsecTunnel.PNG

終わりに

VXLANはUDPパケットなので、理論的には、NAT環境下でIPsecなしでも実現できるのではあるが、このあたりはFortigateの仕様なのであろう。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?