在本小节,我们在Router与Router之间配置LAN-to-LAN ×××,即配置Router-to-Router LAN-to-LAN ×××。
 
 
配置Router-to-Router LAN-to-LAN ×××

 

IPsec LAN-to-LAN ×××(LAN-to-LAN ×××)_职场

 

 

 

说明:我们下面需要以上图的环境来演示LAN-to-LAN ×××的效果,其中两个远程公司的网络上海和北京,如R5与R4之间需要直接使用私有地址来互访,比如R5通过直接访问地址192.168.1.4来访问R4,而R2则相当于Internet路由器,R2只负责让R1与R3能够通信,R2不会配置任何路由,R2不允许拥有上海与北京公司内部的路由10.1.1.0与192.168.1.0,在配置完LAN-to-LAN ×××之后,最终上海与北京两个网络之间通过×××隧道来穿越没有路由的R2来进行通信,实现在私网与私网之间穿越公网的通信。
 
1.配置基础网络环境 
1)配置R1
r1(config)#int f0/0
r1(config-if)#ip add 12.1.1.1 255.255.255.0
r1(config-if)#no sh
r1(config-if)#exit
 
r1(config)#int f0/1
r1(config-if)#ip add 10.1.1.1 255.255.255.0
r1(config-if)#no sh
r1(config-if)#exit
 
r1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
说明:配置R1的接口地址,并写默认路由指向Internet(路由器R2),地址12.1.1.2。
 
2)配置R2
r2(config)#int f0/0
r2(config-if)#ip add 12.1.1.2 255.255.255.0
r2(config-if)#no sh
r2(config-if)#exit
 
r2(config)#int f0/1
r2(config-if)#ip add 23.1.1.2 255.255.255.0
r2(config-if)#no sh
r2(config-if)#exit
说明:配置R2的接口地址,因为R2模拟Internet,R2只需要有公网路由12.1.1.0和23.1.1.0即可,所以R2不需要写任何路由,也不允许写任何路由。
 
3)配置R3
r3(config)#int f0/0
r3(config-if)#ip add 192.168.1.3 255.255.255.0
r3(config-if)#no sh
r3(config-if)#exit
 
r3(config)#int f0/1
r3(config-if)#ip add 23.1.1.3 255.255.255.0
r3(config-if)#no sh
r3(config-if)#exit
 
r3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2
说明:配置R3的接口地址,并写默认路由指向Internet(路由器R2),地址23.1.1.2。
 
 
4)配置R4
r4(config)#int f0/0
r4(config-if)#ip add 192.168.1.4 255.255.255.0
r4(config-if)#no sh
r4(config-if)#exit
 
r4(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.3
说明:配置R4的接口地址,并写默认路由指向北京公司出口路由器R3。
 
5)配置R5
r5(config)#int f0/1
r5(config-if)#ip add 10.1.1.5 255.255.255.0
r5(config-if)#no sh
r5(config-if)#exit
 
r5(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1
说明:配置R5的接口地址,并写默认路由指向上海公司出口路由器R1。
 
2.测试基础网络环境
1)测试R1R3的连通性:
r1#ping 23.1.1.3
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 23.1.1.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/98/152 ms
r1#
说明:因为R1与R3都有默认路由指向Internet(路由器R2),而R2与R1和R3都是可达的,所以R1与R3通信正常。
 
2)测试R1R4的连通性:
r1#ping 192.168.1.4
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
r1#
说明:虽然R1有默认路由指向Internet路由器R2,但R2只有公网路由12.1.1.0和23.1.1.0,只能保证R1与R3的通信,所以R1无法访问北京公司的私有网段192.168.1.0。
 
3)测试R5R4的连通性:
r5#ping 192.168.1.4
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
r5#
说明:同上理由,R2只有公网路由12.1.1.0和23.1.1.0,只能保证R1与R3的通信,所以上海和北京公司无法通过私有地址互访。
 
4)查看R2的路由表:
r2#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route
 
Gateway of last resort is not set
 
     23.0.0.0/24 is subnetted, 1 subnets
C       23.1.1.0 is directly connected, FastEthernet0/1
     12.0.0.0/24 is subnetted, 1 subnets
C       12.1.1.0 is directly connected, FastEthernet0/0
r2#
说明:因为R2模拟Internet路由器,所以R2没有写任何路由,R2的责任就只是保证R1与R3能够通信即可。
 
 
3.配置LAN-to-LAN ×××
1)在R1上配置IKEISAKMP)策略:
r1(config)#crypto isakmp policy 1
r1(config-isakmp)#encryption 3des
r1(config-isakmp)#hash sha
r1(config-isakmp)#authentication pre-share
r1(config-isakmp)#group 2
r1(config-isakmp)#exit
说明:定义了ISAKMP policy 1,加密方式为3des,hash算法为sha,认证方式为Pre-Shared Keys (PSK),密钥算法(Diffie-Hellman)为group 2。
 
 
2)在R1上定义认证标识:
r1(config)#crypto isakmp key 0 cisco123 address 23.1.1.3
说明:因为之前定义的认证方式为Pre-Shared Keys (PSK),所以需要定义认证密码,这里定义与peer 23.1.1.3的认证密码为cisco123,并且双方密码必须一致,否则无法建立IKE SA,其中0表示密码在running-config中显示为明文。
 
3)在R1上配置IPsec transform:
r1(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac
r1(cfg-crypto-trans)#exit
说明:配置了transform-set为ccie,其中数据封装使用esp加3des加密,并且使用esp结合sha做hash计算,默认的IPsec mode为tunnel。
 
4)在R1上定义感兴趣流量:
r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255
说明:这里需要被IPsec保护传输的流量为上海公司至北京公司的流量,即10.1.1.0/24发往 192.168.1.0/24的流量,切记不可使用any来表示地址。
 
 
5)在R1上创建crypto map:
r1(config)#crypto map l2l 1 ipsec-isakmp
r1(config-crypto-map)#set peer 23.1.1.3
r1(config-crypto-map)#set transform-set ccie
r1(config-crypto-map)#match address 100
r1(config-crypto-map)#exit
说明:在R1上配置crypto map为l2l,序号为1,即第1组策略,其中指定加密数据发往的对端为23.1.1.3,即和23.1.1.3建立IPsec隧道,调用的IPsec transform为ccie,并且指定ACL 100中的流量为被保护的流量。
 
6)在R1上将crypto map应用于接口:
r1(config)#int f0/0
r1(config-if)#crypto map l2l
r1(config-if)#exit
r1(config)#
*Mar  1 00:21:45.171: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
r1(config)#
说明:将crypto map应用在去往北京公司的接口F0/0上。
 
7)使用相同方式配置R3LAN-to-LAN ×××:
r3(config)#crypto isakmp policy 1
r3(config-isakmp)#encryption 3des
r3(config-isakmp)#hash sha
r3(config-isakmp)#authentication pre-share
r3(config-isakmp)#group 2
r3(config-isakmp)#exit 
 
r3(config)#crypto isakmp key 0 cisco123 address 12.1.1.1
 
r3(config)#crypto ipsec transform-set ccie esp-3des esp-sha-hmac
r3(cfg-crypto-trans)#exit
 
r3(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255
 
r3(config)#crypto map l2l 1 ipsec-isakmp
r3(config-crypto-map)#set peer 12.1.1.1
r3(config-crypto-map)#set transform-set ccie
r3(config-crypto-map)#match address 100
r3(config-crypto-map)#exit
r3(config)#
 
r3(config)#int f0/1
r3(config-if)#crypto map l2l
r3(config-if)#
*Mar  1 00:32:58.907: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
r3(config-if)#
说明:R3与R1的IKE和IPsec策略必须保持一致。
 
4.测试×××
1)在R1上查看IKEISAKMP)策略:
Global IKE policy
Protection suite of priority 1
        encryption algorithm:   Three key triple DES
        hash algorithm:         Secure Hash Standard
        authentication method:  Pre-Shared Key
        Diffie-Hellman group:   #2 (1024 bit)
        lifetime:               86400 seconds, no volume limit
Default protection suite
        encryption algorithm:   DES - Data Encryption Standard (56 bit keys).
        hash algorithm:         Secure Hash Standard
        authentication method:  Rivest-Shamir-Adleman Signature
        Diffie-Hellman group:   #1 (768 bit)
        lifetime:               86400 seconds, no volume limit
r1#
说明:上面列出了IKE(ISAKMP)策略中默认的加密算法(Encryption),Hash算法(HMAC),密钥算法(Diffie-Hellman),认证方式(Authentication),以及我们配置的参数。
 
 
2)查看Phase One时的认证密码:
r1#show crypto isakmp key
Keyring      Hostname/Address                            Preshared Key
 
default      23.1.1.3                                    cisco123
r1#
说明:可以看出我们配置的与peer 23.1.1.3之间的认证密码是csico123。
 
3)查看IKE SAISAKMP SA):
r1#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id slot status
 
IPv6 Crypto ISAKMP SA
 
r1#
说明:虽然在R1与R3之间已经配置足够的×××命令,但IKE SA仍然没有建立,这是因为,在没有用户流量的传输来初始化的情况下,IKE SA通常是无法自动建立的。
 
4)查看R1IKE SApeer
r1#show crypto isakmp peers
 
r1#
r1#
说明:可以看见目前没有任何IKE SA peer。
 
5)查看R1上的IPsec Transform:
r1#show crypto ipsec transform-set
Transform set ccie: { esp-3des esp-sha-hmac  }
   will negotiate = { Tunnel,  },
  
 
r1#
说明:IPsec Transform显示了数据封装使用esp加3des加密,并且使用esp结合sha做hash计算,默认配置时没有指定IPsec mode,所以默认的mode和预期一样是tunnel。
 
 
6)查看R1上的IPsec SA
r1#show crypto ipsec sa
 
interface: FastEthernet0/0
    Crypto map tag: l2l, local addr 12.1.1.1
 
   protected vrf: (none)
   local  ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)
   remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
   current_peer 23.1.1.3 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
    #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0
 
     local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3
     path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
     current outbound spi: 0x0(0)
 
     inbound esp sas:
 
     inbound ah sas:
         
     inbound pcp sas:
 
     outbound esp sas:
 
     outbound ah sas:
 
     outbound pcp sas:
r1#
说明:可以看见当前R1上IPsec SA的信息,但目前的SA并非活动状态,并且SA显示了正确的数据信息,即从本地10.1.1.0/24发往192.168.1.0/24的。
 
 
7)查看R1上的IPsec SALifetime
r1#show crypto ipsec security-association
Security association lifetime: 4608000 kilobytes/3600 seconds
 
r1#
说明:默认的IPsec SA的Lifetime为3600 seconds,即1小时;默认volume limit为4,608,000 Kbytes,即4.608 Gbyte。
 
8)查看R1上的crypto map
r1#show crypto map
Crypto Map "l2l" 1 ipsec-isakmp
        Peer = 23.1.1.3
        Extended IP access list 100
            access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255
        Current peer: 23.1.1.3
        Security association lifetime: 4608000 kilobytes/3600 seconds
        PFS (Y/N): N
        Transform sets={
                ccie,
        }
        Interfaces using crypto map l2l:
                FastEthernet0/0
 
 
r1#
说明: crypto map显示了指定加密数据发往的对端为23.1.1.3,即和23.1.1.3建立IPsec隧道,调用的IPsec transform为ccie,并且指定ACL 100中的流量为被保护的流量。
 
 
9)从上海公司R5向北京公司R4发送流量:
r5#ping 192.168.1.4     
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 64/125/212 ms
r5#
说明:上海公司R5向北京公司R4发送的5个数据包,有4个成功穿越了Internet,说明该流量激活了IKE SA,并且在双方应该成功建立了IPsec隧道,所以才实现了×××的功能。
 
 
10)再次查看R1IKE SApeer
r1#show crypto isakmp peers
Peer: 23.1.1.3 Port: 500 Local: 12.1.1.1
 Phase1 id: 23.1.1.3
r1#
说明:R1已经成功与R3建立IKE peer,说明IKE SA也应该成功建立,R1本地源地址为12.1.1.1,目标为23.1.1.3,目标端口号为500。
 
 
11)再次查看R1上的IKE SAISAKMP SA):
r1#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id slot status
23.1.1.3        12.1.1.1        QM_IDLE           1001    0 ACTIVE
 
IPv6 Crypto ISAKMP SA
 
r1#
说明:IKE SA已经成功建立,R1本地源地址为12.1.1.1,目标为23.1.1.3,并且为激活状态,如为(delete)状态,则不可用。
 
 
12)再次查看R1上的IPsec SA
r1#show crypto ipsec sa
 
interface: FastEthernet0/0
    Crypto map tag: l2l, local addr 12.1.1.1
 
   protected vrf: (none)
   local  ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)
   remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)
   current_peer 23.1.1.3 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
    #pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 1, #recv errors 0
 
     local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3
     path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
     current outbound spi: 0x84D01C7D(2228231293)
 
     inbound esp sas:
      spi: 0xEB838CF1(3951267057)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 1, flow_id: SW:1, crypto map: l2l
        sa timing: remaining key lifetime (k/sec): (4537199/3427)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE
 
     inbound ah sas:
 
     inbound pcp sas:
 
     outbound esp sas:
      spi: 0x84D01C7D(2228231293)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2, flow_id: SW:2, crypto map: l2l
        sa timing: remaining key lifetime (k/sec): (4537199/3425)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE
 
     outbound ah sas:
 
     outbound pcp sas:
r1#
说明:IPsec SA中显示了之前通了的4个包成功被IPsec加密,并且可以看出该SA为Active状态,特别要注意的是,目前的IPsec mode工作在Tunnel模式。
 
 
13)查看上海公司向北京公司发送数据包的路径走向:
r5#traceroute 192.168.1.4
 
Type escape sequence to abort.
Tracing the route to 192.168.1.4
 
  1 10.1.1.1 116 msec 120 msec 28 msec
  2  *  *  *
  3 192.168.1.4 392 msec *  312 msec
r5#
说明:从上海公司发向北京公司的数据包到达上海的路由器后,可以看出中间只有一跳,就到达了目的地,说明中间的多跳已经被隧道取代为一跳了。
 
 
5.调试×××中的感兴趣流量
1)在R1上将ACL定义的感兴趣流量改为任意流量,即any
r1(config)#no access-list 100
r1(config)#access-list 100 permit ip any any
 
2)查看R1上的crypto map
r1#show crypto map
Crypto Map "l2l" 1 ipsec-isakmp
        Peer = 23.1.1.3
        Extended IP access list 100
            access-list 100 permit ip any any
        Current peer: 23.1.1.3
        Security association lifetime: 4608000 kilobytes/3600 seconds
        PFS (Y/N): N
        Transform sets={
                ccie,
        }
        Interfaces using crypto map l2l:
                FastEthernet0/0
 
 
r1#
说明:显示了被IPsec 保护的流量为ACL 100中的流量,即任意流量。
 
3)查看R1上的IPsec SA
 
r1#show crypto ipsec sa
 
interface: FastEthernet0/0
    Crypto map tag: l2l, local addr 12.1.1.1
 
   protected vrf: (none)
   local  ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
   remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
   current_peer 23.1.1.3 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
    #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0
 
     local crypto endpt.: 12.1.1.1, remote crypto endpt.: 23.1.1.3
     path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
     current outbound spi: 0x0(0)
 
     inbound esp sas:
 
     inbound ah sas:
         
     inbound pcp sas:
 
     outbound esp sas:
 
     outbound ah sas:
 
     outbound pcp sas:
r1#
说明:目前IPsec SA中也显示被保护的流量为任意,理论上是会出错的。
 
4)从上海公司R5向北京公司R4发送流量:
r5#ping 192.168.1.4
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
r5#
说明:这次上海公司R5向北京公司R4发送的数据包没能激活了IKE SA,所以需要将定义感兴趣流量中ACL中的any替换为具体网段。(注:即使改为access-list 100 permit ip 10.1.1.0 0.0.0.255 any,也是没有用的,所以源和目的都不能使用any来表示。)
 
5)修改感兴趣流量的ACL
r1(config)#no access-list 100
r1(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255
说明:将感兴趣流量改为从本地10.1.1.0/24发往192.168.1.0/24的。
 
6)再次从上海公司R5向北京公司R4发送流量:
r5#ping 192.168.1.4           
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/132/312 ms
r5#
说明:替换掉感兴趣流量ACL中的any后,×××一切恢复正常,所以在配置ACL定义感兴趣流量时需要格外注意的是ACL中不要使用any来表示源或者目标,否则会出问题。
 
 
6.测试NATLAN-to-LAN ××× 的影响:
1)在R1上配置NAT
r1(config)#interface f0/1
r1(config-if)#ip nat inside
r1(config-if)#exit
 
r1(config)#int f0/0
r1(config-if)#ip nat outside
 
r1(config)#access-list 1 permit any
r1(config)#ip nat inside source list 1 interface f0/0 overload
说明:在上海公司路由器R1上开启NAT,内网接口F0/1为inside,外网接口F0/0为outside,并且将所有内网流量通过NAT将源IP转换为外网接口F0/0的地址。
 
2)从上海公司R5向北京公司R4发送流量:
r5#ping 192.168.1.4              
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
r5#
说明:和预期一样,IPsec流量是不能穿越NAT的。
 
3)查看NAT转换信息:
r1#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 12.1.1.1:15       10.1.1.5:15        192.168.1.4:15     192.168.1.4:15
icmp 12.1.1.1:16       10.1.1.5:16        192.168.1.4:16     192.168.1.4:16
icmp 12.1.1.1:17       10.1.1.5:17        192.168.1.4:17     192.168.1.4:17
r1#
说明:转换表中显示刚才的流量被NAT转换,但流量却不再被IPsec认同。
 
4)删除R1上的NAT
r1(config)#access-list 1 deny 10.1.1.0 0.0.0.255
r1(config)#access-list 1 permit any
 
r1#cle ip nat translation *
r1#
r1#
r1#sh ip nat translations 
说明:因为被NAT转换的流量不再是合法的IPsec流量,所以我们将需要被IPsec保护的从上海发往北京的流量,即10.1.1.0/24发往 192.168.1.0/24的流量不被NAT转换。
 
5)再次从上海公司R5向北京公司R4发送流量:
r5#ping 192.168.1.4             
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/145/248 ms
r5#
说明:不被NAT转换的流量和之前一样再次通过IPsec ×××隧道穿越了Internet。