如何配置GENEVE?我们用飞塔防火墙FortiGate来演示一下
我们前面大概介绍了GENEVE(Generic Network Virtualization Encapsulation,通用网络虚拟化封装)的基本原理(Geneve:通用网络虚拟化封装)。据我目前的了解,该功能主要是国外的一些厂商支持,国内支持的相对少一些。碰巧,咱们之前介绍的飞塔防火墙FortiGate就支持这个功能(来吧,给大家分享一下最新版本的FortiGate-VM64,带试用授权),我
我们前面大概介绍了GENEVE(Generic Network Virtualization Encapsulation,通用网络虚拟化封装)的基本原理(Geneve:通用网络虚拟化封装)。据我目前的了解,该功能主要是国外的一些厂商支持,国内支持的相对少一些。
碰巧,咱们之前介绍的飞塔防火墙FortiGate就支持这个功能(来吧,给大家分享一下最新版本的FortiGate-VM64,带试用授权),我们今天用FortiGate来简单配置一下。
简单搭一个实验拓扑,GENEVE隧道的两端分别是两台FortiGate防火墙,通过VSR相连。

首先,配置互联接口IP地址,并配置静态路由,实现设备互通。

接下来,就可以配置GENEVE接口了。
在官方的配置指导中,有多个配置选项。
config system geneve
Description: Configure GENEVE devices.
edit
set dstport {integer}
set interface {string}
set ip-version [ipv4-unicast|ipv6-unicast]
set remote-ip {ipv4-address}
set remote-ip6 {ipv6-address}
set type [ethernet|ppp]
set vni {integer}
next
end

在实际配置中,目前的GEVENE端口默认还都是使用6081,IP地址协议簇一般也是IPv4,接口类型也是ethernet类型,这些配置一般无需调整;而GEVENE封装使用的出接口、对端IP地址和VNI ID,这些就要与实际情况相匹配了。
比如说,我们先在FGT44设备上,把完整的6条命令都配置上:
config system geneve
edit geneve45
set interface port2
set type ethernet
set ip-version ipv4-unicast
set remote-ip 10.23.1.3
set dstport 6081
set vni 88
next
end
而当我们配置完成之后,查看配置时,就会发现只显示3条配置了,因为剩余3条和默认配置一样。
config system geneve
edit geneve45
set interface port2
set vni 88
set remote-ip 10.23.1.3
next
end

因为GENEVE虚接口也是三层接口,所以可以配置IP地址,我们给接口添加一个IPv4地址,并使能PING访问。
config system interface
edit geneve45
set ip 10.13.1.1 255.255.255.0
set allowaccess ping
next
end

同样的,我们完成FGT45的配置。
config system geneve
edit geneve44
set interface port3
set vni 88
set remote-ip 10.12.1.1
next
end
config system interface
edit geneve44
set ip 10.13.1.3 255.255.255.0
set allowaccess ping
next
end
配置完成之后,测试两台设备通过GENEVE接口进行互访。

访问正常,貌似没有什么难度。
接下来,我们看看报文的封装情况。
按照GENEVE协议规范的报文封装格式,从外到内依次是外层以太网报文头、外层IPv4报文头、外层UDP报文头、GENEVE报文头、内层以太网报文头、封装载荷。
以我们的抓包为例,外层以太网报文头分别是FGT45和VSR的MAC地址,外层IPv4报文头分别是FGT44和FGT45的接口IPv4地址,外层UDP报文头指明了源目端口均为UDP 6081端口;再就是GENEVE报文头,记录了VNI为88,内层以太网报文头为两个GENEVE虚拟接口的MAC地址;再内层的封装载荷就是原始的PING报文了。
除此之外,我们还捕获了接口的邻居发现报文,是IPv6协议簇的,最内层报文竟然是ICMPv6。

不过报文结构跟IPv6的封装也是完全一致的。
从配置过程上看,非常简单;但是从报文结构上看,还是非常透明的,跟GRE的封装十分相似,怪不得协议规范里面提到将现有的控制平面移植到Geneve上运行应该很简单,只需付出最小的努力,因为Geneve建立在用于网络虚拟化的最常见协议(VXLAN和NVGRE)提供的基础数据平面功能之上。
***推荐阅读***
VXLAN:RFC7349-VXLAN基于三层网络实现二层虚拟化的框架
快来看啊,华为路由器配置GRE over IPSec隧道案例来了!
北京到新加坡时延已经300+了,是WireGuard还是openVPN能力挽狂澜?
狂妄!VMware竟然怀疑openEuler的安装镜像有问题

更多推荐
所有评论(0)