Ez×××客户模式下有几个比较好用的小特性,不如自动连接(保存密码),分离隧道,http的交互方式,多个inside接口等。下面的小实验验证一下这些小特性。

         拓扑:


×××第四话:Ez××× Client模式小进阶

基本配置

R1:

ho Client-BeiJing

in s0/0

ip add 12.1.1.1 255.255.255.0

 

in l0

ip add 1.1.1.1 255.255.255.0

ip route 0.0.0.0 0.0.0.0 s0/0 12.1.1.2

 

R2:

hostname Ez×××-Server

aaa new-model

aaa authentication login USER-AUTHEN local

aaa authorization network GROUP-AUTHOR local

username the-edge password 0 the-edge

!   

crypto isakmp policy 10

 hash md5

 authentication pre-share

 group 2

!

crypto isakmp client configuration group TJ

 key TianJin

 dns 20.20.20.20

 wins 20.20.20.20

 pool POOL-TJ

!

crypto ipsec transform-set TJ-TRANS esp-des esp-md5-hmac

crypto dynamic-map TJ-MAP 10

 set transform-set TJ-TRANS

 reverse-route

!

crypto map TJ-MAP client authentication list USER-AUTHEN

crypto map TJ-MAP isakmp authorization list GROUP-AUTHOR

crypto map TJ-MAP client configuration address respond

crypto map TJ-MAP 10 ipsec-isakmp dynamic TJ-MAP

!

interface FastEthernet0/0

 ip address 192.168.1.2 255.255.255.0

 duplex auto

 speed auto

 crypto map TJ-MAP

!

interface Serial0/0

 ip address 12.1.1.2 255.255.255.0

 clock rate 2000000

!

ip local pool POOL-TJ 172.16.0.1 172.16.0.100

ip route 1.1.1.0 255.255.255.0 Serial0/0 12.1.1.1

ip route 5.5.5.0 255.255.255.0 FastEthernet0/0 192.168.1.5 

 

R3:

hostname Ez×××-Remote

ip cef

!

crypto ipsec client ez*** TO-BJ

 connect manual

 group TJ key TianJin

 mode client

 peer 192.168.1.2

 xauth userid mode interactive

!

interface FastEthernet0/0

 ip address 192.168.1.3 255.255.255.0

 duplex auto

 speed auto

 crypto ipsec client ez*** TO-BJ

!

interface FastEthernet0/1

 ip address 30.30.30.1 255.255.255.0

 duplex auto

 speed auto

 crypto ipsec client ez*** TO-BJ inside

!

interface Serial0/2

 ip address 34.1.1.3 255.255.255.0

 clock rate 2000000

 crypto ipsec client ez*** TO-BJ inside

!

ip route 1.1.1.0 255.255.255.0 FastEthernet0/0 192.168.1.2

ip route 4.4.4.0 255.255.255.0 Serial0/2 34.1.1.4

ip route 5.5.5.0 255.255.255.0 FastEthernet0/0 192.168.1.5

 

R4:

ho Client-TianJin

in s0/0

ip add 34.1.1.4 255.255.255.0

in l0

ip add 4.4.4.4 255.255.255.0

ip route 0.0.0.0 0.0.0.0 s0/0 34.1.1.3

 

R5:

ho Internet

in f0/0

ip add 192.168.1.5 255.255.255.0

 

in l0

ip add 5.5.5.5 255.255.255.0

ip route 0.0.0.0 0.0.0.0 F0/0

基本配置完成后即可从remote端手动建立连接(客户模式下无法从Server端发起连接)。下面我们配置从用户的浏览器发起连接,这个最近接近工作环境下的应用。进入remote端的crypto ez***配置模式后启用http交互,如下:

cry ipsec cl ez*** TO-BJ

XAUth userid mode http-intercept

接着从浏览器输入1.1.1.1,登录Client-BeiJing的路由器配置界面。

下面我们在remote端清除连接,然后配置自动登录。

Ez×××-Remote#cle cry ipsec client ez***

Ez×××-Remote#

EZ×××(TO-BJ): IPSec connection terminated

*Mar  1 01:23:59.523: %CRYPTO-6-EZ×××_CONNECTION_DOWN: (Client)  User=  Group=TJ  Client_public_addr=192.168.1.3  Server_public_addr=192.168.1.2  Assigned_client_addr=172.16.0.12 

Ez×××-Remote#

*Mar  1 01:24:01.575: %LINK-5-CHANGED: Interface Loopback0, changed state to administratively down

*Mar  1 01:24:02.575: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to down

 

Ez×××-Remote#sh crypto isakmp sa

dst             src             state          conn-id slot status

192.168.1.2     192.168.1.3     MM_NO_STATE         17    0 ACTIVE (deleted)

1.         每次这样手动发起连接很麻烦,可以设置自动连接。

crypto isakmp client configuration group TJ

save-password

首先在Server端设置保存密码,然后去remote端继续设置。

crypto ipsec client ez*** TO-BJ

connect auto

username the-edge password the-edge

这样完成第一次登录后就会一直在线。如果我们只有路由器来测试的话可能看不出有什么太大的区别,下面开启用户用浏览器访问路由器来看看效果。

 

×××第四话:Ez××× Client模式小进阶

有两个选项可供选择。第一个是建立×××连接,第二个是不建立练级直接访问internet。在后面的实验中我们可以发现,如果不配置分离隧道的话,如果我们选择了第一个选项,那么就无法访问internet,也就是说只能访问×××。如果选择第二个的话,那么只能够访问internet不能访问×××

我们选择第一个选项,建立×××隧道。

 

×××第四话:Ez××× Client模式小进阶

输入密码。如果登录成功的话等一会就会有下面的框框弹出显示登录成功。(需要关闭浏览器的屏蔽弹出窗口功能,不关闭的话也不影响使用。)过一会,我们前面输入的那个地址就会刷新,显示路由器的web页面。

 

×××第四话:Ez××× Client模式小进阶

 

×××第四话:Ez××× Client模式小进阶

配置完自动登录后路由器就可以自动登录,是一直在线的状态。

下面的下面测试分离隧道。

在上面的实验中使用了一台路由器(internet)开启了loopback05.5.5.5)来模拟internet。下面从client发起平,看能不能pinginternet

Client-TianJin#ping 5.5.5.5

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

挂在remote后面的用户到达不了internet

Client-BeiJing#ping 5.5.5.5

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 40/76/124 ms

挂在server后面的用户可以到达internet

原因是从remote端的inside接口进入的数据默认情况下都进行了加密通过隧道发送,经过nat转换后发往serverServer然后转发给R5R5此时经由默认路由再转发出来,目的地址是转换过后的172.16.0.0/24网段,remote端收到后的包不是加密的报文,根据一般的加解密原则,这个包被丢掉。

下面是一系列的debug演示。

1.       首先在Ez×××-ServerEz×××-ClientInternet上开启debug ip icmp

2.       Clinet-TianJin发起网5.5.5.5的五个10ping包。

Client-TianJin#ping 5.5.5.5 re 10

Type escape sequence to abort.

Sending 10, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:

..........

Success rate is 0 percent (0/10)

3.       查看serverremote端加解密包的情况。

Ez×××-Remote#sh cry en conn ac

  ID Interface      IP-Address    State  Algorithm            Encrypt  Decrypt

  14 FastEthernet0/0  192.168.1.3  set  HMAC_MD5+DES_56_CB   0     0

2001 FastEthernet0/0 192.168.1.3    set  DES+MD5               10    0

2002 FastEthernet0/0 192.168.1.3    set DES+MD5                 0     0

如上所示,Remote加密了10个包。

Ez×××-Server#sh cry en conn ac

  ID Interface        IP-Address   State      Algorithm       Encrypt  Decrypt

  14 FastEthernet0/0  192.168.1.2   set  HMAC_MD5+DES_56_CB    0    0

2001 FastEthernet0/0  192.168.1.2    set   DES+MD5               0    0

2002 FastEthernet0/0  192.168.1.2    set    DES+MD5              0    10

如上所示,server加密了10个包。

4.       查看internet上的数据包接受发送情况。

*Mar  1 02:09:43.335: ICMP: echo reply sent, src 5.5.5.5, dst 172.16.0.24

回包的目的地址是172.16.0.24,这个地址是前面地址池里定义的。

5.       查看数据包到达remote端后的情况。

Ez×××-Remote#

*Mar  1 02:09:41.827: %CRYPTO-4-RECVD_PKT_NOT_IPSEC: Rec'd packet not an IPSEC packet.

        (ip) vrf/dest_addr= /172.16.0.24, src_addr= 5.5.5.5, prot= 1

输出显示这个包不是加密包。所以不会有地址转换。

 

6.       下面配置分离隧道,这个工作只需在server端配置,写一个acl然后调用即可。

IP access-list ext spilt-tunnel

10 permit ip 172.16.0.0 0.0.0.255 any

Ez×××-Server(config)#cry isa cli con group TJ

Ez×××-Server(config-isakmp-group)#ACL spilt-tunnel

7.       查看。

Ez×××-Remote#sh cry ipsec cl ez

Easy ××× Remote Phase: 4

 

Tunnel name : TO-BJ

Inside interface list: FastEthernet0/1, Serial0/2

Outside interface: FastEthernet0/0

Current State: IPSEC_ACTIVE

Last Event: SOCKET_UP

Address: 172.16.0.25

Mask: 255.255.255.255

DNS Primary: 20.20.20.20

NBMS/WINS Primary: 20.20.20.20

Save Password: Allowed

Split Tunnel List: 1

       Address    : 172.16.0.0

       Mask       : 255.255.255.0

       Protocol   : 0x0

       Source Port: 0

       Dest Port  : 0

Current Ez××× Peer: 192.168.1.2

如上所示,分离隧道配置成功了。

8.       测试。从remote背后的客户端在发起去往Internetping包。

Client-TianJin#ping 5.5.5.5

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 72/174/256 ms

通了。

 

PS:

前面没有提到过,Ez××× 客户模式下,remote端会自动启用一个NAT将从地址池获得的地址进行转换。

Ez×××-Remote#sh ip nat statistics

Total active translations: 0 (0 static, 0 dynamic; 0 extended)

Outside interfaces:

  FastEthernet0/0

Inside interfaces:

  FastEthernet0/1, Serial0/2

Hits: 452  Misses: 55

CEF Translated packets: 499, CEF Punted packets: 9

Expired translations: 31

Dynamic mappings:

-- Inside Source

[Id: 35] access-list enterprise-list pool TO-BJ refcount 0

 pool TO-BJ: netmask 255.255.255.0

        start 172.16.0.24 end 172.16.0.24

        type generic, total addresses 1, allocated 0 (0%), misses 0

Queued Packets: 0

这个列表的名字叫做enterprise-list,地址池就是我们在server端定义的那个池子。

 

尚未解决的疑惑:

有一个问题我还是不明白。我们需要在remote端配置到达server端背后的网络的静态路由,在server端用不着配到达remote端的静态路由(这个可以理解,因为RRI的自动配置了一条静态路由/32位的)。

根据上面的实验类比,remote端如果不配置去往1.1.1.0的静态路由,他还是会将数据包发往serverserver也能够将包发往身后的网络,那么能不能通呢?结果是不可以的。

Remote端的输出如下:

*Mar  1 02:42:30.443: ICMP: dst (1.1.1.1) host unreachable sent to 34.1.1.4

虽然主机无法到达但是还是发往server端了,但是从加解密包的输出结果我们可以得出这个包根本就没有被加密。

Ez×××-Remote#sh cry en conn ac

  ID Interface      IP-Address    State  Algorithm            Encrypt  Decrypt

  14 FastEthernet0/0  192.168.1.3  set  HMAC_MD5+DES_56_CB   0     0

2001 FastEthernet0/0 192.168.1.3    set  DES+MD5               10    0

2002 FastEthernet0/0 192.168.1.3    set DES+MD5                 0     0

这就比较奇怪了,为什么一个加密一个不加密呢?

联想到L2L的感兴趣流,加密点需要知道对方加密点和双方通信点的路由。Remote端在这里作为一个加密点,因此也需要知道对端通信点的路由(server端满足这两个条件)。

但是,remote端是如何知道1.1.1.0就是对端的通信点而5.5.5.0就不是对端的通信点呢?

我想他们之间一定也会有一个动态的协商,他们协商好了172.16.0.01.1.1.0之间的数据流量是需要加密的,如果过来的数据包没有加密的话,安全起见,这个数据包就要丢弃。

不过从几个常规的输出现实中我还没有找到哪里有显示1.1.1.0***有关联的。比较奇怪,待解!高手路由还请不吝赐教!

 

转载于:https://blog.51cto.com/edges/410096

相关文章: