【Network】IX2015のIPsec 



前から予備のIXがほしいなあと思っていたら安く転がっていたので数台確保してきました。一つだけ前にヤフオクで1000円で落札した2010が混ざってますがw

前にIXのIPSecは結構速いという評判を風の噂で聞いたのでIXのIPsec-VPNを試してみました。
えっと…詳しいことはオフィシャルの設定事例が一番わかりやすいのでそれを見てもらうとして簡単に要点だけ

接続はハブ型です。IX1,IX2,IX3があってそれぞれEagle,Falcon,Tomcatというホストネームにします。(戦闘機ヲタ乙
それらがそれぞれ同一サブネット(172.16.1.0/24)でL2-SWにつながってる状態です。

Hostname Eagle
外向きのIPが172.16.1.1
内向きのIP192.168.11.0/24

Hostname Falcon
外 172.16.1.2
内 192.16.22.0/24

Hostname Tomcat
外 172.16.1.3
内 192.168.33.0/24


まとめ役のIX(eagle)
Mode Aggressiveにすることによって動的なIPからの接続を受け付けられるようになります。ただし、固定IPが必要なのと、接続は相手側から開始する必要があります。
Aggressiveなポリシーを2個作ってそれぞれの受付を待つ

------------------------
ike proposal ike-prop1 encryption 3des hash sha lifetime 3600
!
ike policy ike-pol peer any key himitsu mode aggressive ike-prop1
ike commit-bit ike-pol
ike remote-id ike-pol keyid falcon
!
ipsec autokey-proposal ipsec-prop1 esp-3des esp-sha lifetime time 3600
!
ipsec dynamic-map ipsec-pol lst1 ipsec-prop1 ike ike-pol
ipsec commit-bit ipsec-pol
ipsec local-id ipsec-pol 192.168.11.0/24
ipsec remote-id ipsec-pol 192.168.22.0/24
------------------------

これをtunnel0.0にバインドさせてFalconからの接続を待つ

Tomcatを受け入れるためのIPsec2個目のポリシー

------------------------
ike policy ike-pol2 peer any key himitsu mode aggressive ike-prop1
ike commit-bit ike-pol2
ike remote-id ike-pol2 keyid tomcat

ipsec dynamic-map ipsec-pol2 lst1 ipsec-prop1 ike ike-pol
ipsec commit-bit ipsec-pol2
ipsec local-id ipsec-pol2 192.168.11.0/24
ipsec remote-id ipsec-pol2 192.168.33.0/24
------------------------

これをTunnel1.0にバインドさせてTomcatの接続を待つ

192.168.22.0/24へ接続するにはTunnel0.0を使い、192.168.33.0/24へはTunnel1.0を使うようにルーティング

------------------------
ip route 192.168.22.0/24 Tunnel0.0
ip route 192.168.33.0/24 Tunnel1.0
------------------------


Falconは動的IPという状況だとして、固定IPなEagleに接続をしに行く。

------------------------
ike local-id ike-pol keyid falcon
!
ike proposal ike-prop1 encryption 3des hash sha lifetime 3600
!
ike policy ike-policy peer 172.16.1.1 key himitsu mode aggressive ike-prop1
ike local-id ike-policy keyid falcon
!
ipsec autokey-proposal ipsec-prop1 esp-3des esp-sha lifetime time 3600
!
ipsec autokey-map ipsec lst1 peer 172.16.1.41 ipsec-prop1
ipsec local-id ipsec 192.168.22.0/24
ipsec remote-id ipsec 192.168.11.0/24
!
------------------------

そしてTunnel0.0にバインドさせた後192.168.11.0/24への接続と192.168.33.0/24にTunnel0.0を使うように指定する

------------------------
ip route 192.168.11.0/24 Tunnnel0.0
ip route 192.168.33.0/24 Tunnnel0.0
------------------------


これで192.168.11.1にping等をすればこちらから接続を開始するのでトンネルがつながります。
Tomcatも状況は上とほとんど同じ

------------------------
ike proposal ike-prop1 encryption 3des hash sha lifetime 3600
!
ike policy ike-policy peer 172.16.1.1 key himitsu2 mode aggressive ike-prop1
ike local-id ike-policy keyid tomcat
!
ipsec autokey-proposal ipsec-prop1 esp-3des esp-sha lifetime time 3600
!
ipsec autokey-map ipsec lst1 peer 172.16.1.41 ipsec-prop1
ipsec local-id ipsec 192.168.33.0/24
ipsec remote-id ipsec 192.168.11.0/24
!
ip route 192.168.11.0/24 Tunnnel0.0
ip route 192.168.22.0/24 Tunnnel0.0
------------------------


しかし、ここまでやって何故か繋がらない!

Falcon(config)# logging subsystem ike debug


これでパケットを見ていると、ESPが帰ってこないよ-みたいなことを言っていて、原因はNAPTを有効にしていたことによるESPパケットの宛先が指定されていなかったことでした。
Eagleの方でこれを受け付けるようにします。

interface FastEthernet0/0.0
Eagle(config-FastEthernet0/0.0)# ip napt static FastEthernet0/0.0 50

最後の50というのがIPプロトコル50番であるESPパケットの指定です。ESPをFastEthernet0/0.0のIPに向ける、という意味です

ちなみに、

Eagle(config)# ike nat-traversal

これでUDPの500番を使って認証しに行くように指定できます。まあ、大体の環境ではこっちの方が都合がいいと思われます。500番以外を使うにはどうすればいいのかが解っていないので誰か教えてくださいw

VPNトンネルを1つまたいだ状態でどの程度スピードが出るのかローカルでテストします。
ルーティングは192.168.22.0/24-172.16.1.2-Tunnel-172.16.172.16.1.1-192.168.11.0/24

pingの応答速度

Falcon(config)# ping 192.168.11.1
PING 192.168.22.1 > 192.168.11.1 56 data bytes
64 bytes from 192.168.11.1: icmp_seq=1. time=0.636 ms
64 bytes from 192.168.11.1: icmp_seq=2. time=0.582 ms
64 bytes from 192.168.11.1: icmp_seq=3. time=0.578 ms
64 bytes from 192.168.11.1: icmp_seq=4. time=0.577 ms

様々なウィンドウサイズでiperfを60秒間実行@Win7x64

結果

C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 192.168.11.20 -i 5 -w 8K -t 60
------------------------------------------------------------
Client connecting to 192.168.11.20, TCP port 5001
TCP window size: 8.00 KByte
------------------------------------------------------------
[148] local 192.168.44.4 port 49196 connected with 192.168.11.20 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 5.0 sec 30.7 MBytes 51.5 Mbits/sec
[148] 5.0-10.0 sec 31.0 MBytes 51.9 Mbits/sec
[148] 10.0-15.0 sec 31.0 MBytes 52.0 Mbits/sec
[148] 15.0-20.0 sec 30.6 MBytes 51.4 Mbits/sec
[148] 20.0-25.0 sec 31.0 MBytes 52.0 Mbits/sec
[148] 25.0-30.0 sec 30.9 MBytes 51.8 Mbits/sec
[148] 30.0-35.0 sec 31.0 MBytes 51.9 Mbits/sec
[148] 35.0-40.0 sec 31.4 MBytes 52.6 Mbits/sec
[148] 40.0-45.0 sec 30.8 MBytes 51.7 Mbits/sec
[148] 45.0-50.0 sec 30.9 MBytes 51.9 Mbits/sec
[148] 50.0-55.0 sec 30.9 MBytes 51.9 Mbits/sec
[148] 55.0-60.0 sec 30.8 MBytes 51.7 Mbits/sec
[148] 0.0-60.0 sec 371 MBytes 51.8 Mbits/sec

C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 192.168.11.20 -i 5 -w 128K -t 60
------------------------------------------------------------
Client connecting to 192.168.11.20, TCP port 5001
TCP window size: 128 KByte
------------------------------------------------------------
[148] local 192.168.44.4 port 49198 connected with 192.168.11.20 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 5.0 sec 54.6 MBytes 91.6 Mbits/sec
[148] 5.0-10.0 sec 54.5 MBytes 91.4 Mbits/sec
[148] 10.0-15.0 sec 54.4 MBytes 91.3 Mbits/sec
[148] 15.0-20.0 sec 54.4 MBytes 91.3 Mbits/sec
[148] 20.0-25.0 sec 54.4 MBytes 91.3 Mbits/sec
[148] 25.0-30.0 sec 54.4 MBytes 91.3 Mbits/sec
[148] 30.0-35.0 sec 54.4 MBytes 91.3 Mbits/sec
[148] 35.0-40.0 sec 54.4 MBytes 91.3 Mbits/sec
[148] 40.0-45.0 sec 54.5 MBytes 91.4 Mbits/sec
[148] 45.0-50.0 sec 54.3 MBytes 91.2 Mbits/sec
[148] 50.0-55.0 sec 54.4 MBytes 91.3 Mbits/sec
[148] 55.0-60.0 sec 54.4 MBytes 91.2 Mbits/sec
[148] 0.0-60.0 sec 653 MBytes 91.3 Mbits/sec


おお、なかなか速いですね。

次にVPNトンネルを2つまたいだ状態でベンチ。

IX2--Tunnel0.0--IX1--Tunnel1.0--IX3

Falcon(config)# ping 192.168.33.1
PING 192.168.22.1 > 192.168.33.1 56 data bytes
64 bytes from 192.168.33.1: icmp_seq=0. time=1.014 ms
64 bytes from 192.168.33.1: icmp_seq=1. time=1.017 ms
64 bytes from 192.168.33.1: icmp_seq=2. time=1.032 ms
64 bytes from 192.168.33.1: icmp_seq=3. time=1.039 ms
64 bytes from 192.168.33.1: icmp_seq=4. time=1.023 ms

--- 192.168.33.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max = 1.014/1.025/1.039


C:\Users\root>tracert -d 192.168.33.2

192.168.33.2 へのルートをトレースしています。経由するホップ数は最大 30 です

1 <1 ms <1 ms <1 ms 192.168.22.1
2 <1 ms <1 ms <1 ms 192.168.11.1
3 1 ms 1 ms <1 ms 192.168.33.1
4 1 ms 1 ms 1 ms 192.168.33.2

トレースを完了しました。

C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 192.168.33.2 -w
8K -i 5 -t 60
------------------------------------------------------------
Client connecting to 192.168.33.2, TCP port 5001
TCP window size: 8.00 KByte
------------------------------------------------------------
[148] local 192.168.22.3 port 49201 connected with 192.168.33.2 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 5.0 sec 27.2 MBytes 45.6 Mbits/sec
[148] 5.0-10.0 sec 24.0 MBytes 40.2 Mbits/sec
[148] 10.0-15.0 sec 24.1 MBytes 40.5 Mbits/sec
[148] 15.0-20.0 sec 23.9 MBytes 40.1 Mbits/sec
[148] 20.0-25.0 sec 24.2 MBytes 40.6 Mbits/sec
[148] 25.0-30.0 sec 23.9 MBytes 40.1 Mbits/sec
[148] 30.0-35.0 sec 23.8 MBytes 40.0 Mbits/sec
[148] 35.0-40.0 sec 23.8 MBytes 39.9 Mbits/sec
[148] 40.0-45.0 sec 23.8 MBytes 39.9 Mbits/sec
[148] 45.0-50.0 sec 23.7 MBytes 39.8 Mbits/sec
[148] 50.0-55.0 sec 23.8 MBytes 39.9 Mbits/sec
[148] 55.0-60.0 sec 23.7 MBytes 39.8 Mbits/sec
[148] 0.0-60.0 sec 290 MBytes 40.5 Mbits/sec

C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 192.168.33.2 -w
128K -i 5 -t 60
------------------------------------------------------------
Client connecting to 192.168.33.2, TCP port 5001
TCP window size: 128 KByte
------------------------------------------------------------
[148] local 192.168.22.3 port 49202 connected with 192.168.33.2 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 5.0 sec 48.1 MBytes 80.8 Mbits/sec
[148] 5.0-10.0 sec 52.5 MBytes 88.0 Mbits/sec
[148] 10.0-15.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 15.0-20.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 20.0-25.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 25.0-30.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 30.0-35.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 35.0-40.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 40.0-45.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 45.0-50.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 50.0-55.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 55.0-60.0 sec 52.5 MBytes 88.1 Mbits/sec
[148] 0.0-60.0 sec 626 MBytes 87.4 Mbits/sec


トンネルを2つまたいでも90Mbps近く出るのはなかなか優秀だと思います。
ちなみに、双方向から同時にiperfを実行しても大体上の数字を半分にした値がそれぞれに出たので、片方向ではなく双方向の合計値が90Mbpsみたいです。

ここでいよいよWANごしにIPsecを張ってみます。ip napt enable, ike nat-traversalを有効にしました。
1つのONUで2つのセッションを張る構成です。
IX1-Tunnel-ISP1-ISP2-Tunnel-IX2

WAN生

=== Radish Network Speed Testing Ver.3.2.2 - Test Report ===
測定条件
 精度:低 データタイプ:標準
下り回線
 速度:85.74Mbps (10.72MByte/sec) 測定品質:95.6
上り回線
 速度:90.07Mbps (11.26MByte/sec) 測定品質:99.7
測定者ホスト:***********************.tokyo.ocn.ne.jp
測定サーバー:東京-WebARENA
測定時刻:2010/11/24(Wed) 3:45
------------------------------------------------------------
測定サイト http://netspeed.studio-radish.com/


VPN越しIperf


C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 172.16.1.18
1 -w 8K
------------------------------------------------------------
Client connecting to 172.16.1.18, TCP port 5001
TCP window size: 8.00 KByte
------------------------------------------------------------
[148] local 192.168.1.3 port 49467 connected with 172.16.1.18 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 1.0 sec 1.05 MBytes 8.85 Mbits/sec
[148] 1.0- 2.0 sec 1.88 MBytes 15.8 Mbits/sec
[148] 2.0- 3.0 sec 1.82 MBytes 15.3 Mbits/sec
[148] 3.0- 4.0 sec 1.25 MBytes 10.5 Mbits/sec
[148] 4.0- 5.0 sec 1.27 MBytes 10.6 Mbits/sec
[148] 5.0- 6.0 sec 1.27 MBytes 10.7 Mbits/sec
[148] 6.0- 7.0 sec 1.24 MBytes 10.4 Mbits/sec
[148] 7.0- 8.0 sec 1.23 MBytes 10.4 Mbits/sec
[148] 8.0- 9.0 sec 1.25 MBytes 10.5 Mbits/sec
[148] 9.0-10.0 sec 1.25 MBytes 10.5 Mbits/sec
[148] 0.0-10.0 sec 13.5 MBytes 11.3 Mbits/sec

C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 172.16.1.18
1 -w 8K
------------------------------------------------------------
Client connecting to 172.16.1.18, TCP port 5001
TCP window size: 8.00 KByte
------------------------------------------------------------
[148] local 192.168.1.3 port 49470 connected with 172.16.1.18 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 1.0 sec 1.77 MBytes 14.8 Mbits/sec
[148] 1.0- 2.0 sec 1.22 MBytes 10.2 Mbits/sec
[148] 2.0- 3.0 sec 1.25 MBytes 10.5 Mbits/sec
[148] 3.0- 4.0 sec 1.24 MBytes 10.4 Mbits/sec
[148] 4.0- 5.0 sec 1.23 MBytes 10.4 Mbits/sec
[148] 5.0- 6.0 sec 1.22 MBytes 10.2 Mbits/sec
[148] 6.0- 7.0 sec 1.24 MBytes 10.4 Mbits/sec
[148] 7.0- 8.0 sec 1.27 MBytes 10.6 Mbits/sec
[148] 8.0- 9.0 sec 1.27 MBytes 10.6 Mbits/sec
[148] 9.0-10.0 sec 1.27 MBytes 10.6 Mbits/sec
[148] 0.0-10.0 sec 13.0 MBytes 10.9 Mbits/sec

C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 172.16.1.18
1 -w 128K
------------------------------------------------------------
Client connecting to 172.16.1.18, TCP port 5001
TCP window size: 128 KByte
------------------------------------------------------------
[148] local 192.168.1.3 port 49468 connected with 172.16.1.18 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 1.0 sec 5.55 MBytes 46.6 Mbits/sec
[148] 1.0- 2.0 sec 8.44 MBytes 70.8 Mbits/sec
[148] 2.0- 3.0 sec 8.37 MBytes 70.2 Mbits/sec
[148] 3.0- 4.0 sec 8.36 MBytes 70.1 Mbits/sec
[148] 4.0- 5.0 sec 8.23 MBytes 69.1 Mbits/sec
[148] 5.0- 6.0 sec 8.46 MBytes 71.0 Mbits/sec
[148] 6.0- 7.0 sec 8.43 MBytes 70.7 Mbits/sec
[148] 7.0- 8.0 sec 8.30 MBytes 69.7 Mbits/sec
[148] 8.0- 9.0 sec 8.21 MBytes 68.9 Mbits/sec
[148] 9.0-10.0 sec 8.47 MBytes 71.0 Mbits/sec
[148] 0.0-10.0 sec 80.8 MBytes 67.7 Mbits/sec

C:\Users\root>C:\Users\root\Desktop\jperf-2.0.2\bin\iperf.exe -c 172.16.1.18
1 -w 128K
------------------------------------------------------------
Client connecting to 172.16.1.18, TCP port 5001
TCP window size: 128 KByte
------------------------------------------------------------
[148] local 192.168.1.3 port 49469 connected with 172.16.1.18 port 5001
[ ID] Interval Transfer Bandwidth
[148] 0.0- 1.0 sec 8.39 MBytes 70.4 Mbits/sec
[148] 1.0- 2.0 sec 8.60 MBytes 72.2 Mbits/sec
[148] 2.0- 3.0 sec 8.58 MBytes 72.0 Mbits/sec
[148] 3.0- 4.0 sec 8.32 MBytes 69.8 Mbits/sec
[148] 4.0- 5.0 sec 8.28 MBytes 69.5 Mbits/sec
[148] 5.0- 6.0 sec 8.46 MBytes 71.0 Mbits/sec
[148] 6.0- 7.0 sec 8.17 MBytes 68.6 Mbits/sec
[148] 7.0- 8.0 sec 8.31 MBytes 69.7 Mbits/sec
[148] 8.0- 9.0 sec 8.35 MBytes 70.1 Mbits/sec
[148] 9.0-10.0 sec 8.43 MBytes 70.7 Mbits/sec
[148] 0.0-10.0 sec 83.9 MBytes 70.3 Mbits/sec

WAN越しになると、やはりレイテンシが高いせいで細かいパケットの8kではかなり速度が落ちましたが、パケットサイズを大きくしてあげればかなり速度が出ました。
実際、FTPやWindows7のCIFS 2では速度が出ましたが、WindowsXPのCIFSではほとんど速度が出ませんでした(大体2-3MB/sec程度だった気が)



このほかにも、2拠点間で同じネットワークを使用するブリッジも設定できますが、ブロードキャストが多いネットワークでこれを使ってしまうと結構ルーターのリソースを使いそうな気がします。
NetBEUI等の名前解決がそのままできたりLANゲームなどでそのままホストがみれたり等の利点はありますがその辺は要設計ですね。
ACLでルーター間のセキュリティーを考えずにそのままブリッジしてしまうと結構いやんな事になるかとw

暇なときに別の機器とIPsecが張れるかというのも試してみたいのですが結構疲れるんですよねこれ。

[ コメントを書く ] ( 2149 回表示 )   |  このエントリーのURL  |  $star_image$star_image$star_image$star_image$star_image ( 3 / 1991 )  |  

<<最初へ <戻る | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 進む> 最後へ>>