Linux中的虛擬路由轉發VRF

VRF 簡單概念

虛擬路由轉發(Virtual Routing and Forwarding)
顧明思義,虛擬的路由轉發,將同一臺設備上的路由分成不同的分組,然後根據請求的接口,目的地址進行路由的轉發,這個是工作在單臺設備內的,出了這個設備就沒有意義了。

爲什麼需要VRF

邏輯上的三層隔離,類似二層隔離的VLAN.

VRF的實現介紹

Linux內核實現了這個功能,你可以把不同的端口劃分給不同的vrf 接口(一個vrf接口可以有多個硬件端口,一個硬件端口只能屬於一個VRF接口)。

當發送數據的時候,數據包會被hook到vrf的驅動程序,由其判斷這個數據包所在的接口是否包含在這個vrf接口中,如果是則用這個vrf的路由表,如果不是則繼續匹配,都不存在vrf中,則使用默認路由表。接收同理。

應用程序可以綁定vrf接口實現同不同的路由綁定,可以通過IPKTINFO 指定發送數據的接口。

這個就是我們Linux內核中的vrf, 具體的命令或者使用方式可以參考culumus networks的技術文章,這個vrf就是這個公司的天才實現的,而我則是在這個基礎上把這個功能移植到了3.10, 標準內核在4.3版本開始引入,4.10才完整。移植的同時實現了ospf,bgp, rip/ripng的是匹配(ipv4 and ipv6).

VRF的常規使用

我們公司雖然有這個功能但是我也不清楚具體哪些行業或者公司需要使用這個功能,在網絡上了解到,一般如果一個大的集團公司擁有幾個不同的辦事處,又想隔離不同辦事處的訪問權限,則可能需要這個VRF,在不增添新設備的情況下,對網絡進行三層隔離,這也應該是常用的方式吧。

歡迎評論介紹使用用途。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章