當前位置:
首頁 > 最新 > F-Stack KNI 配置注意事項

F-Stack KNI 配置注意事項

更多騰訊海量技術文章,請關注云加社區:https://cloud.tencent.com/developer

作者:F-Stack

KNI介紹

KNI(Kernel NIC Interface)內核網卡介面,是DPDK中用於與內核通信的模塊,在主要的業務流程中可能並不需要,但在部分場景下,如伺服器所有網卡都被F-Stack接管用於業務(或伺服器本身只有單網卡),其他如SSH登錄管理等數據等就必須開啟KNI來與內核進行數據交互。

KNI配置

因為開啟KNI將對收到所有的數據包按轉發策略進行檢查,會對性能造成一定的影響,所以在F-Stack中默認配置關閉了KNI選項,如有需要可以在控制文件

config.ini

中修改配置開啟KNI並設置轉發規則。

[kni]enable=1method=rejecttcp_port=80udp_port=53

參數說明:

enable

參數配置是否開啟KNI,設置為1表示開啟,設置為0表示關閉,默認值為0

method

參數和tcp_port/udp_port參數配合使用,method參數可選accept或reject

當method參數設置為accept時,默認所有數據包都交由F-Stack處理,只將tcp_port/udp_port參數指定的埠的數據包通過KNI轉發至系統內核。

當method參數設置為reject時,默認素有的數據包都通過KNI轉發至系統內核,只將tcp_port/udp_port參數指定的埠號的數據包交由F-Stack處理。

tcp_port/udp_port

指定KNI處理的埠號,如有多個埠號用逗號","分隔,多個相連埠號也可以同時設置,如80-90

系統配置

當開啟了KNI配置的F-Stack應用程序啟動後,需在系統中設置虛擬網路介面並設置IP地址、掩碼、MAC地址、路由表等信息才能正常完成F-Stack和內核間的數據交互。

【注意】 如果系統中沒有額外的管理網卡,配置虛擬網卡地址的操作需通過執行腳本等方式與F-Stack應用程序一同啟動,示例如下。

./start.sh -b /usr/local/nginx_fstack/sbin/nginx -c config.ini sleep 10 ifconfig veth0 netmask broadcast

hw ether route add -net 0.0.0.0 gw dev veth0 # route add -net [gw ] netmask dev veth0 # other route rules

注意事項:

KNI創建的虛擬網卡和F-Stack中的用戶態協議棧公用同一個網卡收發數據,所以KNI虛擬網卡的網路配置要跟FreeBSD協議的配置相同。

由於F-Stack不支持設置MAC地址,是直接獲取物理網卡的MAC地址,並無法設置創建的虛擬網卡的MAC地址,所以在使用

ifconfig

設置虛擬網卡的地址時需要顯示指定

hw ether

為物理網卡的實際MAC地址,防止在部分內核中默認是隨機值導致無法正常使用KNI。

題圖

題圖為DPDK官方文檔中的KNI示意圖 Fig. 21.1 Components of a DPDK KNI Application


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

實戰乾貨:從零快速搭建自己的爬蟲系統

TAG:雲加社區 |