
全体像
- LAN1(社内LAN) と L2TPv3トンネル を bridge1 に参加させ、遠隔拠点と同一L2セグメントを延伸しています。
- L2TPv3 の制御/データは IPsec(ESP) で暗号化(
ipsec transport 1 101 udp 1701)。 - WAN側は
lan2で DHCP によりアドレス取得、NAT(masquerade) を実施。 - トンネルは 常時確立(always-on)、DPD による死活監視あり。
bridge member bridge1 lan1 tunnel1
ip bridge1 address 192.168.0.202/24
l2tpv3 over IPsec(udp/1701, ESP)
WAN(lan2)=DHCP + NAT masquerade
※参考書籍リンク
主要設定の説明
実設定(秘匿情報マスキング)から、論点ごとに解説します。
1. ルーティング/デフォルト経路
ip routing on
ip route default gateway dhcp lan2
- ルータ機能を有効化し、lan2(WAN) で取得したDHCPゲートウェイを既定ルートに設定。
2. ブリッジとアドレス
bridge member bridge1 lan1 tunnel1
ip bridge1 address 192.168.0.202/24
- bridge1 に LAN1 と トンネル(tunnel1) を参加。レイヤ2延伸(同一セグメント化)。
- ブリッジIFに管理用IPを付与(SVI的な役割)。
3. WAN(lan2)とNAT
ip lan2 address dhcp
ip lan2 nat descriptor 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 primary
lan2は DHCPクライアント。NAT記述子1を適用し Masquerade NAT。outer 1 primaryは外向きアドレスにインタフェースの主IPを利用。
4. IPsec + L2TPv3 トンネル(tunnel 1)
tunnel select 1
tunnel encapsulation l2tpv3
tunnel endpoint address <REMOTE_GLOBAL_IP>
ipsec tunnel 101
ipsec sa policy 101 1 esp aes-cbc sha-hmac
ipsec ike duration ipsec-sa 1 691200 rekey 90%
ipsec ike duration isakmp-sa 1 691200 rekey 90%
ipsec ike keepalive log 1 on
ipsec ike keepalive use 1 on dpd 10 6 0
ipsec ike local address 1 192.168.0.202
ipsec ike local name 1 <LOCAL_ID> fqdn
ipsec ike nat-traversal 1 on keepalive=30 force=off
ipsec ike pre-shared-key 1 text <REDACTED_PSK>
ipsec ike remote address 1 <REMOTE_GLOBAL_IP>
ipsec ike restrict-dangling-sa 1 off
l2tp always-on on
l2tp tunnel disconnect time off
l2tp keepalive use on 5 10
l2tp keepalive log on
l2tp syslog on
l2tp remote end-id <REDACTED_ID>
tunnel enable 1
- L2TPv3 をカプセル化方式に指定し、リモートのグローバルIPを終端として指定。
- IPsecトンネルID=101 を紐付け、ESP(AES-CBC) + SHA-HMAC を使用。
- SA有効期限(8日相当)と 90%再キーイング、DPD(10秒×6回) で死活検出。
ipsec ike nat-traversal onにより NAT越え対応(UDP 4500)。l2tp always-on onで常時接続、keepaliveで途切れ検知。l2tp remote end-idは相手識別子。公開時は必ず伏せる。
5. IPsec/L2TPまわりのNAT例外
nat descriptor masquerade static 1 1 192.168.0.202 udp 500
nat descriptor masquerade static 1 2 192.168.0.202 esp
ipsec auto refresh on
ipsec transport 1 101 udp 1701
- IKE(UDP/500) と ESP を NATで固定化(装置間でIPsecを安定動作させるための例外・ピンホール確保)。
ipsec transport ... udp 1701は L2TP(UDP/1701) を transportモードIPsec で保護する指定。
6. 管理系サービス/名前解決
telnetd host lan
dns server dhcp lan2
l2tp service on l2tpv3
- Telnet管理をLANから許可(※平文のため、SSH推奨)。
- DNSは
lan2のDHCPで提示されたサーバを使用。 - L2TPv3サービスを有効化(装置のL2TP処理をオン)。
7. Heartbeat(死活通知)
heartbeat2 myname keepalive
heartbeat2 transmit 1 auth keepalive 192.168.0.255
heartbeat2 transmit interval 30
heartbeat2 transmit enable 1
- 30秒間隔で ブロードキャスト(192.168.0.255) に 認証付きキープアライブを送信。監視/冗長構成の一部として使われる機能。
設定ファイル
# show config (sanitized/sample)
ip routing on
ip route default gateway dhcp lan2
bridge member bridge1 lan1 tunnel1
ip bridge1 address 192.168.0.202/24
ip lan2 address dhcp
ip lan2 nat descriptor 1
nat descriptor type 1 masquerade
nat descriptor address outer 1 primary
nat descriptor masquerade static 1 1 192.168.0.202 udp 500
nat descriptor masquerade static 1 2 192.168.0.202 esp
# Tunnel: L2TPv3 over IPsec
tunnel select 1
tunnel encapsulation l2tpv3
tunnel endpoint address 203.0.113.94
ipsec tunnel 101
ipsec sa policy 101 1 esp aes-cbc sha-hmac
ipsec ike duration ipsec-sa 1 691200 rekey 90%
ipsec ike duration isakmp-sa 1 691200 rekey 90%
ipsec ike keepalive log 1 on
ipsec ike keepalive use 1 on dpd 10 6 0
ipsec ike local address 1 192.168.0.202
ipsec ike local name 1 rtx-local.example.jp fqdn
ipsec ike nat-traversal 1 on keepalive=30 force=off
ipsec ike pre-shared-key 1 text REDACTED_PSK
ipsec ike remote address 1 203.0.113.94
ipsec ike restrict-dangling-sa 1 off
l2tp always-on on
l2tp tunnel disconnect time off
l2tp keepalive use on 5 10
l2tp keepalive log on
l2tp syslog on
l2tp remote end-id REDACTED_ID
tunnel enable 1
ipsec auto refresh on
ipsec transport 1 101 udp 1701
# 管理系(公開時はTelnet無効の例に)
# telnetd host lan
sshd service on
sshd host lan
# DNS
dns server dhcp lan2
# Heartbeat(必要時のみ)
# heartbeat2 myname keepalive
# heartbeat2 transmit 1 auth keepalive 192.168.0.255
# heartbeat2 transmit interval 30
# heartbeat2 transmit enable 1
