OpenWrt23.05の可変IPアドレスPPPoEでSite to Site VPN(Libreswan)

2025-10-14 22:50:23

2拠点でOpenWrtルーターを設置している。 各OpenWrtルーターは2つのインターネット接続を設定しており、 WANからの待受用のPPPoE接続と、LAN利用者のWAN向け接続を併用している。 さらにL2TP/IPSECでのVPN Serverを使えるようにしている。 となると双方のサイトにLibreswanが入っている。 せっかくなので Site to Site VPNしてみたい。

ここではPPPoEでの可変IPアドレス同士でのSite to Site VPNを確立できたのでご紹介。 ただしDNSでの正引き名前解決ができること。ちなみにウチはonamae.com

結果的にはシンプルな設定で大丈夫です。 個人的にはVPNのアダプターをVPN Zoneに入れるところと、Firewallのところでハマりました。

各サイトの状況

サイトK

  • WAN接続 PPPoE、DS-Lite
  • Libreswan VPN Server: L2TP/IPSEC
  • DNSで引けるPPPoEホスト名 k-vpn.yourdomain.com
  • LANネットワーク 192.168.0.0/24

サイトT

  • WAN接続 PPPoE、DHCP -- NTTひかり電話のホームゲートウェイのMAP-Eへの二重ルーター
  • Libreswan VPN Server: L2TP/IPSEC
  • DNSで引けるPPPoEホスト名 t-vpn.yourdomain.com
  • LANネットワーク 192.168.3.0/24

サイトKのOpenWrt設定

/etc/ipsec.d/k-t-master.conf

conn k-t-master
    auto=start
    type=tunnel
    authby=secret
    ipsec-interface=1
    ikev2=insist
    fragmentation=yes

    leftid=@k-vpn.yourdomain.com        ←@とDNSで引ける名前にしておく
    left=%pppoe-wansv4         ←PPPoEのデバイス
    leftsubnet=192.168.0.0/24
    leftsourceip=192.168.0.79

    rightid=@t-vpn.yourdomain.com        ←@とDNSで引ける名前にしておく
    right=t-vpn.yourdomain.com        ←DNSで引ける名前
    rightsubnet=192.168.3.0/24
    rightsourceip=192.168.3.79

/etc/ipsec.d/k-t.secrets

@k-vpn.yourdomain.com @t-vpn.yourdomain.com : PSK "そこそこ長いpre shared key"

/etc/config/network

/etc/config/network
config zone			 
	option name 'vpn'      
	option conntrack '1'       
	option input 'ACCEPT'  
	option output 'ACCEPT' 
	option forward 'REJECT'
	list network 'vpn1'	   
	list network 'vpn2'    
	list network 'vpn3'
        list network 'ipsec1_static'

Firewall - Traffic Ruleの、Assign Firewall markで !192.168.0.0/24 をしているものがあれば、!192.168.3.0/24を追加する。

サイトTのOpenWrt設定

/etc/ipsec.d/k-t-slave.conf

conn k-t-slave
    auto=start
    type=tunnel
    authby=secret
    ipsec-interface=1
    fragmentation=yes

    leftid=@t-vpn.yourdomain.com        ←@とDNSで引ける名前にしておく
    left=%pppoe-wansv4         ←PPPoEのデバイス
    leftsubnet=192.168.3.0/24
    leftsourceip=192.168.3.79

    rightid=@k-vpn.yourdomain.com        ←@とDNSで引ける名前にしておく
    right=k-vpn.yourdomain.com        ←DNSで引ける名前
    rightsubnet=192.168.0.0/24
    rightsourceip=192.168.0.79

/etc/ipsec.d/k-t.secrets

@k-vpn.yourdomain.com @t-vpn.yourdomain.com : PSK "そこそこ長いpre shared key"

/etc/config/network

/etc/config/network
config zone			 
	option name 'vpn'      
	option conntrack '1'       
	option input 'ACCEPT'  
	option output 'ACCEPT' 
	option forward 'REJECT'
	list network 'vpn1'	   
	list network 'vpn2'    
	list network 'vpn3'
        list network 'ipsec1_static'

Firewall - Traffic Ruleの、Assign Firewall markで !192.168.3.0/24 をしているものがあれば、!192.168.0.0/24を追加する。