LoginSignup
1
1

ヤマハルーターでL2TPv3(その2:NAT環境+α)

Posted at

NAT環境でL2TPv3

ヤマハルーターでL2TPv3」の続編、NAT環境でL2TPv3を確認するとともに、少々深堀りを実施。今回は、「ヤマハルーターでL2TPv3 over IPsec(NATあり)」とは異なり、Non-IPsec環境での実践。

ネットワーク構成

image.png
Router1は、NATルーターからDHCPによりWAN側IPアドレスを取得する。Router2のWAN側は固定のグローバルIPアドレスを持つ。Router2は、接続されるまで相手がわからない。末端のPCが同一ネットワークに属し、192.168.10.xx/24の固定IPアドレスを持つ。

設定

主要部分を説明。

Router1(NAT内側)

administrator password *
bridge member bridge1 lan1 tunnel1  # LAN側とトンネルとをブリッジ化 
ip bridge1 address 192.168.2.10/24  # ブリッジにIPアドレスアサイン
ip lan2 address dhcp                               # WAN側IPアドレスをDHCPにより取得
ip lan2 nat descriptor 1                       # 適用するNATディスクリプタ
tunnel select 1                                         # トンネル設定
 tunnel encapsulation l2tpv3-raw      # L2TPv3トンネル
 tunnel endpoint address 192.168.2.10 60.xxx.yyy.zz2  # トンネル始点(ブリッジIPアドレス)と終点(対向ルーターのWAN IPアドレス)
 l2tp always-on on                                   # L2TPv3の常時接続
 l2tp hostname RT1                                   # ホスト名
 l2tp tunnel auth on yamaha                 # トンネル認証ONおよびパスワード
 l2tp tunnel disconnect time off       # トンネル切断タイマーOFF
 l2tp keepalive use on 60 3                 # トンネルKeepAlive ON、インターバル(秒)、ダウン検出カウント
 l2tp keepalive log on              # トンネルキープアライブログON
 l2tp syslog on                     # L2TPトンネル制御をSyslog化
 l2tp local router-id 192.168.2.10  # ローカル(自分)ルーターID
 l2tp remote router-id 192.168.2.20 # リモート(対向)ルーターID
 l2tp remote end-id yamaha          # リモートエンドID(ルーターどうしで同一)
 ip tunnel tcp mss limit auto       # TCP MSS自動制御
 tunnel enable 1                    # トンネル有効化
nat descriptor type 1 masquerade    # NAT IPマスカレード
nat descriptor address outer 1 primary  # NAT外側IPアドレス(LAN2=WAN側)
nat descriptor address inner 1 auto # NAT内側IPアドレス(自動)
nat descriptor masquerade static 1 1 192.168.2.10 udp 1701 # L2TPポート番号(1701)をブリッジIPアドレスへ転送 
telnetd host lan
l2tp service on l2tpv3              # L2TPv3有効化

Router2(NAT外側)

administrator password *
ip route default gateway xxx.yyy.zzz.177  # デフォルトゲートウェイ
bridge member bridge1 lan1 tunnel1  # LAN側とトンネルとをブリッジ化
ip bridge1 address 192.168.2.20/24  # ブリッジにIPアドレスアサイン
ip lan2 address 60.jjk.mlj.xx2/29   # WAN側IPアドレス(固定)
ip lan2 nat descriptor 1            # 適用するNATディスクリプタ
tunnel select 1                     # トンネル設定
 tunnel encapsulation l2tpv3-raw    # L2TPv3トンネル
 l2tp always-on on                  # L2TPv3の常時接続
 l2tp hostname RT2                  # ホスト名
 l2tp tunnel auth on yamaha         # トンネル認証ONおよびパスワード
 l2tp tunnel disconnect time off    # トンネル切断タイマーOFF
 l2tp keepalive use on 60 3         # トンネルKeepAlive ON、インターバル(秒)、ダウン検出カウント
 l2tp keepalive log on              # トンネルキープアライブログON
 l2tp syslog on                     # L2TPトンネル制御をSyslog化
 l2tp local router-id 192.168.2.20  # ローカル(自分)ルーターID
 l2tp remote router-id 192.168.2.10 # リモート(対向)ルーターID
 l2tp remote end-id yamaha          # リモートエンドID(ルーターどうしで同一)
 ip tunnel tcp mss limit auto       # TCP MSS自動制御
 tunnel enable 1                    # トンネル有効化
nat descriptor type 1 masquerade    # NAT IPマスカレード
nat descriptor address outer 1 primary  # NAT外側IPアドレス(LAN2=WAN側)
nat descriptor address inner 1 auto # NAT内側IPアドレス(自動)
nat descriptor masquerade static 1 1 192.168.2.20 udp 1701  # L2TPポート番号(1701)をブリッジIPアドレスへ転送
telnetd host lan
dns server 8.8.8.8
l2tp service on l2tpv3              # L2TPv3有効化

NAT外側のルーターの設定には、「tunnel endpoint address」が存在しない(できない)。

検証

Router1コンソールでのL2TPv3ステータス

# show status l2tp  
------------------- L2TP INFORMATION -------------------
L2TP情報テーブル
  L2TPトンネル数: 1, L2TPセッション数: 1 
TUNNEL[1]:
  トンネルの状態: established
  バージョン: L2TPv3
  自機側トンネルID: 54524
  相手側トンネルID: 50910
  自機側IPアドレス: 192.168.2.10
  相手側IPアドレス: 60.xxx.yyy.zz2
  自機側送信元ポート: 1701
  相手側送信元ポート: 1701
  ベンダ名: YAMAHA Corporation
  ホスト名: RT2
  Next Transmit sequence(Ns): 10
  Next Receive sequence(Nr) : 8
  トンネル内のセッション数: 1 session
  セッション情報:
    セッションの状態: established
    自機側セッションID: 14473
    相手側セッションID: 54668
    Circuit Status 自機側:UP 相手側:UP
    通信時間: 6分16秒
    受信: 81 パケット [16814 オクテット]
    送信: 156234 パケット [86537568 オクテット]
# 

Router2のWAN側に入る手前のネットワークキャプチャデータ

L2TPv3確立

L2tP確立のコピー.png
確立までのシーケンスは、Cisco(「久しぶりにGNS3(その25:L2TPをWiresharkで確認)」)とは異なるようだ。

Cookieサイズ

Cookieサイズ.png
Yamahaルーターでは、Cookieサイズが”0”となっている。(Ciscoでは”4”)

ping

YamahaL2TPv3(overUDPのコピー.png
「L2TPv3 over UDP」となっている。Cisco「久しぶりにGNS3(その25:L2TPをWiresharkで確認)」では、UDPが存在しない(下記)。
CiscoL2TPv3(NonUDP).png

Keep Alive

KeepAliveのコピー.png
「l2tp keepalive use on 60 3」にて設定したとおり、60秒ごとに、双方向のHello-ACKのやりとりが行われている。

深堀り

Router ID

Router IDは、L2TPv3の最初のネゴシエーション時のSCCRQ/SCCRPにてやり取りされている。
SCCRQのコピー.png
3232236042 = 192.168.2.10(Router1のRouter ID)
SCCRPのコピー2.png
3232236052 = 192.168.2.20(Router2のRouter ID)

トンネルIDとセッションID

L2TP確立詳細のコピー.png
トンネルIDは相手側から指定されるようだ。

  • Router1 Tunnel ID: 54524
  • Router2 Tunnel ID: 50910

L2TPv3確立後に使われるセッションIDは、その次のネゴシエーションICRQ/ICRP/ICRNでやり取りされている。

  • Router1 Session ID: 14473
  • Router2 Session ID: 54668

上記の値は、さきほどの「show status l2tp」に表示されている。下記に再掲。

  自機側トンネルID: 54524
  相手側トンネルID: 50910

    自機側セッションID: 14473
    相手側セッションID: 54668

セッションIDが使われている様子

54668のコピー.png
14473のコピー.png
さきほどのセッションIDが見られる。相手のIDを指定するようだ。

Router ID(IPアドレス)、トンネルID、セッションIDをリンクさせて、通信を行っている。

その他

NAT

Router1の場合、Router IDであるブリッジIPアドレス(bridge1)192.168.2.10が内側、DHCPで取得したIPアドレス(lan2)が外側(WAN)となっている。Static NATにより、外側に来たUDP Port 1702を、すべてブリッジIPアドレスに転送すること、イコール、ブリッジ化されているLAN側(lan1)に転送することになる、、、と理解。

L2TPv3ヘッダ

Router ID(192.168.2.xxx)レイヤと捉えることができるかもしれない。

最後に

上述した、L2TPv3のクッキーサイズのこともあり、異なるメーカー間のSite間VPNは難しそう。

EOF

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