RTX830とVyOSのIPSec設定
VyOSのIPSecの接続事例があまりなく、VPN構築をした際に苦戦したので記録を残します。
前提情報
- RTX830側
- PPPoE接続
- VPNLAN:
192.168.10.0/24
- インタフェース:
192.168.10.1/24
- VyOS側
192.168.10.0/24
と192.168.100.0/24
の拠点間VPNをやります。
RTX830側の設定
console character en.ascii login timer 300 ip routing on ip route default gateway pp 1 ip route 192.168.100.0/24 gateway tunnel 1 ip lan1 address 192.168.10.1/24 pp select 1 pppoe use lan2 pp auth accept pap chap pp auth myname <PPPoEセッション情報> ppp lcp mru on 1454 ppp ipcp ipaddress on ppp ipcp msext on ip pp mtu 1454 ip pp nat descriptor 1 netvolante-dns hostname host pp server=1 <ネットボランチDDNS> pp enable 1 tunnel select 1 ipsec tunnel 1 ipsec sa policy 1 1 esp 3des-cbc md5-hmac ipsec ike group 1 modp1024 ipsec ike keepalive log 1 off ipsec ike keepalive use 1 off ipsec ike local address 1 192.168.10.1 ipsec ike nat-traversal 1 on ipsec ike pre-shared-key 1 text <Secret> ipsec ike remote address 1 <VyOSのIPアドレスまたはドメイン> ip tunnel tcp mss limit auto tunnel enable 1 tunnel select none nat descriptor type 1 masquerade nat descriptor masquerade static 1 1 192.168.10.1 udp 500 nat descriptor masquerade static 1 2 192.168.10.1 esp nat descriptor masquerade static 1 3 192.168.10.1 udp 4500 ipsec auto refresh on telnetd host lan dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.10.11-192.168.10.199/24 dhcp scope option 1 dns=8.8.8.8 dns server pp 1 dns private address spoof on statistics traffic on
VyOS側の設定
set interfaces ethernet eth0 <VyOSのグローバルIP> set interfaces ethernet eth1 192.168.100.1/24 set service ssh port 10022 set service ssh allow-root set system gateway-address <VyOSのゲートウェイアドレス> ### vpn settings set vpn ipsec ipsec-interfaces interface 'eth0' set vpn ipsec esp-group ESP compression 'disable' set vpn ipsec esp-group ESP mode tunnel set vpn ipsec esp-group ESP pfs enable set vpn ipsec esp-group ESP lifetime '3600' set vpn ipsec esp-group ESP proposal 1 encryption 3des set vpn ipsec esp-group ESP proposal 1 hash md5 set vpn ipsec ike-group IKE ikev2-reauth no set vpn ipsec ike-group IKE key-exchange 'ikev1' set vpn ipsec ike-group IKE lifetime '3600' set vpn ipsec ike-group IKE proposal 1 dh-group 2 set vpn ipsec ike-group IKE proposal 1 encryption 3des set vpn ipsec ike-group IKE proposal 1 hash md5 set vpn ipsec ike-group IKE dead-peer-detection action restart set vpn ipsec ike-group IKE dead-peer-detection interval 15 set vpn ipsec ike-group IKE dead-peer-detection timeout 90 set vpn ipsec site-to-site peer <RTX830のアドレス> default-esp-group 'ESP' set vpn ipsec site-to-site peer <RTX830のアドレス> ike-group 'IKE' set vpn ipsec site-to-site peer <RTX830のアドレス> authentication mode 'pre-shared-secret' set vpn ipsec site-to-site peer <RTX830のアドレス> authentication pre-shared-secret <シークレットキー> set vpn ipsec site-to-site peer <RTX830のアドレス> authentication remote-id 192.168.10.1 set vpn ipsec site-to-site peer <RTX830のアドレス> connection-type initiate set vpn ipsec site-to-site peer <RTX830のアドレス> local-address <VyOSのグローバルIP> set vpn ipsec site-to-site peer <RTX830のアドレス> tunnel 1 local prefix '192.168.100.0/24' set vpn ipsec site-to-site peer <RTX830のアドレス> tunnel 1 remote prefix '192.168.10.0/24' set vpn ipsec nat-networks allowed-network 0.0.0.0/0 set vpn ipsec nat-traversal enable
VyOSとの接続におけるノウハウ
IPSec接続が確立しない
RTX830側のIPSec設定でGUIから設定すると以下の設定が追加されるが、この記述があるとIPSecの接続確立が失敗した。
ppp ccp type none
VyOS側がRTX830側のグローバルIP変更に対応できない
RTX830側のPPPoEは固定グローバルIPではなく、動的グローバルIPのため、ヤマハのネットボランチのDDNSサービスを利用した。
VyOSとRTX830でIPSecVPN確立後にRTX830を再起動するとRTX830が持つグローバルIPが変わる。
DDNSが動作しているので、問題なく名前解決するIPアドレスは変わるが、VyOS側は一度セッション確立に使ったグローバルアドレスをずっと保持し続けるようだ。
このため、定期的にipsecプロセスを再起動させる必要があるため、以下をVyOSに追加した。
$ vpn ipsec auto-update 30
30秒おきにipsecプロセスを再起動する処理。
以上