0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

久しぶりにGNS3(その4:トンネリング:IPsec)

Posted at

IPsecにトライ

今回はGNS3にて、トンネリングで頻繁に使われるIPsec環境を構築する。

参考サイト

  1. 【わかりやすい】 【図解】IPSecの仕組みとは?IPSec-VPN とSSL-VPNの違い
  2. IPSec サイト間VPNの設定例
  3. GNS3:VPNの設定(GRE, IPsec)

1では、VPNでよく利用される、IPSec-VPNとSSL-VPNとの違いが、ネットワークレイヤをもとに説明されており、2および3では、GNS3での設定方法が記載されている。

構築したネットワーク

IPsec_topology.png

ルーターR1とルーターR2とを間をIPsec化(トンネリング)する。また、R1およびR2には、それぞれ、ローカルネットワーク10.1.1.0/24および10.2.2.0/24が接続されている。

各ルーターの設定およびルーティング情報

(PC1およびPC2の設定は自明のため省略。)

R1

IKE(鍵交換プロトコル)の設定。

crypto isakmp policy 11
 encr aes
 authentication pre-share
 group 2
crypto isakmp key testpwd address 192.168.20.22
  • Priority:11(1:High-65534:Low)
  • 暗号化アルゴリズム:AES
  • 事前鍵交換方式(パスワード:testpwd)
  • Diffie-Hellman交換:グループ2
  • 相手先IPアドレス:192.168.20.22(対向ルーターR2)

IPsecの設定。

crypto ipsec transform-set IPSEC-TEST esp-aes esp-sha-hmac 
  • transform-set名称:IPSEC-TEST
  • 暗号化アルゴリズム:AES
  • ハッシュアルゴリズム:SHA

暗号マップ設定。

crypto map To_R2 11 ipsec-isakmp 
 set peer 192.168.20.22
 set transform-set IPSEC-TEST 
 match address 100

access-list 100 permit ip any any
  • マップ名称:To_R2
  • シーケンス番号:11(正直よくわからず)
  • 相手先IPアドレス:192.168.20.22(対向ルーターR2)
  • 適用するIPSec transform-set名称
  • アクセスリスト番号100の適用
  • アクセスリスト100:すべてのIPアドレスを対象

物理I/FおよびStaticルート設定。

interface FastEthernet0/0
 ip address 192.168.10.11 255.255.255.0
 crypto map To_R2
         
interface FastEthernet0/1
 ip address 10.1.1.254 255.255.255.0

ip route 0.0.0.0 0.0.0.0 FastEthernet0/0
  • IPアドレス設定
  • FastEthernet0/0の暗号マップTo_R2を適用
  • StaticルートとしてFastEthernet0/0を選択

設定されたルーティング情報は下記のとおり。

R1#show ip route
(略)

C    192.168.10.0/24 is directly connected, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/1
S*   0.0.0.0/0 is directly connected, FastEthernet0/0

R2

R1とほぼ同じのため、説明省略。

crypto isakmp policy 11
 encr aes
 authentication pre-share
 group 2
crypto isakmp key testpwd address 192.168.10.11

crypto ipsec transform-set IPSEC-TEST esp-aes esp-sha-hmac 

crypto map To_R1 11 ipsec-isakmp 
 set peer 192.168.10.11
 set transform-set IPSEC-TEST 
 match address 100

interface FastEthernet0/0
 ip address 192.168.20.22 255.255.255.0
 crypto map To_R1
 
interface FastEthernet0/1
 ip address 10.2.2.254 255.255.255.0

ip route 0.0.0.0 0.0.0.0 FastEthernet0/0
        
access-list 100 permit ip any any
R2#show ip route
(略)

C    192.168.20.0/24 is directly connected, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.2.2.0 is directly connected, FastEthernet0/1
S*   0.0.0.0/0 is directly connected, FastEthernet0/0

ISP

interface FastEthernet0/0
 ip address 192.168.10.1 255.255.255.0

interface FastEthernet0/1
 ip address 192.168.20.1 255.255.255.0
ISP#show ip route
(略)

C    192.168.10.0/24 is directly connected, FastEthernet0/0
C    192.168.20.0/24 is directly connected, FastEthernet0/1

ここはほぼ自明。説明略。

実験

R1からPC2(R2のローカルネットワーク上のPC)へのping

R1#ping 10.2.2.2 repeat 30 

Type escape sequence to abort.
Sending 30, 100-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
.................!!!!!!!!!!!!!
Success rate is 43 percent (13/30), round-trip min/avg/max = 32/45/68 ms

この時のR1-ISP間のWiresharkデータはこちら。
FromR1toPC2_20211120のコピー.png

IPsecでトンネリング(かつ暗号化:ESP)されているため、宛先IPアドレスである「10.2.2.2」を見ることはできない。

また、ping自体は成功しているが、IKEのネゴシエーションに時間がかかっていることがわかる(赤枠部分)。一度成功すれば、その後のpingは問題ないようだ。ただし、IKEのKeepAliveやSAのLifetimeは別の話であろう。(専門家ではないので、これらの詳細説明は勘弁。)

PC1(R1のローカルネットワーク上のPC)からPC2(R2のローカルネットワーク上のPC)へのping

PC1> ping 10.2.2.2 -c 10
84 bytes from 10.2.2.2 icmp_seq=1 ttl=62 time=82.148 ms
10.2.2.2 icmp_seq=2 timeout
10.2.2.2 icmp_seq=3 timeout
10.2.2.2 icmp_seq=4 timeout
84 bytes from 10.2.2.2 icmp_seq=5 ttl=62 time=89.729 ms
10.2.2.2 icmp_seq=6 timeout
10.2.2.2 icmp_seq=7 timeout
84 bytes from 10.2.2.2 icmp_seq=8 ttl=62 time=67.324 ms
10.2.2.2 icmp_seq=9 timeout
84 bytes from 10.2.2.2 icmp_seq=10 ttl=62 time=62.365 ms

この時のPC1-R1間のWiresharkデータはこちら。
PC1toPC2_20211120.png

この時のR1-ISP間のWiresharkデータはこちら。
PC1toPC2inR1ISP_20211120.png

GNS3上のルーターの能力の問題なのか、すべてのICMPパケットがR1から創出されていない。GNS3の設定を色々試してみたが、よくわからず。高スペックのマシンを用いれば状況は変わるのかもしれない(真偽不明)。

ISPからPC2へのping

ISP#ping 10.2.2.2 repeat 10

Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
..........
Success rate is 0 percent (0/10)

前述のとおり、ISPにはIPアドレス10.2.2.2(PC2)へのルーティング情報が存在しないので、当然応答なし。

終わりに(EIGRPを無理やり設定しても不可)

IPsecではマルチキャストを使うことはできない。なので、ここでは、上述のとおりStaticルートを用いているが、マルチキャストパケットを使うルーティングプロトコルであるEIGRPを設定してみたが、やはりNG。次のようなメッセージが表示された。

R1(config)#no ip route 0.0.0.0 0.0.0.0 fastEthernet 0/0
R1(config)#router eigrp 11
R1(config-router)#network 192.168.10.0

*Mar  1 01:11:26.251: %CRYPTO-4-RECVD_PKT_NOT_IPSEC: Rec'd packet not an IPSEC packet. (ip) vrf/dest_addr= /224.0.0.10, src_addr= 192.168.10.1, prot= 88

IPsec上でマルチキャストパケットを扱うには、「GRE over IPSec」を使うらしい。なので、次回はこれを試してみる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?