F-Stack KNI配置注意事项
目录
F-Stack KNI配置注意事项
KNI介绍
KNI配置
系统配置
题图
F-Stack KNI配置注意事项
KNI介绍
KNI(Kernel NIC Interface)内核网卡接口,是DPDK中用于与内核通信的模块,在主要的业务流程中可能并不需要,但在部分场景下,如服务器所有网卡都被F-Stack接管用于业务(或服务器本身只有单网卡),其他如SSH登录管理等数据等就必须开启KNI来与内核进行数据交互。
KNI配置
因为开启KNI将对收到所有的数据包按转发策略进行检查,会对性能造成一定的影响,所以在F-Stack中默认配置关闭了KNI选项,如有需要可以在控制文件config.ini
中修改配置开启KNI并设置转发规则。
[kni]
enable=1
method=reject
tcp_port=80
udp_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 <ipaddr> netmask <netmask> broadcast <broadcast> hw ether <mac addr>
route add -net 0.0.0.0 gw <gateway> dev veth0
# route add -net <ip addr> [gw <gateway>] netmask <netmask> dev veth0 # other route rules
注意事项:
1. KNI创建的虚拟网卡和F-Stack中的用户态协议栈公用同一个网卡收发数据,所以KNI虚拟网卡的网络配置要跟FreeBSD协议的配置相同。2. 由于F-Stack不支持设置MAC地址,是直接获取物理网卡的MAC地址,并无法设置创建的虚拟网卡的MAC地址,所以在使用`ifconfig`设置虚拟网卡的地址时需要显示指定`hw ether`为物理网卡的实际MAC地址,防止在部分内核中默认是随机值导致无法正常使用KNI。
题图
题图为DPDK官方文档中的KNI示意图 Fig. 21.1 Components of a DPDK KNI Application,
原文地址http://dpdk.org/doc/guides/progguide/kernelnic_interface.html
本文分享自微信公众号 - FStack(F-Stack),作者:F-Stack
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2017-05-24
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
F-Stack KNI配置注意事项相关推荐
- ios平台alternate icon配置注意事项
文章目录 ios平台alternate icon配置注意事项 第一步,将icon文件导入xcode项目 问题1:提审时因为缺少关键尺寸导致提审失败 问题2:文件名重复,导致build失败 问题3:io ...
- Windows下CodeBlocks安装及配置注意事项
转载自: http://www.cnblogs.com/weichao975/p/6121104.html CodeBlocks安装及配置注意事项 在使用codeblocks的时候,网上一般只会提供C ...
- nginx配置注意事项1
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sys ...
- DSP28377s系统时钟配置注意事项
DSP28377s系统时钟配置注意事项 问题一脸嫣然的向我们走来... 近日,一个兄弟在配置基于28377s芯片的主控系统时钟时,遇到点困难. 具体是这样的,原来的主控板使用的是20MHz外部晶振,为 ...
- Appium安装配置注意事项
Appium安装配置注意事项 详细参见:https://blog.csdn.net/gchh_spring/article/details/112795268 1.安装JDK:安装的版本不要过高,1. ...
- linux环境变量配置的方法,linux 设置环境变量方法是怎样的?Linux环境变量配置注意事项是什么?...
linux系统是一种多用户的任务系统,它可以对每个用户都指定特定的用户变量.不同的程序在不同的环境下运行的时候,都需要去对环境变量来做定制,有很多朋友在设置 linux环境变量的时候,不知道如何操作, ...
- VLAN划分及配置注意事项
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术.VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广 ...
- STM32CubeMX配置注意事项
STM32CubeMX配置注意事项 stm32cubemx下载 环境配置我不打算细讲,可以考虑参考下面几篇博客: https://blog.csdn.net/wofreeo/article/detai ...
- 从Oracle RAC角度看跨数据中心的存储双活配置注意事项
从Oracle RAC角度看跨数据中心的存储双活配置注意事项 Oracle RAC在设计的时候是没有考虑跨数据中心双活的,它的设计目的是为一个数据中心内有着共享存储的多个主机实现负载均衡和高可用性.但 ...
最新文章
- 科大讯飞刷新纪录,机器阅读理解如何超越人类平均水平? | 技术头条
- 如何编写webService接口
- 新生男婴自带新冠抗体,感染者母亲如今抗体消失,医生:抗体转移了
- 如何在python中对列表套列表进行排序_如何实现对Python中列表的排序?
- jquery和zepto冲突解决以及体会
- Spring Boot 管理 MVC
- 自已开发完美的触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
- java中复制图片_如何在Java中实现复制图片
- 著名的北邮ACM推荐50题
- swing学习一(swing介绍、swing样例、布局管理器)
- vagrant 网络三种模式
- 【秒懂音视频开发】16_AAC解码实战
- 不吼不叫:该如何平静地和孩子合作?
- 梯度,散度,旋度的概念
- MOS管自举电容工作原理电路设计及其分析
- AI健身,是消费者的伪命题还是资本的好生意?
- [老文档2016]一种后台管理智能杀进程的规则与方法
- 3. 几何图形(Geometry)
- AE/PR插件AI智能背景抠像颜色键控GoodbyeGreenscreenzxb V1.6.0官方版
- 微信公众平台注册与认证图文教程分享
热门文章
- 2021年北京学校高考成绩查询,2021年北京高考成绩查询时间及入口【官方】
- Scikit-Learn简单操作
- Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)
- 存储类、链接、内存管理
- Redis 5种数据结构使用及注意事项
- 新四则运算 合作完成
- 《超级女声》新增 9月4日 娱乐无极限 回顾超女专辑(都是超女) [共39G的精品]
- 在linux下进行嵌入式系统设计,一种应用于测控系统的基于Linux的嵌入式系统的设计...
- mysql滚动条不见了,11-JS处理滚动条
- 平面设计背景素材|打造超酷的炫彩光束光效海报!