A-A+
CCNA实验三十六 GRE(通用路由封装)
环境:Windows XP 、Packet Tracert5.3
目的:了解GRE的使用,掌握如何配置GRE。
说明:
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP 和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是VPN(Virtual Private Network)的第三层隧道协议。
Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel 的两端分别对数据报进行封装及解封装。 一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过封装与解封装两个过程.
步骤:
创建拓扑如下:
配置R1:
- Router>en
- Router#conf t
- Router(config)#host R1
- R1(config)#int loopback 0
- R1(config-if)#ip add 192.168.1.1 255.255.255.0
- R1(config-if)#exit
- R1(config)#int s0/0/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 tunnel 0 //创建隧道Tunnel 0
- R1(config-if)#ip add 1.1.1.1 255.255.255.0 //配置隧道IP地址
- R1(config-if)#tunnel source s0/0/0 //指定Tunnel隧道的源端口
- R1(config-if)#tunnel destination 23.1.1.1 //指定Tunnel隧道的目标地址
- R1(config-if)#exit //退出
- R1(config)#router rip //开启RIP路由进程
- R1(config-router)#no auto-summary //关闭自动汇总
- R1(config-router)#version 2 //启用版本2的RIP路由协议
- R1(config-router)#net work 12.1.1.0 //把12.1.1.0网段加入到路由进程中,并通告出去
- R1(config-router)#exit
- R1(config)#ip rou 192.168.2.0 255.255.255.0 1.1.1.2 //通过Tunnel隧道路由到R3的loopback 0口
配置R2:
- Router>en
- Router#conf t
- Router(config)#host R2
- R2(config)#int s0/0/0
- R2(config-if)#ip add 12.1.1.2 255.255.255.0
- R2(config-if)#clock rate 64000
- R2(config-if)#no sh
- R2(config-if)#exit
- R2(config)#int s0/0/1
- R2(config-if)#ip add 23.1.1.2 255.255.255.0
- R2(config-if)#clock rate 64000
- R2(config-if)#no sh
- R2(config-if)#exit
- R2(config)#router rip
- R2(config-router)#version 2
- R2(config-router)#no auto-summary
- R2(config-router)#network 12.1.1.0
- R2(config-router)#network 23.1.1.0
- R2(config-router)#exit
配置R3
- Router>en
- Router#conf t
- Router(config)#host R3
- R3(config)#int loopback 0
- R3(config-if)#ip add 192.168.2.1 255.255.255.0
- R3(config-if)#exit
- R3(config)#int s0/0/0
- R3(config-if)#ip add 23.1.1.1 255.255.255.0
- R3(config-if)#no sh
- R3(config-if)#exit
- R3(config)#int tunnel 0
- R3(config-if)#ip add 1.1.1.2 255.255.255.0
- R3(config-if)#tunnel source s0/0/0
- R3(config-if)#tunnel destination 12.1.1.1
- R3(config-if)#exit
- R3(config)#router rip
- R3(config-router)#version 2
- R3(config-router)#no auto-summary
- R3(config-router)#network 23.1.1.0
- R3(config-router)#exit
- R3(config)#ip rou 192.168.1.0 255.255.255.0 1.1.1.1//通过Tunnel隧道路由到R2的loopback0口
通过上面的配置后Tunnel隧道就成功建立了,R1、R3可以互相Ping对方的Tunnel 0和loopback 0接口,但R2却Ping不通它们的Tunnel 0和loopback 0接口。这样Tunnell隧道就达到透明工作的效果。
为了在Tunnel隧道上实现安全和加密我们可以配置GRE over IPsec如下:
R1配置:
- R1(config)#access-list 100 permit gre 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
- R1(config)#crypto isakmp enable
- R1(config)#crypto isakmp policy 1
- R1(config-isakmp)#authentication pre-share
- R1(config-isakmp)#hash md5
- R1(config-isakmp)#group 2
- R1(config-isakmp)#exit
- R1(config)#crypto isakmp key kkfloat address 23.1.1.1
- R1(config)#crypto ipsec transform-set kkfloatset esp-3des esp-md5-hmac
- R1(config)#crypto map vpn 10 ipsec-isakmp
- R1(config-crypto-map)#set peer 23.1.1.1
- R1(config-crypto-map)#set transform-set kkfloatset
- R1(config-crypto-map)#match address 100
- R1(config-crypto-map)#exit
- R1(config)#int s0/0/0
- R1(config-if)#crypto map vpn
- R1(config-if)#exit
配置R3:
- R3(config)#access-list 100 permit gre 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
- R3(config)#crypto isakmp enable
- R3(config)#crypto isakmp policy 1
- R3(config-isakmp)#authentication pre-share
- R3(config-isakmp)#hash md5
- R3(config-isakmp)#group 2
- R3(config-isakmp)#exit
- R3(config)#crypto isakmp key kkfloat address 12.1.1.1
- R3(config)#crypto ipsec transform-set kkfloatset esp-3des esp-md5-hmac
- R3(config)#crypto map vpn 10 ipsec-isakmp
- R3(config-crypto-map)#set peer 12.1.1.1
- R3(config-crypto-map)#set transform-set kkfloatset
- R3(config-crypto-map)#match address 100
- R3(config-crypto-map)#exit
- R3(config)#int s0/0/0
- R3(config-if)#crypto map vpn
- R3(config-if)#exit
通过以上配置后,Tunnel隧道就实现了IPsec加密。