LinuxVRF的概念与实际操作介绍
首先,怎么去理解LinuxVRF(VirtualRoutingandForwarding,虚拟路由转发)的概念,是个比较麻烦的事。
VRF在网络领域是个很常见的术语,它主要用来实现不同VPN的路由隔离。每个VRF都有相对独立的路由表和LFIB(LabelForwardingInformationBase,标签转发信息库),确保VPN数据的独立性和安全性。
LinuxVRF的概念和网络概念类似,LinuxVRF实现了对三层的网络协议栈的虚拟,我们可以通过在同一台主机上通过VRF来同时使用和管理多个路由表,每个VRF的路由表独立且互相隔离流量,这个与VLAN类似,只不过VLAN是在二层对网络进行了隔离。
LinuxVRF包括了哪些内容呢,通俗点来说主要有两个部分,包括IP路由表、与VRF关联的网卡接口组成。LinuxVRF设备与路由表一起创建,然后再配置特定网络接口被VRF所纳管。
有两种方式来可以用来创建VRF,这里先介绍一下如何通过NetworkManager实现LinuxVRF的创建和使用。
建议在Linuxkernel4。8版本以上再使用VRF功能。VRF的配置与使用
NetworkManager1。24版本开始支持VRF,首先我们要先检查一下NetworkManager版本。〔rootnode01〕nmclivnmclitool,version1。40。01。el9
创建vrf0,并指定附加到路由表100:nmcliconnectionaddtypevrfifnamevrf0connamevrf0table100ipv4。methoddisabledipv6。methoddisabledConnectionvrf0(c282f76dede84801bbff189de76005ba)successfullyadded。
向vrf0连接添加enp0s8网卡设备,并配置网关、IP地址:nmcliconnectionaddtypeethernetconnameenp0s8ifnameenp0s8mastervrf0ipv4。methodmanualipv4。address10。1。1。224ipv4。gateway10。1。1。1
激活连接:nmcliconnectionupenp0s8Connectionsuccessfullyactivated(DBusactivepath:orgfreedesktopNetworkManagerActiveConnection9)
好,检查一下与vrf0关联的网卡与IP地址:ipbraddrshowvrfvrf0enp0s8UP10。1。1。224fe80::26de:6f3a:9ab7:f83e64
显示VRF设备列表及其关联的路由表:ipvrfshowNameTablevrf0100
显示路由表100的路由信息:iprouteshowtable100defaultvia10。1。1。1devenp0s8protostaticmetric10110。1。1。024devenp0s8protokernelscopelinksrc10。1。1。2metric101local10。1。1。2devenp0s8protokernelscopehostsrc10。1。1。2broadcast10。1。1。255devenp0s8protokernelscopelinksrc10。1。1。2
可以看到在这个路由表里面10。1。1。1是默认网关,和操作系统的主路由表是不一样的。
最后,可以在隔离的VRF网络内启动应用服务,这里使用ncat简单模拟一下:ipvrfexecvrf0ncatl8080
检查与vrf0关联的应用进程:〔rootnode01〕ipvrfpidsvrf01156ncat
最后提一下,除了NetworkManager之外,我们还可以使用通用的iproute2来创建和使用VRF功能,这个留给下次再讲吧。