2、GRE隧道:
IPSEC的问题:只支持单播流量,组播和广播流量是不会穿过数据SA的。
GRE原理:将一个完整的组播和广播数据包封装在一个单播数据包(IPSEC)里,以处理如OSPF的组播或
RIP的广播数据流,以完成对端的动态路由学习。
cisco对GRE的应用,本质是:GRE处理广播、组播、非IP数据流,而IPSEC提供单播框架保护 ,以便在IP
骨干网上传输。
拓扑图:
192.168.1.0/24/R1/192.1.1.1——WAN——193.1.1.1/R2/192.168.2.0/24
|————————————————|
192.168.3.1/GRE隧道/192.168.3.2
回顾:IPSEC需要使用的协议,被ACL放行
管理连接使用的是UDP端口500
AH和ESP不使用端口,使用协议51和50
NAT-T使用的是UDP端口4500
IPSEC-OVER-UDP使用的是UDP端口10000
IPSEC-OVER-TCP使用的是TCP端口10000
在后三者中,被用来处理NAT、PAT对IPSEC造成的影响,如果同时被配置,IPSEC-OVER-TCP优先于NAT-T,
NAT-T优先于IPSEC-OVER-UDP ,NAT-T由cisco开发,已成为开放标准,默认在高IOS版本的cisco路由器上
是开启的
因此应当始终遵循的是:在IPSEC架构中,这些流量必须被ACL放行。
ACL语句示例如:
per udp host 1.1.1.1 host 2.2.2.2 eq 500
per esp host 1.1.1.1 host 2.2.2.2
per gre host 1.1.1.1 host 2.2.2.2
在路由器上如果NAT-T被关闭,使用cry ipsec nat-tans udp-encaps命令开启
在此例中,有三个问题需要处理:
1、WAN是IP骨干网,GRE使用IPX300
2、两端运行动态路由协议,需要相互学习
3、端点之间流量需要被保护
配置要点:
1、两端配置GRE隧道,很简单,使用tunnel虚拟接口,指定源和目的端,以处理IP和IPX的问题。
2、将虚拟接口IP地址通告到动态路由协议中,动态路由协议将通过TUNNEL网络学习到对端的路由。
3、配置IPSEC,这里很简单,cry acl只需要保护TUNNRL流量即可。在一个点到点的连接中, IPSEC使用传输模式
4、记得在外部接口允许IPSEC和GRE的流量
基本配置:提示,上面是一个标准拓扑,在实验中我做了简化,这里密钥WAN中的设备存在,两端的WAN接口是处在同一网段的。
R1:
crypto isakmp policy 10
authentication pre-share
group 2
crypto isakmp key cisco123 address 192.1.1.2
!
!
crypto ipsec transform-set cisco esp-des esp-sha-hmac
!
crypto map mymap 10 ipsec-isakmp
set peer 192.1.1.2
set transform-set cisco
match address 101
!interface Loopback0
ip address 192.168.1.1 255.255.255.0
!
interface Tunnel0
ip address 193.1.1.1 255.255.255.0
tunnel source 192.1.1.1
tunnel destination 192.1.1.2
配置TUNNEL
!
interface FastEthernet0/0
ip address 192.1.1.1 255.255.255.0
duplex half
crypto map mymap
router ospf 1
log-adjacency-changes
network 192.168.1.0 0.0.0.255 area 0
network 193.1.1.0 0.0.0.255 area 1
!
ip route 0.0.0.0 0.0.0.0 FastEthernet0/0
access-list 101 permit gre host 192.1.1.1 host 192.1.1.2
注意:这里的ACL既不是私有网络,也不是GRE通告的网络,而是WAN接口!
!
R2:
crypto isakmp policy 10
authentication pre-share
group 2
crypto isakmp key cisco123 address 192.1.1.1
crypto ipsec transform-set cisco esp-des esp-sha-hmac
!
crypto map mymap 10 ipsec-isakmp
set peer 192.1.1.1
set transform-set cisco
match address 101
interface Tunnel0
ip address 193.1.1.2 255.255.255.0
tunnel source 192.1.1.2
tunnel destination 192.1.1.1
!
interface FastEthernet0/0
ip address 192.1.1.2 255.255.255.0
duplex half
crypto map mymap
interface FastEthernet2/0
ip address 10.1.1.2 255.255.255.0
duplex half
!
router ospf 1
no log-adjacency-changes
network 10.1.1.0 0.0.0.255 area 1
network 193.1.1.0 0.0.0.255 area 1
!
ip route 0.0.0.0 0.0.0.0 FastEthernet0/0
access-list 101 permit gre host 192.1.1.2 host 192.1.1.1
R2#sh ip rou
Gateway of last resort is 0.0.0.0 to network 0.0.0.0
10.0.0.0/24 is subnetted, 1 subnets
C 10.1.1.0 is directly connected, FastEthernet2/0
C 193.1.1.0/24 is directly connected, Tunnel0
C 192.1.1.0/24 is directly connected, FastEthernet0/0
192.168.1.0/32 is subnetted, 1 subnets
O IA 192.168.1.1 [110/11112] via 193.1.1.1, 00:48:05, Tunnel0
S* 0.0.0.0/0 is directly connected, FastEthernet0/0
检查R2路由表,得到R1的内部网络路由,通过TUNNEL学习到。但是并不学习到WAN的路由,因为在OSPF中不需要通告WAN接口的路由条目。
这里有个关键的地方:
CRY ACL的解析:为什么不像普通的IPSEC,目标网络和源网络都设置成为私有网络呢?它是怎么来保护私有网络?这里的ACL设置为WAN的端点,WAN也需要保护吗?难道GRE想和WAN去私底下约会?
当CRY ACL被触发的时候,它调用TUNNEL(因为TUNNEL的源和目标设置的是WAN端点),TUNNEL接下来调用OSPF进程里面的私有网络,最终私有网络得到保护,GRE同样保护OSPF的组播流如HELL包,也就是说,不像普通的单播的IPSEC,当有单播数据流(如两端私有用户通话使用单播)的时候才触发VPN,这里的VPN总是被触发的,因为它要处理多播流量如OSPF每10S一次的HELLO包
文章评论