隧道对端的解封装过程
当路由器收到一个IP数据报时,如果其目的地址是本地且其报头的协议字段为47,说明该数据报是经过GRE封装的,需要在本路由器上进行解析。
GRE报文经过合法性检查后,需要根据GRE报文的源地址和目的地址映射到本地保存的GRE隧道编号,若对应的GRE隧道不存在,则丢弃该数据报。
接着进行GRE选项的处理,目前我司路由器仅支持key选项而忽略其他选项。若GRE报头中flag字段的key标记与本路由器对应隧道的key标记不同,或者都置了key标记而key值不同,则丢弃该数据报。
把去除GRE封装的IP数据报头的TTL减1,然后进行进一步的处理。通过查找路由判断数据报是要本地投递还是转发。TTL的处理方法表明,藏在外网IP后的内网IP不会在隧道转发的过程中将TTL递减。