GRE工作原理

本文介绍了GRE(Generic Routing Encapsulation)的工作原理。当路由器收到GRE封装的数据报时,会进行合法性检查并根据GRE报文映射到隧道编号。GRE选项处理只支持key选项,不匹配则丢弃数据报。GRE隧道允许多播,不同于点对点的IPIP隧道。在Linux内核中,GRE的发送和接收过程分别涉及隧道设备构造新头和GRE模块的ipgre_rcv()函数处理,剥去外层IP头并转发给IP栈。
摘要由CSDN通过智能技术生成
隧道对端的解封装过程

当路由器收到一个IP数据报时,如果其目的地址是本地且其报头的协议字段为47,说明该数据报是经过GRE封装的,需要在本路由器上进行解析。

GRE报文经过合法性检查后,需要根据GRE报文的源地址和目的地址映射到本地保存的GRE隧道编号,若对应的GRE隧道不存在,则丢弃该数据报。

接着进行GRE选项的处理,目前我司路由器仅支持key选项而忽略其他选项。若GRE报头中flag字段的key标记与本路由器对应隧道的key标记不同,或者都置了key标记而key值不同,则丢弃该数据报。

把去除GRE封装的IP数据报头的TTL减1,然后进行进一步的处理。通过查找路由判断数据报是要本地投递还是转发。TTL的处理方法表明,藏在外网IP后的内网IP不会在隧道转发的过程中将TTL递减。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值