GRE(Generic Routing Eencapsulation):

① 将各种网络协议封装到IP隧道内,被封装的数据报文能在IP网络中传输;

② 采用Tunnel技术;

③ 轻量级(GRE头部较小,封装效率高);

外层IP头部

(公网地址)

GRE头部

(4个字节)

内部IP头部

(实际通信地址)

负载

④ 没有任何安全防护机制。

wKiom1RbhBPCtJGTAAC-5MZz1Aw120.jpg

wKiom1RbksaTlnoLAAYSRPQrD8Q431.jpg


ping 2.2.2.2 source 1.1.1.1

①Site1路由查找

wKioL1Rc3w2Drq95AAUUK2oU0EU142.jpg

②加封装

因为Tunnel接口是虚拟的,并不能直接发送数据,所有数据必须由物理接口转发,因此在转发之前必须将此包用GRE封装在一个IP公网数据包中

Site1 Tunnel接口参数:

 int tun12

 ip add 192.168.12.1 255.255.255.0

 tunnel source fa0/0

 tunnel destination 23.23.23.2

③Internet路由转发:

 ip route 0.0.0.0 0.0.0.0 13.13.13.3

wKioL1Rc4YGCogFiAAT9zNoTjDQ667.jpg

④解封装

a.Site2检查IP发现此数据包目的IP为自己接口IP;

b.IP协议号47,为GRE封装;

c.解开IP头,得内部IP进行转发。

wKioL1Rc42HjosKzAAMHb9rga0M390.jpg


GRE ×××高级配置:

①验证:

int tunnel 12

tunnel checksum

tunnel key 2

②Keepalive

tunnel ttl 3

!!Internet中间链路故障,Site1因fa0/0 UP,Tun12也会UP,设置keepalive时间,默认连续3次收不到对方的Keepalive报文,即可认为隧道不可达,可用动态路由协议取替。


H3C配置参考CLI:

int tun12

ip add 192.168.12.1 24

source fa0/0

destination 23.23.23.2

gre checksum

gre key 2

keepalive 3