IX2105 と RTX1200 でVPN

2014.03.10 作成

IX2105 と RTX1200 でVPN
ヤマハの RTX1200 とNECの IX2105 の間で拠点間VPN(IPsec)の設定をやってみた。WAN側のIPアドレスは、RTX1200が固定、IX2105が可変(フレッツ光ネクスト)の状態。アグレッシブモードで接続することになる。
設定例をネット検索してみるも、いまいちぱっとしたものがなく、設定にかなり苦戦した。今回提示する例も IX2105のLAN側はタグVLANを設定しているので少し複雑ではある…。
なぜかうまくいかない例
まず、初期段階の設定ファイルを掲載する。ただし、これではうまくいかなかった。
■IX2105
ファームウェア:Version 8.10.11B
WAN側IPアドレス:可変
LAN側IPアドレス:192.168.10.0/24, 192.168.5.0/24(タグVLAN)

■RTX1200
ファームウェア:Rev.10.01.53
WAN側IPアドレス:固定
LAN側IPアドレス:192.168.0.0/24



★ IX2105 初期の設定(プロバイダ接続とDHCP、IPsecにログ採取程度の最低限)。VPNに関する部分には【VPN関連】とコメントを入れている。

logging buffered 4096
logging subsystem ike debug
!
!
ip ufs-cache enable
ip route default GigaEthernet0.1
ip route 192.168.0.0/24 Tunnel0.0	← VPN関連
ip dhcp enable
ip access-list sec-list permit ip src any dest any	← VPN関連
!
!
 ↓ VPN関連 ↓
ike initial-contact always
!
ike proposal ike-prop1 encryption aes hash sha group 1536-bit
!
ike policy ike-policy1 peer (対向RTX1200のWAN側固定IPアドレス) key (秘密) mode aggressive ike-prop1
ike keepalive ike-policy1 10 6
ike local-id ike-policy1 keyid (キーID)
!
ipsec autokey-proposal ipsec-prop1 esp-aes esp-sha
!
ipsec autokey-map ipsec-policy sec-list peer (対向RTX1200のWAN側固定IPアドレス) ipsec-prop1 pfs 1536-bit
 ↑ VPN関連 ↑
!
!
proxy-dns ip enable
!
ssh-server ip enable
!
ppp profile (プロバイダ名)	← プロバイダ接続設定
  authentication myname (ユーザ―名)
  authentication password (ユーザ―名)(パスワード)
!
ip dhcp profile home	← DHCP設定
  assignable-range 192.168.10.20 192.168.10.99
  subnet-mask 255.255.255.0
  dns-server 192.168.10.1
!
device GigaEthernet0
!
device GigaEthernet1
!
interface GigaEthernet0.0
  no ip address
  shutdown
!
interface GigaEthernet0.1	← WAN側
  encapsulation pppoe
  auto-connect
  ppp binding (プロバイダ名)
  ip address ipcp
  ip tcp adjust-mss auto
  ip napt enable
  no shutdown
!
interface GigaEthernet1.0	← LAN側
  ip address 192.168.10.1/24
  ip dhcp binding home
  no shutdown
!
interface GigaEthernet1.1	← LAN側(タグVLANを設定、このVLANで対向RTX1200とVPNしたい)
  encapsulation dot1q 101 tpid 8100
  auto-connect
  ip address 192.168.5.1/24
  no shutdown
!
interface Loopback0.0
  no ip address
!
interface Null0.0
  no ip address
!
 ↓ VPN関連 ↓
interface Tunnel0.0
  tunnel mode ipsec
  ip unnumbered GigaEthernet0.1
  ipsec policy tunnel ipsec-policy out
  no shutdown
 ↑ VPN関連 ↑


★ RTX1200初期設定(トンネル関連のみ抜粋)
ip route 192.168.5.0/24 gateway tunnel 1
tunnel select 1
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike encryption 1 aes-cbc
  ipsec ike group 1 modp1536
  ipsec ike hash 1 sha
  ipsec ike keepalive use 1 on dpd 10 6
  ipsec ike local address 1 192.168.0.1
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 text (秘密)
  ipsec ike remote address 1 any	← anyが曲者。
  ipsec ike remote name 1 (キーID) key-id
 tunnel enable 1
ipsec auto refresh on
↑の設定だと、RTX1200(WAN側固定IP)のログで【receive message from unknown gateway yyy.yyy.yyy.yyy(IX2105 WAN側可変IP)】となり、SAが作成できない。
このときのRTX1200ログ↓
2014/03/10 00:49:10: [IKE] respond ISAKMP phase to yyy.yyy.yyy.yyy(IX2105 WAN側可変IPアドレス)
2014/03/10 00:49:10: [IKE] add ISAKMP context [21437] xxxxxxxxxxxxx 00000000
2014/03/10 00:49:10: [IKE] receive message from unknown gateway yyy.yyy.yyy.yyy(IX2105 WAN側可変IPアドレス)
2014/03/10 00:49:11: [IKE] inactivate context [21437] xxxxxxxxxxxxx 00000000
2014/03/10 00:49:11: [IKE] delete ISAKMP context [21437] xxxxxxxxxxxxx 00000000
うまくいった例
そこで、RTX1200で【ipsec ike remote address 1 any】ではなく、【ipsec ike remote address 1 yyy.yyy.yyy.yyy(IX2105 WAN側IP)】と、直接IX2105のWAN側IPにするとVPNが張れた。相性の問題なのかファームウェアのバグなのか…。
ただし、この方法ではIX2105のWAN側IPアドレスを決め打ちしているので、IX2105の電源断等でWAN側のIPアドレスが変わってしまったときにVPNが接続できなくなってしまう。これは不便。そこでIX2105にダイナミックDNSの設定をして、【ipsec ike remote address ...】を FQDNで認証させるようにしてみた。
ちなみに、IXシリーズはIX側から対向ネットワークに通信がないとVPNの通信を開始しないようなので、設定ができたら対向ネットワークにpingを打ってみると良い。
★ IX2105 暫定VPN設定(↑の設定にDDNSやフィルタを追加している)。VPNに関する部分には【VPN関連】とコメントを入れている。

logging buffered 4096	← ログ設定
logging subsystem ike debug	← ログ設定
!
!
ip ufs-cache enable
ip route default GigaEthernet0.1
ip route 192.168.0.0/24 Tunnel0.0	← VPN関連
ip dhcp enable
ip access-list all-block deny ip src any dest any
ip access-list any-protcol permit ip src any dest any
ip access-list sec-list permit ip src any dest any	← VPN関連
ip access-list dynamic d-list1 access any-protcol
!
!
 ↓ VPN関連 ↓
ike initial-contact always
!
ike proposal ike-prop1 encryption aes hash sha group 1536-bit
!
ike policy ike-policy1 peer (対向RTX1200のWAN側固定IPアドレス) key (秘密) mode aggressive ike-prop1
ike keepalive ike-policy1 10 6
ike local-id ike-policy1 keyid (キーID)
!
ipsec autokey-proposal ipsec-prop1 esp-aes esp-sha
!
ipsec autokey-map ipsec-policy sec-list peer (対向RTX1200のWAN側固定IPアドレス) ipsec-prop1 pfs 1536-bit
 ↑ VPN関連 ↑
!
!
proxy-dns ip enable
!
!
ssh-server ip enable
!
!
ddns enable
!
!
ppp profile (プロバイダ名)	← プロバイダ接続設定
  authentication myname (ユーザ―名)
  authentication password (ユーザ―名) (パスワード)
!
ip dhcp profile home	← DHCP設定
  assignable-range 192.168.10.20 192.168.10.99
  subnet-mask 255.255.255.0
  dns-server 192.168.10.1
!
ddns profile mydns	← DDNS関連
  url http://www.mydns.jp/login.html
  account (アカウント名)
  password plain (パスワード)
  transport ip
  source GigaEthernet0.1
!
device GigaEthernet0
!
device GigaEthernet1
!
interface GigaEthernet0.0
  no ip address
  shutdown
!
interface GigaEthernet0.1	← WAN側
  encapsulation pppoe
  auto-connect
  ppp binding (プロバイダ名)
  ip address ipcp
  ip tcp adjust-mss auto
  ip napt enable
  ip filter all-block 1 in
  ip filter d-list1 1 out
  no shutdown
!
interface GigaEthernet1.0	← LAN側
  ip address 192.168.10.1/24
  ip dhcp binding home
  no shutdown
!
interface GigaEthernet1.1	← LAN側(タグVLANを設定、このVLANで対向RTX1200とVPNしたい)
  encapsulation dot1q 101 tpid 8100
  auto-connect
  ip address 192.168.5.1/24
  no shutdown
!
interface Loopback0.0
  no ip address
!
interface Null0.0
  no ip address
!
 ↓ VPN関連 ↓
interface Tunnel0.0
  tunnel mode ipsec
  ip unnumbered GigaEthernet0.1
  ipsec policy tunnel ipsec-policy out
  no shutdown
 ↑ VPN関連 ↑


★ RTX1200暫定設定(トンネル関連のみ抜粋)
ip route 192.168.5.0/24 gateway tunnel 1
tunnel select 1
 ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike encryption 1 aes-cbc
  ipsec ike group 1 modp1536
  ipsec ike hash 1 sha
  ipsec ike keepalive use 1 on dpd 10 6
  ipsec ike local address 1 192.168.0.1
  ipsec ike pfs 1 on
  ipsec ike pre-shared-key 1 text (秘密)
  ipsec ike remote address 1 (IX2105のDDNS名)
  ipsec ike remote name 1 (キーID) key-id
 tunnel enable 1
ipsec auto refresh on
とりあえずこの設定でIX2105のWAN側IPアドレスが変わっても問題なくなった(ダイナミックDNSはIPアドレスが変わったら更新されるようだが、タイミングがいまいち分からないので、ddns update コマンドで更新…)。

それから、IXシリーズは IPsec SA を生成してから、その SAを使ってカプセル化されたパケットが全く流れていない場合、次のSAの更新処理を実行しないらしく、対処方法がNEC公式ページ(Q.1-11 IPsec SAが常に存在する状態に維持したいのですが、方法は有りますか?)に載っているので、組み込んでおいた。
# watch-group host 10
#   event 10 ip unreach-host 192.168.0.1 Tunnel0.0 source GigaEthernet1.1
#   probe-timer restorer 60
#   probe-timer variance 60
# network-monitor host enable