首先,仍然是聊需求:
首先,老样子,先聊聊需求,为什么要做这个?
有三个公司,其中俩个分点深圳、北京有办公人员,故需要复用公网线路(nat),使用防火墙或者路由器待定,武汉为纯机房,无需nat实现。点对点网络***建立,保证所有各分支直接通过内网进行互访。
通俗理解:
三个分点走加密传输,不裸奔。不使用物理专线。
此处省略几百字。。。。。
好,直接上实验拓扑结构,如下。标注的比较清楚,各位随意。
PS:简单说下
R1、R5、R7分别模拟各分支的主机。
R2、R4、R6模拟各分支出口路由器
R3模拟运营商设备,这里为了方便,一台就足够了。
***互联接入方式,使用全互联,为什么不做hub-sp形状,主要不推荐这种方式。存在单点故障
配置思路:
1.底层所有配置打通
2.默认路由、nat、配置
3.ipsec-***配置
4.测试各分支线路联通
直接上配置:
R3(模拟运营商)配置:
ISP(config)#int loopback 10
ISP(config-if)# ip address 114.114.114.114 255.255.255.255
!
ISP(config)#int f0/0
ISP(config-if)# ip address 34.1.1.3 255.255.255.0
ISP(config-if)# no shut
!
ISP(config)# int f1/0
ISP(config-if)# ip address 23.1.1.3 255.255.255.0
ISP(config-if)# no shut
!
ISP(config)# int f1/1
ISP(config-if)# ip address 36.1.1.3 255.255.255.0
ISP(config-if)# no shut
!
R1(深圳模拟主机)配置:【模拟主机】
R1(config)# no ip routing
R1(config)#int f1/0
R1(config-if)# ip address dhcp
R1(config-if)# no shut
R5(北京模拟主机)配置:
R5(config)# no ip routing
R5(config)#int f0/0
R5(config-if)# ip address dhcp
R5(config-if)# no shut
R7(武汉模拟主机)配置:
R7(config)#no ip routing
R7(config)#int f1/0
R7(config-if)# ip address dhcp
R7(config-if)# no shut
深圳router配置:
1.底层基础配置
SZ(config)#interface FastEthernet0/0
SZ(config-if)#ip address 23.1.1.2255.255.255.0
SZ(config-if)#ip nat outside 【nat ouside方向,具体不做赘述】
SZ(config-if)#crypto map ***map 【挂载***策略】
!
SZ(config)#interface FastEthernet1/0
SZ(config-if)#ip address 192.168.10.1255.255.255.0
SZ(config-if)#ip nat inside 【nat inside方向】
SZ(config)#ip route 0.0.0.0 0.0.0.023.1.1.3 【默认路由】
SZ(config)#ip access-list extended lan-pat 【定义名字为lan-pat的扩展ACL】
SZ(config-ext-nacl)# permit ip 192.168.10.00.0.0.255 any 【定义需要nat转换的子网】
SZ(config)#ip nat inside source list lan-pat interface FastEthernet0/0 overload
【开启nat出接口地址复用,并挂载扩展ACL,不做赘述】
SZ(config)#ip dhcp pool sz 【起dhcp的地址池名】
SZ(dhcp-config)# network 192.168.10.0 255.255.255.0 【允许使用的子网】
SZ(dhcp-config)# default-router 192.168.10.1 【网关】
SZ(dhcp-config)# dns-server 8.8.8.8 【DNS服务器】
SZ(dhcp-config)# lease 300 【租期】
配置互联网密钥交换(IKE) 【第一步为网络底层配置,这里省略不做赘述】
SZ(config)#crypto isakmp policy 10
// 定义ISAKMP策略集,以便在IPSec端点之间建立ISAKMP对等体关系,这里的10是代表的优先级,取值范围在1-10000,1表示优先级最高
SZ(config-isakmp)# encr 3des // 配置消息加密算法为3des
SZ(config-isakmp)# authentication pre-share // 配置对等体身份验证方法为预共享密钥
SZ(config-isakmp)# group 2 // 配置密钥交换参数为1536位的Deffie-Hellman
SZ(config)#crypto isakmp key 6 allen address 34.1.1.4 // 配置第一阶段预共享密钥,密钥为allen,远程对等体的IP地址为34.1.1.4
SZ(config)#crypto isakmp key 6 allen address 36.1.1.6 // 配置第一阶段预共享密钥,密钥为allen,远程对等体的IP地址为36.1.1.6
!
SZ(config)#crypto ipsec transform-set***set esp-3des esp-md5-hmac
// 创建一个变换集名为R1set,变换集定义数据流量如何被保护。如果不配置连接模式,默认就是tunnel,即mode tunnel
!
SZ(config)#ip access-list extended ***add 【定义名为***add俩端内网的流量,后称“感兴趣流”】
SZ(config-ext-nacl)# permit ip 192.168.10.00.0.0.255 192.168.20.0 0.0.0.255
SZ(config)#ip access-list extended ***add2 【定义名为***add2俩端内网的流量,后称“感兴趣流”】
SZ(config-ext-nacl)# permit ip 192.168.10.00.0.0.255 192.168.30.0 0.0.0.255
SZ(config)#crypto map ***map 10ipsec-isakmp
// 建立IPSec加密映射,使用ISAKMP建立IPSEC SA,以保护当前加密映射条目指定的数据库
SZ(config-crypto-map)# set peer 34.1.1.4 // 指定对等体IP地址
SZ(config-crypto-map)# set transform-set***set // 指定变换集
SZ(config-crypto-map)# match address ***add // 引用前面定义的兴趣流扩展ACL
SZ(config)#crypto map ***map 15ipsec-isakmp
SZ(config-crypto-map)#set peer 36.1.1.6
SZ(config-crypto-map)#set transform-set***set
SZ(config-crypto-map)#match address ***add2
SZ(config)#interface FastEthernet0/0 【公网出接口】
SZ(config-if)#crypto map ***map 【挂载***策略】
到这里配置深圳分点出口路由器ipsec-***配置结束。
北京router配置:
BJ(config)#interface FastEthernet0/0
BJ(config-if)# ip address 192.168.20.1255.255.255.0
BJ(config-if)# ip nat inside
BJ(config)#interface FastEthernet1/0
BJ(config-if)# ip address 34.1.1.4255.255.255.0
BJ(config-if)# ip nat outside
BJ(config)# ip route 0.0.0.0 0.0.0.0 34.1.1.3
BJ(config)# ip access-list extended lan-pat
BJ(config-ext-nacl)# permit ip 192.168.20.00.0.0.255 any
BJ(config)# ip nat inside source list lan-pat interface FastEthernet1/0 overload
BJ(config)#ip dhcp pool bj
BJ(dhcp-config)# network 192.168.20.0 255.255.255.0
BJ(dhcp-config)# default-router 192.168.20.1
BJ(dhcp-config)# dns-server 8.8.8.8
BJ(dhcp-config)# lease 300
BJ(config)# crypto isakmp policy 10
BJ(config-isakmp)# encr 3des
BJ(config-isakmp)# authentication pre-share
BJ(config-isakmp)# group 2
BJ(config)# crypto isakmp key allen address 23.1.1.2
BJ(config)# crypto isakmp key allen address 36.1.1.6
BJ(config)#crypto ipsec transform-set***set esp-3des esp-md5-hmac
BJ(config)# ip access-list extended ***add1
BJ(config-ext-nacl)# permit ip 192.168.20.00.0.0.255 192.168.10.0 0.0.0.255
BJ(config)# ip access-list extended ***add2
BJ(config-ext-nacl)# permit ip 192.168.20.00.0.0.255 192.168.30.0 0.0.0.255
BJ(config)#crypto map ***map 10ipsec-isakmp
BJ(config-crypto-map)# set peer 23.1.1.2
BJ(config-crypto-map)# set transform-set***set
BJ(config-crypto-map)# match address***add1
BJ(config)#crypto map ***map 15ipsec-isakmp
BJ(config-crypto-map)# set peer 36.1.1.6
BJ(config-crypto-map)# set transform-set***set
BJ(config-crypto-map)# match address***add2
BJ(config)#interface FastEthernet1/0
BJ(config-if)# crypto map ***map
北京分点配置结束。
武汉router配置:
WH(config)# interface FastEthernet0/0
WH(config-if)# ip address 36.1.1.6255.255.255.0
WH(config-if)# crypto map ***map
WH(config)# interface FastEthernet1/0
WH(config-if)# ip address 192.168.30.1255.255.255.0
WH(config)# ip route 0.0.0.0 0.0.0.036.1.1.3
WH(config)#ip dhcp pool wh
WH(dhcp-config)# network 192.168.30.0255.255.255.0
WH(dhcp-config)# default-router 192.168.30.1
WH(dhcp-config)# dns-server 8.8.8.8
WH(dhcp-config)# lease 300
!
WH(config)#crypto isakmp policy 10
WH(config-isakmp)# encr 3des
WH(config-isakmp)# authentication pre-share
WH(config-isakmp)# group 2
WH(config)# crypto isakmp key allen address 23.1.1.2
WH(config)# crypto isakmp key allen address 34.1.1.4
!
WH(config)# crypto ipsec transform-set***set esp-3des esp-md5-hmac
WH(config)# ip access-list extended ***add1
WH(config-ext-nacl)# permit ip 192.168.30.00.0.0.255 192.168.10.0 0.0.0.255
WH(config)# ip access-list extended ***add2
WH(config-ext-nacl)# permit ip 192.168.30.00.0.0.255 192.168.20.0 0.0.0.255
WH(config)# crypto map ***map 10ipsec-isakmp
WH(config-crypto-map)# set peer 23.1.1.2
WH(config-crypto-map)# set transform-set***set
WH(config-crypto-map)# match address***add1
WH(config)# crypto map ***map 15ipsec-isakmp
WH(config-crypto-map)# set peer 34.1.1.4
WH(config-crypto-map)# set transform-set***set
WH(config-crypto-map)# match address***add2
武汉分点配置结束。
好,现在开始从深圳测试ping北京、武汉分点内网主机,ping武汉分点:
R1#ping 192.168.20.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
R1#ping 192.168.30.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.30.2, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
R1#
从北京测试ping深圳、武汉内网主机:
R5#ping 192.168.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
R5#ping 192.168.30.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.30.1, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
R5#
为什么呢?明明配置都是正确的,为什么是U(目标不可达)?因为是实验环境,我们不妨做一次nat debug调试看下路由器处理的过程【真机不要随便debug,切记】
BJ#debug ip nat detailed
*Dec 23 16:47:08.935: NAT: o: icmp (192.168.30.1, 8) -> (34.1.1.4, 8) [61]
*Dec 23 16:47:08.935: NAT: s=34.1.1.3, d=34.1.1.4->192.168.20.2 [61]
*Dec 23 16:47:09.003: NAT*: i: icmp (192.168.20.2, 8) -> (192.168.30.1, 8) [34502]
*Dec 23 16:47:09.003: NAT*: s=192.168.20.2->34.1.1.4, d=192.168.30.1 [34502]
*Dec 23 16:47:09.067: NAT: o: icmp (192.168.30.1, 8) -> (34.1.1.4, 8) [62]
*Dec 23 16:47:09.071: NAT: s=34.1.1.3, d=34.1.1.4->192.168.20.2 [62]
分析上面日志发现北京的主机出去访问,怎么被nat转换成公网地址了。这个明显有问题。公网地址ping内网地址,肯定ping不通的。
因为深圳分店存在NAT转换,,我们在给出接口natoverload的时候,如果不把对端内网的流量提前deny,即:强行让流量不走nat出去。也就是在我们其他产商口中提到的“源不转换”的配置。
PS:为什么武汉不用做源不转换,因为武汉不存在nat复用的情况,所以无需配置“源不转换”
所以这里,立刻发现,北京的分点有nat出接口复用,会不会是发起对端内网访问时,匹配到了这条acl。
BJ#show ip access-lists
Extended IP access list lan-pat
10 permit ip 192.168.20.0 0.0.0.255 any (2 matches) 【果然默认匹配到了】
good,问题找到了,那我们进到这个lan-pat的acl中,将源和目的的访问再该acl里面进行deny,使***的流量匹配到tunnel上,走tunnel隧道出去。
BJ(config)#ip access-list extended lan-pat
BJ(config-ext-nacl)# 1 deny ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
BJ(config-ext-nacl)# 2 deny ip 192.168.20.0 0.0.0.255 192.168.30.0 0.0.0.255
PS:命令最前面的1是序列号,思科默认从10开始排序,这里写1自然就排到了默认10的上面。那现在我们在访问下试试
R5#ping 192.168.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/41/60 ms
R5#ping 192.168.30.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.30.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 20/41/60 ms
R5#
好了,到这里,所有分支的内网主机全部互相ping通,皆大欢喜。因为这是比较基础和普遍的IPSEC-***部署方式,我这里就不过多说了。
欢迎各位大拿,路过拍砖。一字一句,都非常感谢。