knot DNS 02 Tips - XDP
Knot XDP & optimizations
Kernel: Knot XDP (AF_XDP) 高性能模式, 需升级内核到 4.18.x(推荐使用 5.x 内核).
version: 3.x
网卡: 建议使用Intel系列多队列支持 XDP 网卡(700系列(i40e),500系列(ixgbe)),
configure
listen-xdp
:
配置 xdp, 格式为 interface@port
:
server:rundir: "/var/run/knot"user: knot:knotlisten: [ 127.0.0.1@53, ::1@53 ]listen-xdp: enp5s0f1@53
Optimizations
DEVNAME=enp5s0f1
# 调整CPU为性能模式
for file in `find /sys/devices/system/cpu/ -name scaling_governor`; do echo performance > $file; done
# 启用 UDP RSS HASH
ethtool -N $DEVNAME rx-flow-hash udp4 sdfn
ethtool -N $DEVNAME rx-flow-hash udp6 sdfn
# 设置网卡 RX/TX channels(queue)
ethtool -L $DEVNAME combined 64
# 设置网卡 RX/TX 硬件描叙符数量
ethtool -G $DEVNAME rx 1024 tx 2048
#
renice -n 19 -p $(pgrep '^ksoftirqd/[0-9]*$')
Limitations
- XDP 只处理UDP请求;
- 不支持 VLAN;
- 不支持 Dynamic DNS;
- MTU 限制 1792 长度;
- 不支持UDP Checksum校验;
- 一个网卡不支持多个
BPF filters
; BPF filter
不支持自动卸载, 需手动执行ip link set dev <ETH> xdp off
;big-endian
字节序平台需重新编译;- Symmetrical routing is required (要求 源/目的 MAC/IP 一致, 有点类似对称哈希, 具体作用不太清楚, 可能是用于XDP TX与RX使用同一个queue id);
kxdpgun
kxdpgun 是 Knot 基于XDP开发的dns性能测试工具, 使用很简单:
Usage: kxdpgun [-t duration] [-Q qps] [-b batch_size] [-r] [-p port] [-F cpu_affinity] [-I interface] -i queries_file dest_ip
-I interface
: knot 3.1 version
-i queries_file
格式:
abc6.example.com. AAAA
a.example.com. NS E
ab.example.com. A D
abcd.example.com. DS D
示例:
./kxdpgun -i name.txt -I enp5s0f1 172.16.41.170 -t 30 -Q 8000000 -F 0xffff
在本地测试环境, CPU E5-2670 X 2 单个域名请求可达到 8Mpps %100 无丢失:
Reference
Knot Mode XDP
knot DNS 02 Tips - XDP相关推荐
- Knot DNS架构详解3-查询动态定义
这个系列文章源于网络资料和自己的总结.关于Knot DNS分析的文章网络上不多,由于我的水平有限,错误在所难免.欢迎大家批评指正. 一.什么是查询动态定义 Knot DNS的查询处理流程可以根据配置文 ...
- Knot DNS架构详解0-简介
这个系列文章源于网络资料和自己的总结.关于Knot DNS分析的文章网络上不多,由于我的水平有限,错误在所难免.欢迎大家批评指正. 什么是Knot DNS Knot DNS是一个开源DNS软件,仅提供 ...
- Knot DNS架构详解1-概述
这个系列的文章大多源于网络和自己的总结.关于Knot分析的文章网络不是很多,由于我的水平有限,错误在所难免.欢迎大家批评指正 概述 本篇主要分析Knot架构不涉及具体细节分析.后续会不断完善 Knot ...
- DNS CAA 记录及创建方法
请访问原文链接:https://sysin.cn/blog/dns-caa/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页:www.sysin.cn 关于 CAA ...
- C程序员必须知道的内存知识【英】
C程序员必须知道的内存知识[英] 时间 2015-03-08 14:16:11 极客头条原文 http://marek.vavrusa.com/c/memory/2015/02/20/memory/ ...
- openstack 功能_2016年OpenStack的新功能:看一下Newton版本
openstack 功能 OpenStack的发布周期为六个月,每个发行版都有一个代号,名称以字母的连续字母开头. 10月7日,OpenStack Newton发布了. 让我们看一下OpenStack ...
- 免费手机上网的方法,比GPRS网速快很多(好东西与大家分亨)
S60手机 蓝牙共享PC宽带完全教程 手机 通过GPRS上网早已普及,作为symbian操作系统的S60智能手机 更是不在话下.本教程为你带来的则是手机 利用蓝牙共享到PC宽带上网的方法. 名正才能言 ...
- 吉利博瑞星越缤瑞领克01/02/03车机安装第三方软件carplay启用教程,附最新可用dns
最新可用dns:103.40.20.159 吉利领克车机安卓版的都可以用这个dns来安装任意软件,也可以安装领克AUFN carplay ,完美支持!需要的车友看下边的教程 领克车机最新DNS查询方法 ...
- 02: DNS服务基础 特殊解析 DNS子域授权 缓存DNS 总结和答疑
Top NSD SERVICES DAY02 案例1:搭建单区域DNS服务器 案例2:特殊DNS解析 案例3:配置DNS子域授权 案例4:搭建并测试缓存DNS 1 案例1:搭建单区域DNS服务器 1. ...
- 【愚公系列】2022年02月 wireshark系列-数据抓包分析之DNS协议
文章目录 一.题目一 二.题目二 一.题目一 根据实验环境,本实验的步骤如下: 1.测试环境中获取DNS数据包. 2.分析DNS数据包. 任务描述:获取两种类型的DNS数据包 (1)通过浏览器访问域名 ...
最新文章
- Linux防止SSH暴力破解
- Tomcat(四):tomcat图形管理和身份认证
- python学精通要多久-学Python编程难吗 从入门到精通学习Python要多久
- 网络教育计算机二级题库2021,2021计算机二级office
- aop对请求后端的参数修改_Spring Aop 修改目标方法参数和返回值
- java access dbq 参数_Java怎么连接access数据库,要求讲解详细一些
- mysql记录当前表数据的数据条数据类型_mysql的表的操作 数据类型
- SpringBoot 整合 Redis 哨兵机制_01
- 统计单词数(洛谷-P1308)
- mysql自动备份 linux_Linux下MySQL数据库自动定时备份
- (Redis_学习一)Redis关于string类型和hash类型数据操作
- pdf文件的处理(弄成小容量大小的文本文件)
- Springboot集成SpringSecurity 附代码
- QA:Golang抽象nil问题
- 宁波计算机程序32届初赛,25届宁波市中小学计算机程序设计竞赛初赛试题
- Github下载代码和运行
- 移动端实现HTML5 mp3录音踩坑指南:系统播放音量变小、一些机型录音断断续续 之 MediaRecorder和AudioWorklet的终极对决
- 微服务下权限校验方案
- 盘古开源:技术为基创新驱动数据存储体系完善
- 通过键盘输入每年每月每日,计算并输出这一天是这一年的第几天,例如2001年3月5日是这一年的第64天。
热门文章
- [C#] 控制系统音量-第一章
- Android native memory leak detect (Android native内存泄露检测)
- jmeter线程跳转_有什么方法调用jmeter的接口
- [2018.10.23 T3] 新的家园
- CF991D Bishwock
- python目录和文件的基本操作_Python常用的文件及文件路径、目录操作方法汇总介绍...
- 高德地图车机版缩放版_高德地图车机版2020
- 处于停机等非正常状态_设备非正常停机管理指导办法
- 对口高考计算机类专业试题,河南对口高考计算机专业课试题
- 在Windows Server 2012R2离线安装.net framework3.5