本文由 简悦 SimpRead 转码, 原文地址 juejin.cn
¶0. 前言
在学习 ipsec 过程中,一般都会涉及到 ipsec 的局限性:ipsec 协议是一种点对点协议,不支持组播,也不能保护组播、广播报文。因此 ipsec 协议无法用于音视频会议等场合,此时通常的解决办法是采用 GRE Over IPSec .
给出的解释是:GRE 协议可以封装组播、广播报文,但是无法对业务内容进行加密;而 ipsec 可以对报文进行加密,但是无法封装组播和广播报文。因此将两种协议结合,因而 GRE over IPSec 协议应运而生。 但是我找了很多资料 (其实没有多少),都没有找到为什么 GRE 协议支持封装组播和广播报文,而 ipsec 不行;他们作为点对点协议,为什么 GRE 可以而 IPsec 不行呢?因为没有找到答案,所以不能证实自己的想法正确与否,于是通过搭建 GRE 隧道环境,学习 Linux 内核中 GRE 隧道的操作配置原则,希望能从中得到些许启发。
搭建 GRE 隧道环境实际上是很简单的,因为 Linux 内核已经支持了 GRE 隧道,因此直接在虚拟机 (ubuntu 和 CentOS) 里进行简单的配置即可完成操作。