Ez×××根据easy ***的读音简写而来,是cisco的一个远程×××技术,他使用向客户端推送策略的方式大大减轻了客户端的配置,方便了管理。我最初学习这个技术的时候看的是cisco出的一本×××配置指南,记得那本书主要是拿图形化的软件工具来配的。这两天重学×××的拿到了在IOS上的配置指南,做了一个基础配置的小实验,配置命令还是挺多的,还要花点时间慢慢消化。

         拓扑:

 

esp32连不上wifi_客户端


         基本配置:

Client-A:




说明:Client-A在这里作为Ez×××背后的网络,使用loopback0模拟一台PC,一条默认路由指向Ez××× server。


interface Loopback0
 ip address 1.1.1.1 255.255.255.0
!
interface Serial0/0
 ip address 12.1.1.1 255.255.255.0
 clock rate 2000000
!
ip route 0.0.0.0 0.0.0.0 Serial0/0 12.1.1.2
!

 
Ez×××-Server:

 
   
  
Ez××× server   用户接收然后验证客户端发起的连接请求,客户端所需的策略都是在server上配置好后然后根据具体的条件推送给相应的客户。有一个小细节就是:Ez×××分为客户端模式和网络拓展模式(此基础之上又提出了网络拓展模式+)。这两者的一个明显区别就是客户端模式的IP地址由server端推送过来,网络拓展模式则不是这样,客户端自己决定网络编址。
!
hostname Ez×××-Server
!
aaa new-model  #启用3A实现认证功能
!
aaa authentication login LOCAL-DB local   #启用本地的数据库来认证,用于XAUTH
aaa authorization network BeiJing local   #启用组策略查找,使用组BeiJing
ip cef
!         
username cisco password 0 cisco  #本地认证数据库的一个条目,客户端发起连接时使用
!         
crypto isakmp policy 10  #建立ISAKMP策略
 hash md5
 authentication pre-share
 group 2   #DH只能是group 2,需要特别留意
!
crypto isakmp client configuration group BeiJing    #配置向客户推送的组策略,组名BeiJing
 key cisco   #密码,客户使用××× client客户端登录时选择对应的组输入密码
 dns 20.20.20.20  
 wins 20.20.20.20
 pool POOL-BJ  #使用client模式时客户使用的地址池
!
crypto ipsec transform-set BeiJing-Trans esp-des esp-md5-hmac  #定义转换集
!
crypto dynamic-map cisco 10  #Server端并不知道客户端,所以定义动态map
 set transform-set BeiJing-Trans   #调用前面定义的转换集
 reverse-route   #启用RRI,自动产生指向地址池的静态路由
!
crypto map cisco client authentication list LOCAL-DB    #为XAUTH启用IKE查询
 crypto map cisco isakmp authorization list BeiJing     #为组策略查找启用IKE查询
crypto map cisco client configuration address respond   #配置路由器响应模式
crypto map cisco 10 ipsec-isakmp dynamic cisco    #静态map调用动态map
!
interface FastEthernet0/0
 ip address 192.168.1.2 255.255.255.0
 duplex auto
 speed auto
 crypto map cisco   #调用crypto map
!
interface Serial0/0
 ip address 12.1.1.2 255.255.255.0
 clock rate 2000000
!
ip local pool POOL-BJ 172.16.0.1 172.16.0.100    #定义本地地址池
!
ip route 1.1.1.0 255.255.255.0 Serial0/0 12.1.1.1  #指向client的路由
!

 
Ez×××-Client:

 
   
  
客户端路由器与Server建立连接,他决定了加入那个组,然后从inside接口进入的流量默认情况下都作为×××流量进行加密(为开启分离隧道功能)。客户端路由器的配置相对于L2L的配置要简单很多。
!
hostname Ez×××-Client
!
ip cef
!       
crypto ipsec client ez*** NanJing
 connect manual  #手动发起连接
 group BeiJing key cisco  #这个组就是Ez×××-Server上定义的组策略的组名
 mode client   #使用client模式,还有network-extension等可选
 peer 192.168.1.2   #这个地址指向Ez×××-Client
 xauth userid mode interactive   #此句系统默认追加
!
interface Loopback0
 ip address 172.16.0.3 255.255.255.255
!
interface FastEthernet0/0
 ip address 192.168.1.3 255.255.255.0
 duplex auto
 speed auto
 crypto ipsec client ez*** NanJing    #调用,这里的接口是outside,输出时outside略去了
!
interface Serial0/2
 ip address 34.1.1.3 255.255.255.0
 clock rate 2000000
 crypto ipsec client ez*** NanJing inside  #很重要,指定×××的入口
!
ip route 1.1.1.0 255.255.255.0 FastEthernet0/0 192.168.1.2  #这个路由是必须的
!

 
Client-B:

 
   
  
挂在Ez×××的背后的一个路由器,使用loopback接口模拟内网,然后用一条默认路由指向Ez×××-Client。
!
hostname Client-B
!
ip cef
!
interface Loopback0
 ip address 4.4.4.4 255.255.255.0
!
interface Serial0/0
 ip address 34.1.1.4 255.255.255.0
 clock rate 2000000
!
ip route 0.0.0.0 0.0.0.0 Serial0/0 34.1.1.3
!

 
基本配置完成后下面测试连接。
1)         在客户端路由器发起连接
Ez×××-Client#crypto ipsec client ez*** connect 
Ez×××-Client#
*Mar  1 02:22:47.979: EZ×××(NanJing): Pending XAuth Request, Please enter the following command:
*Mar  1 02:22:47.979: EZ×××: crypto ipsec client ez*** xauth
使用上面的命令后×××尚未完全建立起连接,server端还没有向客户端推送组策略,我们在Server端配置了XAUTH,此时我们还没有发起认证请求,系统提示了让我们发送命令crypto ipsec client ez*** xauth发起认证请求。
Ez×××-Client#sh crypto isakmp sa 
dst             src             state          conn-id slot status
192.168.1.2     192.168.1.3     CONF_XAUTH

 
Ez×××-Client#sh crypto ipsec client ez*** 
Easy ××× Remote Phase: 4   #进入到最后一个步骤,前面三个phase已经完成
Tunnel name : NanJing
Inside interface list: Serial0/2
Outside interface: FastEthernet0/0 
Current State: XAUTH_REQ
Last Event: XAUTH_REQUEST
Save Password: Disallowed   #我们也可以在client端配置自动提交组名和密码
Current Ez××× Peer: 192.168.1.2

 
2)         发起XAUTH认证
Ez×××-Client#crypto ipsec client ez*** xauth 
Username: cisco
Password: 
Ez×××-Client#
*Mar  1 02:31:41.491: %CRYPTO-6-EZ×××_CONNECTION_UP: (Client)  User=  Group=BeiJing  Client_public_addr=192.168.1.3  Server_public_addr=192.168.1.2  Assigned_client_addr=172.16.0.4  
Ez×××-Client#
*Mar  1 02:31:42.607: %LINK-3-UPDOWN: Interface Loopback0, changed state to up
*Mar  1 02:31:43.607: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
这里输入的就是在server端配置的user cisco pass cisco建立的数据库。认证成功后×××成功建立,组策略推送过来,接口再次UP。
Ez×××-Client#sh crypto isakmp sa 
dst             src             state          conn-id slot status
192.168.1.2     192.168.1.3     QM_IDLE              1    0 ACTIVE
查看推送过来的组策略。
Ez×××-Client#sh crypto ipsec client ez*** 
Easy ××× Remote Phase: 4
Tunnel name : NanJing
Inside interface list: Serial0/2
Outside interface: FastEthernet0/0 
Current State: IPSEC_ACTIVE
Last Event: SOCKET_UP
Address: 172.16.0.4
Mask: 255.255.255.255
DNS Primary: 20.20.20.20
NBMS/WINS Primary: 20.20.20.20
Save Password: Disallowed
Current Ez××× Peer: 192.168.1.2

 
3)         测试连通性
Client-B#ping 1.1.1.1

 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 80/156/376 ms
如果我们要查看加解密包的情况需要去server端看,client端是看不出来的。
Ez×××-Server#sh crypto engine connections active 

 
  ID Interface       IP-Address   State  Algorithm               Encrypt   Decrypt
  1 FastEthernet0/0 192.168.1.2    set  HMAC_MD5+DES_56_CB        0        0 
2001 FastEthernet0/0      192.168.1.2     set    DES+MD5           5        0
2002 FastEthernet0/0      192.168.1.2     set    DES+MD5           0        5

 
4)         验证地址转换
在Client-A开启debug ip icmp后查看数据包的地址。
*Mar  1 02:36:27.447: ICMP: echo reply sent, src 1.1.1.1, dst 172.16.0.4
*Mar  1 02:36:27.567: ICMP: echo reply sent, src 1.1.1.1, dst 172.16.0.4
*Mar  1 02:36:27.719: ICMP: echo reply sent, src 1.1.1.1, dst 172.16.0.4
*Mar  1 02:36:27.835: ICMP: echo reply sent, src 1.1.1.1, dst 172.16.0.4
*Mar  1 02:36:27.951: ICMP: echo reply sent, src 1.1.1.1, dst 172.16.0.4
是我们定义的地址池的IP范围内(172.16.0.1----172.16.0.100),因为我测试过了几次,因此之类分配的是172.16.0.4而不是172.16.0.1。

 
5)         验证RRI。
Ez×××-Server#sh ip route static 
     1.0.0.0/24 is subnetted, 1 subnets
S       1.1.1.0 [1/0] via 12.1.1.1, Serial0/0
     172.16.0.0/32 is subnetted, 1 subnets
S       172.16.0.4 [1/0] via 192.168.1.3
172.16.0.4的路由不是我们手动添加上去的,这个就是RRI作用的结果。

 
6)         问题:inside端口后接路由器下的网段无法联通。
前面定义了Client-B上的loopback 0端口,下面用loopback0作为源端口来发起ping。
Client-B#ping 1.1.1.1 sou l0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 4.4.4.4 
.....
Success rate is 0 percent (0/5)
Ping不通。
R1上的debug输出如下所示:
*Mar  1 02:43:52.255: ICMP: echo reply sent, src 1.1.1.1, dst 4.4.4.4
*Mar  1 02:43:52.355: ICMP: dst (1.1.1.1) host unreachable rcv from 12.1.1.2

这就是client mode一个小特点,即client路由器后的直连网段可以成功连接,如果在跟一个路由器的话,就连不上了。

如何解决?

待解。

另外本实验还没有验证分离隧道的功能,有待研究。


 


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