前言:

        ×××作为一项成熟的技术,广泛应用于组织总部和分支机构之间的组网互联,其利用组织已有的互联网出口,虚拟出一条“专线”,将组织的分支机构和总部连接起来,组成一个大的局域网。IPSEC引进了完整的安全机制,包括加密、认证和数据防篡改功能。

        IPsec的协商分为两个阶段:

            第一阶段:验证对方,协商出IKE SA ,保护第二阶段IPSEC Sa协商过程

            第二阶段:保护具体的数据流

拓扑如下:

wKioL1fh5iHDU2z6AAAeeXZG_Qo108.png

(测试结果用红色字体展现)

在这种情况下,不做NAT的时候,×××可以正常使用,两边的私网是不能访问互联网的。

那么在做了NAT之后,私网可以访问互联网了,但是 ××× 却不能通信了。那么要怎么解决呢?

×××的配置这里就不再做过多的说明了,之前写的博客里面有做详细的配置讲解。要看的小伙伴们可以查看 http://pengjiawang.blog.51cto.com/10989721/1853989 哦!

下面我们直接开始做NAT吧!

首先测试一下IPSec ×××的联通性

CQ#ping 2.2.2.2 so lo 0


Type escape sequence to abort.

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

Packet sent with a source address of 1.1.1.1 

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 36/61/80 ms

CQ#

是可以通的哦!

测试与互联网的连通性

CQ#ping 202.1.1.1


Type escape sequence to abort.

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

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 16/24/44 ms

CQ#ping 202.1.1.1 so lo 0


Type escape sequence to abort.

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

Packet sent with a source address of 1.1.1.1 

.....

Success rate is 0 percent (0/5)

CQ#

可以看出,私网是不能ping通互联网的哈!

做NAT的配置

CQ(config)#ip access-list extended pat 

CQ(config-ext-nacl)#permit ip 1.1.1.0 0.0.0.255 any   //允许网段1.1.1.0访问所有的网段。因为互联网上的地址很多,不可能一个个的配置。

CQ(config)#ip nat inside source list pat interface f0/0 overload  //做基于接口的pat

CQ(config)#int f0/0

CQ(config-if)#ip nat outside 

CQ(config-if)#int lo 0

CQ(config-if)#ip nat inside 

//应用到接口,那么NAT已经做完了,下面来测试一下结果

CQ#ping 202.1.1.1 so lo 0


Type escape sequence to abort.

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

Packet sent with a source address of 1.1.1.1 

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/13/24 ms

CQ#

测试×××

CQ#ping 2.2.2.2 so lo 0


Type escape sequence to abort.

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

Packet sent with a source address of 1.1.1.1 

UUUUU

Success rate is 0 percent (0/5)

CQ#

可以看得出,显示的是不可达。为什么会这样呢?

我们来查看一下ACL

CQ#sh ip access-lists 

Extended IP access list pat

    10 permit ip 1.1.1.0 0.0.0.255 any (8 matches)

Extended IP access list ***

    10 permit ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255 (20 matches)

CQ#

有两个ACL,一个是×××的,一个是NAT的

其实,cisco路由器上的ACL是有优先级的,那么在cisco中,认为NAT的规则要优先于map的规则。

那么在这种情况下就会出现一个很有趣的现象

一开始 1.1.1.0 的网段进入路由器,匹配的显示名为pat的策略,而这条策略是做NAT转换的,转换了之后,互联网上不存在私网 2.2.2.0 的地址,所以就会显示不可达。实际上,因为策略 pat 已经匹配了这股流量,那么 *** 就不会再匹配了。


那要怎么解决呢?

其实我们可以根据他的规则做出相应的改变,我们可以在规则 pat 剔除去往 2.2.2.0 的流量(×××流量),从而让 *** 的策略匹配这股流量。


配置如下:


CQ(config)#ip access-list extended pat

CQ(config-ext-nacl)#5 deny ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255  //定义的序号为5 序号要在 10 permit ip 1.1.1.0 0.0.0.255 any 的前面,因为acl是从上往下匹配的


这样的话,在pat这条策略里面,就不会去匹配***的流量了,转而让***的策略匹配


测试结果:


CQ#ping 2.2.2.2 so lo 0


Type escape sequence to abort.

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

Packet sent with a source address of 1.1.1.1 

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 16/32/44 ms

CQ#ping 202.1.1.1 so lo 0


Type escape sequence to abort.

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

Packet sent with a source address of 1.1.1.1 

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/24/44 ms

CQ#

这样问题就解决了。