GRE ××× :
这种×××并不存在安全性 因此一般应该使用的是GRE over IPsec ×××
Tunnel 源指定为本地网关公网的接口或IP , tunnel目标指定为对端网关的公网接口IP 。
其实就是私网的数据包封装一层公网IP头部而已。
原理: 公网IP + GRE头(tunnel IP)+私网IP数据 (三层IP包头)
封装GRE头部,GRE头部4byte。再加私网头部20byte,并在外部封装公网IP以穿越R2-R5-R3(公网)。就相当于给分公司到总公司的数据包打了2个IP头部,即IPinIP。
在R2和R3上我们分别定义了一个tunnel 0口,私网的数据包到达R2,R3时,会被发送至tunnel 0中,并进行二次封装封装公网IP为R2或R3公网出口IP。从而使数据包在公网中穿越,此时数据包具备双层IP头部。当到达对端的出口路由器时,会尝试解封装掉公网头部。从而露出私网头部,路由器检查这层私网IP头部的IP源目的IP地址,并查找有关其目标相关的路由条目,检查到后,会直接对数据进行转发。
R1–R2—R5–R3—-R4
R1 为分公司
R4 为总公司
R2 为分公司的出口路由器
R3 为总公司的出口路由器
模拟公网 : R5
网络拓扑如下:
首先保证网络的连通性,这是必须的!!!
R1: 分公司
#
version 5.20, Alpha 1011
#
sysname RT1
interface Ethernet0/0/0
undo shut
port link-mode route
ip address 192.168.1.1 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 192.168.1.2 指一条默认路由
user-interface con 0
idle-timeout 0 0
user-interface vty 0 4
#
return
R2: 分公司出口路由器
version 5.20, Alpha 1011
#
sysname RT2
interface Ethernet0/0/0
undo shut
port link-mode route
ip address 192.168.1.2 255.255.255.0
#
interface Serial0/2/0
undo shut
link-protocol ppp
ip address 172.16.1.1 255.255.255.0
#
interface Tunnel0
undo shut
ip address 10.1.1.1 255.255.255.0
source Serial0/2/0
destination 172.16.2.2
#
ip route-static 0.0.0.0 0.0.0.0 172.16.1.2 指一条到Internet的默认路由
ip route-static 192.168.2.0 255.255.255.0 Tunnel0 (指一条下一跳为tunnel 0,目的地址为目标网络号的静态路由)将数据从隧道中发过去
user-interface con 0
idle-timeout 0 0
user-interface vty 0 4
#
return
R5: 模拟的公网
#
version 5.20, Alpha 1011
#
sysname RT5
interface Serial0/2/0
undo shut
link-protocol ppp
ip address 172.16.1.2 255.255.255.0
#
interface Serial0/2/1
link-protocol ppp
ip address 172.16.2.1 255.255.255.0
#
user-interface con 0
idle-timeout 0 0
user-interface vty 0 4
#
return
R3: 总公司的出口路由器
version 5.20, Alpha 1011
#
sysname RT3
interface Serial0/2/0
undo shut
link-protocol ppp
ip address 172.16.2.2 255.255.255.0
#
interface Serial0/2/1
undo shut
link-protocol ppp
ip address 192.168.2.1 255.255.255.0
interface Tunnel0
undo shut
ip address 10.1.1.2 255.255.255.0
source Serial0/2/0
undo shut
destination 172.16.1.1
#
ip route-static 0.0.0.0 0.0.0.0 172.16.2.1 指一条到Internet的默认路由
ip route-static 192.168.1.0 255.255.255.0 Tunnel0 (指一条下一跳为tunnel 0,目的地址为目标网络号的静态路由)将数据从隧道中发过去
user-interface con 0
idle-timeout 0 0
user-interface vty 0 4
#
return
R4: 总公司
version 5.20, Alpha 1011
#
sysname RT4
#
interface Serial0/2/0
undo shut
link-protocol ppp
ip address 192.168.2.2 255.255.255.0
ip route-static 0.0.0.0 0.0.0.0 192.168.2.1 指一条默认路由
user-interface con 0
idle-timeout 0 0
user-interface vty 0 4
#
return
说明:
因为 R1 , R4分别模拟的是分公司和总公司
R2为分公司的出口路由器 R3为总公司的出口路由 因此需要分别指定一条静态路由
R5模拟的是公网
需要在R1,R4上分别指一条默认路由,以其相邻的路由器接口为下一跳。
在R3,R4上分别指定对端私有网段为目标地址,tunnel 0口为下一跳,写一条静态路由。使分公司内网和总公司内网之间的流量走R2和R3之间建立起来的隧道。
H3C路由器上debug GRE和ICMP得到的信息:
Debug命令:
Terminal debugging
Terminal monitor
Debugging ip packet
Debugging ip icmp
Debugging gre packet
Debugging gre error
Debugging gre all
从R4 ping R1得出以下debug信息:
*Feb 18 17:24:15:454 2012 RT2 GRE/7/debug:Gre packet has been sent to ip queue successfully.
*Feb 18 17:24:15:454 2012 RT2 IPFWD/7/debug_case:
Receiving, interface = Tunnel0, version = 4, headlen = 20, tos = 0,
pktlen = 84, pktid = 96, offset = 0, ttl = 254, protocol = 1,
checksum = 14325, s = 192.168.2.2, d = 192.168.1.1
prompt: Receiving IP packet from Tunnel0
*Feb 18 17:24:15:454 2012 RT2 IPFWD/7/debug_case:
Sending, interface = Ethernet0/0/0, version = 4, headlen = 20, tos = 0,
pktlen = 84, pktid = 96, offset = 0, ttl = 253, protocol = 1,
checksum = 14581, s = 192.168.2.2, d = 192.168.1.1
prompt: Sending the packet from Tunnel0 at Ethernet0/0/0
*Feb 18 17:24:15:454 2012 RT2 IPFWD/7/debug_case:
Receiving, interface = Ethernet0/0/0, version = 4, headlen = 20, tos = 0,
pktlen = 84, pktid = 104, offset = 0, ttl = 255, protocol = 1,
checksum = 14061, s = 192.168.1.1, d = 192.168.2.2
prompt: Receiving IP packet from Ethernet0/0/0
*Feb 18 17:24:15:454 2012 RT2 IPFWD/7/debug_case:
Sending, interface = Tunnel0, version = 4, headlen = 20, tos = 0,
pktlen = 84, pktid = 104, offset = 0, ttl = 254, protocol = 1,
checksum = 14317, s = 192.168.1.1, d = 192.168.2.2
prompt: Sending the packet from Ethernet0/0/0 at Tunnel0
*Feb 18 17:24:15:454 2012 RT2 GRE/7/debug:
Tunnel0 packet:Before encapsulation,
Outer packet header 192.168.1.1->192.168.2.2(length = 84)
*Feb 18 17:24:15:454 2012 RT2 GRE/7/debug:
Tunnel0 packet:After encapsulation,
Outgoing packet header 172.16.1.1->172.16.2.2(length = 108)
*Feb 18 17:24:15:454 2012 RT2 GRE/7/debug:Output: Gre packet has been fast-switched successfully, interface index is 0x2f0000.
GRE Tunnel只支持路由器,不支持集中器和PIX及ASA。
GRE支持IP ,IPX等协议。
GRE支持P2P GRE 和multipoint GRE。
P2P GRE只能在2台路由器之间建立。
MGRE 可以在多台路由器上建立。
P2P GRE 支持IP 单播,组播及IGP 动态路由协议和非IP协议。
MGRE 只支持单播,组播以及动态IGP路由协议,不支持非IP协议。
要求:本源地址有效,隧道起始和重点的路由可达时,隧道接口才能UP。
转载于:https://blog.51cto.com/wangzhenqi/886327
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110393.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...