VTIを使ったVyattaとNetScreen間でのIPsecトンネル

VPNはOpenVPN派ですこんばんは。

http://oreore.hateblo.jp/entry/2012/01/25/183908 と http://oreore.hateblo.jp/entry/2012/01/26/134440 を参考にVyattaとNetScreenの間でSite-to-Site VPNを張ってみたのですがこれだと1つのトンネルで1経路しか張れないんですね。問題はVyatta側にあって、トンネル設定をするときに、手前と向こう側のネットワークを直接指定してしまうからです。

set tunnel 1 esp-group ns-esp
set tunnel 1 local subnet 10.0.100.0/24
set tunnel 1 remote subnet 192.168.1.0/24

対してNetScreenはunnumberedなinterfaceになっているので、経路を指定してやれば如何様にでもなります。

set route 10.0.100.0/24 interface tunnel.1

ここでVyatta6.5で追加されたVTIを使います。VTIを使うとトンネルを普通のインタフェースのように扱えるので、NetScreenと同じくアドレスを割り当てないでインタフェースに経路を向けることができるようになります。

set interfaces vti 'vti0'
set protocols static interface-route 192.168.1.0/24 next-hop-interface 'vti0'
set vpn ipsec esp-group ns-esp lifetime '3600'
set vpn ipsec esp-group ns-esp pfs 'enable'
set vpn ipsec esp-group ns-esp proposal 1 encryption 'aes128'
set vpn ipsec esp-group ns-esp proposal 1 hash 'sha1'
set vpn ipsec ike-group ns-ike lifetime '28800'
set vpn ipsec ike-group ns-ike proposal 1 dh-group '2'
set vpn ipsec ike-group ns-ike proposal 1 encryption 'aes128'
set vpn ipsec ike-group ns-ike proposal 1 hash 'sha1'
set vpn ipsec ipsec-interfaces interface 'eth0'
set vpn ipsec site-to-site peer 192.168.0.254 authentication mode 'pre-shared-secret'
set vpn ipsec site-to-site peer 192.168.0.254 authentication pre-shared-secret 'presharedkey'
set vpn ipsec site-to-site peer 192.168.0.254 ike-group 'ns-ike'
set vpn ipsec site-to-site peer 192.168.0.254 local-address '10.0.0.254'
set vpn ipsec site-to-site peer 192.168.0.254 vti bind 'vti0'
set vpn ipsec site-to-site peer 192.168.0.254 vti esp-group 'ns-esp'
commit
save

ipsecでvtiにbindするときはtunnel設定を削除します。

さて、これでうまくいくかというと残念ながら接続に失敗します。tunnelしている時は手前と対向でネットワークが既に決まっていたのですが、VTIではそれが不定になります。どこに影響するかというと、IPsecのProxy IDが変化します。Vyattaはtunnelを使うときには指定されたネットワークを元にProxy IDを設定しますが、VTIの場合は0.0.0.0/0となります。これに対応するようにNetScreen側も設定を変更する必要があります。

set zone name VPN
set interface tunnel.1 zone VPN
set interface tunnel.1 ip unnumbered interface untrust
set ike gateway vyatta-gw address 10.0.0.254 Main outgoing-interface untrust preshare presharedkey proposal pre-g2-aes128-sha
set vpn vyatta-ike gateway vyatta-gw no-replay tunnel idletime 0 proposal g2-esp-aes128-sha
set vpn vyatta-ike id 1 bind interface tunnel.1
set vpn vyatta-ike proxy-id local-ip 0.0.0.0/0 remote-ip 0.0.0.0/0 ANY
set route 10.0.100.0/24 interface tunnel.1
set policy from trust to VPN any any any permit
set policy from VPN to trust any any any permit
save

これで複数の経路を自由に向けられるようになりました。念のため例えばVyatta側でreset vpn ipsec-peer 192.168.0.254とかやってリセットしてみると確実に接続できるか確認できるのでよいかも。

VTIを使ったVyattaとNetScreen間でのIPsecトンネル” への2件のフィードバック

  1. こんにちわ。
    vtiいいですね~
    私も試してみてルーティング確認したところinactive状態になってルートが載ってきませんでした・・・トホホ
    同じようなご経験ありますでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください