唯一交流群:41405569GRE隧道中传输的数据包格式如下:
概述 GRE (Generic Routing Encapsulation)
GRE是一种最传统的隧道协议,其根本功能就是要实现隧道功能,通过隧道连接的两个远程网络就如同直连,GRE在两个远程网络之间模拟出直连链路,从而使网络间达到直连的效果,为此,GRE需要完成多次封装,总共有3次,换句话说,就是在GRE隧道中传输的数据包都有3个爆头,因为只谈IP协议,所以GRE中的IP数据包是一层套一层,总共有3个IP地址,GRE在实现隧道时,需要创建虚拟直连链路,GRE实现的虚拟链路可以认为是隧道,隧道是模拟链路,所以隧道两端也有IP地址,但隧道需要在公网中找到起点和重点,所以隧道的源和终点分别都以公网IP地址结尾,该链路是通过GRE协议来完成的,隧道传递数据包的过程分为3步:
1、接收原始IP数据包当作乘客协议,原始数据包包头的IP地址为私有IP地址。
2、将原始IP数据包封装进GRE协议,GRE协议成为封装协议(Encapsulation Protocol),封装的包头IP地址为虚拟直连链路两端的IP地址。
3、将整个GRE数据包当作数据,在外层封装公网的IP包头,也就是隧道的起源和终点,从而路由到隧道终点。
Router>enRouter#conf tRouter(config)#no ip do loRouter(config)#lin con 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#exitRouter(config)#ho CHENYI-R1CHENYI-R1 (config)#int f0/0CHENYI-R1 (config-if)#ip add 10.1.1.1 255.255.255.0CHENYI-R1 (config-if)#no shCHENYI-R1 (config-if)#int f1/0CHENYI-R1 (config-if)#ip add 202.1.1.1 255.255.255.0CHENYI-R1 (config-if)#no shCHENYI-R1 (config-if)#ip route 0.0.0.0 0.0.0.0 202.1.1.10
Router>enRouter#conf tRouter(config)# no ip do loRouter(config)#lin con 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#exitRouter(config)#ho CHENYI-R3CHENYI-R3(config)#int f0/0CHENYI-R3(config-if)#ip add 61.1.1.1 255.255.255.0CHENYI-R3(config-if)#no shCHENYI-R3(config-if)#int f1/0 CHENYI-R3(config-if)#ip add 192.168.1.3 255.255.255.0CHENYI-R3(config-if)#no shCHENYI-R3(config-if)#ip route 0.0.0.0 0.0.0.0 61.1.1.10配置R2
Router>enRouter#conf tRouter(config)#no ip do loRouter(config)#lin con 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#exitRouter(config)#HO CHENYI-R2CHENYI-R2(config)#int f0/0CHENYI-R2(config-if)#ip add 202.1.1.10 255.255.255.0CHENYI-R2(config-if)#no shCHENYI-R2(config-if)#ip add 61.1.1.10 255.255.255.0 CHENYI-R2(config-if)#no sh配置GRE
CHENYI-R1 (config)#interface tunnel 1CHENYI-R1 (config-if)#ip add 1.1.1.1 255.255.255.0CHENYI-R1 (config-if)#tunnel source 202.1.1.1CHENYI-R1 (config-if)#tunnel destination 61.1.1.1查看R1上GRE的状态
CHENYI-R1 (config)#do sh int tunnel 1Tunnel1 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.1/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 202.1.1.1, destination 61.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input never, output never, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 0 packets output, 0 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out说明:可以看出,在R1创建GRE隧道之后,隧道接口状态便已经up,这是因为默认情况下,GRE隧道接口没有OSI一层协议做检测,只要本端源地址有效,并且隧道终点地址有路由可达,那么GRE隧道接口就会up,而无论隧道对端是否已经配置隧道接口。
CHENYI-R3(config)#int tunnel 3CHENYI-R3(config-if)#ip add 1.1.1.2 255.255.255.0CHENYI-R3(config-if)#tunnel source 61.1.1.1 CHENYI-R3(config-if)#tun dest 202.1.1.1 CHENYI-R3(config-if)#exit说明:在R3 上创建GRE虚拟链路(隧道)接口,号码为3,两端号码可不相同,隧道接口地址为1.1.1.2/24,隧道的起源为61.1.1.1.隧道的终点为202.1.1.1。
CHENYI-R3(config-if)#do sh int tun 3Tunnel3 is up, line protocol is up Hardware is Tunnel Internet address is 1.1.1.2/24 MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 61.1.1.1, destination 202.1.1.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input never, output never, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 0 packets output, 0 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out说明:R3上的GRE隧道状态也已经up。
R1: CHENYI-R1(config)# ip route 192.168.1.0 255.255.255.0 tunnel 1
R3: CHENYI-R3(config-if)#ip route 10.1.1.0 255.255.255.0 tunnel 3此时测试武汉分公司PC直接使用私有地址192.168.1.4到上海分公司PC的连通性:
联系客服