GRE原理与配置
GRE用来对某些网络层协议如IPX(Internet Packet Exchange)的报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。GRE可以解决异种网络的传输问题。GRE可以将路由协议信息封装在另一种协议报文(例如IP)中进行传输。
关键字 GRE配置 interface tunnel interface-number命令用来创建Tunnel接口。创建Tunnel接口后,需要配置Tunnel接口的IP地址和Tunnel接口的封装协议。
tunnel-protocol命令用来配置Tunnel接口的隧道协议。
source { source-ip-address | interface-type interface-number }命令用来配置Tunnel源地址或源接口。
destination dest-ip-address命令用来指定Tunnel接口的目的IP地址。
在本端设备和远端设备上还必须存在经过Tunnel转发的路由,这样,需要进行GRE封装的报文才能正确转发。经过Tunnel接口转发的路由可以是静态路由,也可以是动态路由。配置静态路由时,路由的目的地址是GRE封装前原始报文的目的地址,出接口是本端Tunnel接口。
[RTA]interface Tunnel 0/0/1 [RTA-Tunnel0/0/1]ip address 40.1.1.1 24 [RTA-Tunnel0/0/1]tunnel-protocol gre [RTA-Tunnel0/0/1]source 20.1.1.1 [RTA-Tunnel0/0/1]destination 20.1.1.2 [RTA-Tunnel0/0/1]quit [RTA]ip route-static 10.1.2.0 24 Tunnel 0/0/1 [RTA]display interface Tunnel 0/0/1
实验 要求 本实验模拟普通企业穿越ISP公网建立GRE-VPN网络。 完成以下需求: 1.如图所示,配置各设备IP地址。 2.R1是企业总部网关路由器; R3是企业分部网关路由器; R2是ISP骨干路由器。 R1和R3上配置默认路由,使得12.1.1.1和23.1.1.3可以通信。 3.R1和R3的Loopback0模拟企业内网,并建立GRE隧道。 3.1 R1/3分别新建Tunnel0/0/0,隧道协议选择GRE。 3.2 隧道源地址使用各自公网接口IP,目的地址为对端公网接口IP。 3.3 如图,配置隧道接口IP地址。 4.R1和R3运行OSPF,进程1 4.1 手动设置RID,R1为1.1.1.1,R3为3.3.3.3 4.2 全部划入区域0 4.3 使用network命令宣告,通配符0.0.0.0 *注意,不能宣告公网接口。 4.4 确认192.168.1.1可以与192.168.3.1通信。
具体过程 1.如图所示,配置各设备IP地址。 R1: interface LoopBack0 ip address 192.168.1.1 255.255.255.0 interface GigabitEthernet0/0/0 ip address 12.1.1.1 255.255.255.0
R2: interface GigabitEthernet0/0/0 ip address 12.1.1.2 255.255.255.0 interface GigabitEthernet0/0/1 ip address 23.1.1.2 255.255.255.0
R3: interface LoopBack0 ip address 192.168.3.1 255.255.255.0 interface GigabitEthernet0/0/0 ip address 23.1.1.3 255.255.255.0
2.R1是企业总部网关路由器; R3是企业分部网关路由器; R2是ISP骨干路由器。 R1和R3上配置默认路由,使得12.1.1.1和23.1.1.3可以通信。 R1: ip route-static 0.0.0.0 0.0.0.0 12.1.1.2 R3: ip route-static 0.0.0.0 0.0.0.0 23.1.1.2
3.R1和R3的Loopback0模拟企业内网,并建立GRE隧道。 3.1 R1/3分别新建Tunnel0/0/0,隧道协议选择GRE。 3.2 隧道源地址使用各自公网接口IP,目的地址为对端公网接口IP。 3.3 如图,配置隧道接口IP地址。 R1: interface Tunnel0/0/0 ip address 192.168.13.1 255.255.255.0 tunnel-protocol gre source 12.1.1.1 destination 23.1.1.3 R3: interface Tunnel0/0/0 ip address 192.168.13.3 255.255.255.0 tunnel-protocol gre source 23.1.1.3 destination 12.1.1.1
4.R1和R3运行OSPF,进程1 4.1 手动设置RID,R1为1.1.1.1,R3为3.3.3.3 4.2 全部划入区域0 4.3 使用network命令宣告,通配符0.0.0.0 *注意,不能宣告公网接口。 4.4 确认192.168.1.1可以与192.168.3.1通信。 R1: ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 192.168.1.1 0.0.0.0 network 192.168.13.1 0.0.0.0
R3: ospf 1 router-id 3.3.3.3 area 0.0.0.0 network 192.168.3.1 0.0.0.0 network 192.168.13.3 0.0.0.0
可以看到R1和R3通过隧道接口建立了OSPF邻居。 *关于OSPF不能宣告公网接口的原因: 如果R1宣告12.1.1.0/24到ospf中,那么R3就会从隧道接口通过OSPF学习到这条路由。 那么当R3与12.1.1.1通信时,就会将数据包发往隧道接口。 而隧道接口新封装的目的IP又是12.1.1.1,再次递归到隧道接口。 导致循环封装IP层而无法发包。 如果R1不宣告12.1.1.0/24到ospf中,那么R3就会依靠默认路由与12.1.1.1通信,默认路由的 出接口直接就是物理接口,就能正常发包。
|