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

  1. XDP 只处理UDP请求;
  2. 不支持 VLAN;
  3. 不支持 Dynamic DNS;
  4. MTU 限制 1792 长度;
  5. 不支持UDP Checksum校验;
  6. 一个网卡不支持多个BPF filters;
  7. BPF filter 不支持自动卸载, 需手动执行ip link set dev <ETH> xdp off;
  8. big-endian字节序平台需重新编译;
  9. 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相关推荐

  1. Knot DNS架构详解3-查询动态定义

    这个系列文章源于网络资料和自己的总结.关于Knot DNS分析的文章网络上不多,由于我的水平有限,错误在所难免.欢迎大家批评指正. 一.什么是查询动态定义 Knot DNS的查询处理流程可以根据配置文 ...

  2. Knot DNS架构详解0-简介

    这个系列文章源于网络资料和自己的总结.关于Knot DNS分析的文章网络上不多,由于我的水平有限,错误在所难免.欢迎大家批评指正. 什么是Knot DNS Knot DNS是一个开源DNS软件,仅提供 ...

  3. Knot DNS架构详解1-概述

    这个系列的文章大多源于网络和自己的总结.关于Knot分析的文章网络不是很多,由于我的水平有限,错误在所难免.欢迎大家批评指正 概述 本篇主要分析Knot架构不涉及具体细节分析.后续会不断完善 Knot ...

  4. DNS CAA 记录及创建方法

    请访问原文链接:https://sysin.cn/blog/dns-caa/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页:www.sysin.cn 关于 CAA ...

  5. C程序员必须知道的内存知识【英】

    C程序员必须知道的内存知识[英] 时间 2015-03-08 14:16:11 极客头条原文  http://marek.vavrusa.com/c/memory/2015/02/20/memory/ ...

  6. openstack 功能_2016年OpenStack的新功能:看一下Newton版本

    openstack 功能 OpenStack的发布周期为六个月,每个发行版都有一个代号,名称以字母的连续字母开头. 10月7日,OpenStack Newton发布了. 让我们看一下OpenStack ...

  7. 免费手机上网的方法,比GPRS网速快很多(好东西与大家分亨)

    S60手机 蓝牙共享PC宽带完全教程 手机 通过GPRS上网早已普及,作为symbian操作系统的S60智能手机 更是不在话下.本教程为你带来的则是手机 利用蓝牙共享到PC宽带上网的方法. 名正才能言 ...

  8. 吉利博瑞星越缤瑞领克01/02/03车机安装第三方软件carplay启用教程,附最新可用dns

    最新可用dns:103.40.20.159 吉利领克车机安卓版的都可以用这个dns来安装任意软件,也可以安装领克AUFN carplay ,完美支持!需要的车友看下边的教程 领克车机最新DNS查询方法 ...

  9. 02: DNS服务基础 特殊解析 DNS子域授权 缓存DNS 总结和答疑

    Top NSD SERVICES DAY02 案例1:搭建单区域DNS服务器 案例2:特殊DNS解析 案例3:配置DNS子域授权 案例4:搭建并测试缓存DNS 1 案例1:搭建单区域DNS服务器 1. ...

  10. 【愚公系列】2022年02月 wireshark系列-数据抓包分析之DNS协议

    文章目录 一.题目一 二.题目二 一.题目一 根据实验环境,本实验的步骤如下: 1.测试环境中获取DNS数据包. 2.分析DNS数据包. 任务描述:获取两种类型的DNS数据包 (1)通过浏览器访问域名 ...

最新文章

  1. Linux防止SSH暴力破解
  2. Tomcat(四):tomcat图形管理和身份认证
  3. python学精通要多久-学Python编程难吗 从入门到精通学习Python要多久
  4. 网络教育计算机二级题库2021,2021计算机二级office
  5. aop对请求后端的参数修改_Spring Aop 修改目标方法参数和返回值
  6. java access dbq 参数_Java怎么连接access数据库,要求讲解详细一些
  7. mysql记录当前表数据的数据条数据类型_mysql的表的操作 数据类型
  8. SpringBoot 整合 Redis 哨兵机制_01
  9. 统计单词数(洛谷-P1308)
  10. mysql自动备份 linux_Linux下MySQL数据库自动定时备份
  11. (Redis_学习一)Redis关于string类型和hash类型数据操作
  12. pdf文件的处理(弄成小容量大小的文本文件)
  13. Springboot集成SpringSecurity 附代码
  14. QA:Golang抽象nil问题
  15. 宁波计算机程序32届初赛,25届宁波市中小学计算机程序设计竞赛初赛试题
  16. Github下载代码和运行
  17. 移动端实现HTML5 mp3录音踩坑指南:系统播放音量变小、一些机型录音断断续续 之 MediaRecorder和AudioWorklet的终极对决
  18. 微服务下权限校验方案
  19. 盘古开源:技术为基创新驱动数据存储体系完善
  20. 通过键盘输入每年每月每日,计算并输出这一天是这一年的第几天,例如2001年3月5日是这一年的第64天。

热门文章

  1. [C#] 控制系统音量-第一章
  2. Android native memory leak detect (Android native内存泄露检测)
  3. jmeter线程跳转_有什么方法调用jmeter的接口
  4. [2018.10.23 T3] 新的家园
  5. CF991D Bishwock
  6. python目录和文件的基本操作_Python常用的文件及文件路径、目录操作方法汇总介绍...
  7. 高德地图车机版缩放版_高德地图车机版2020
  8. 处于停机等非正常状态_设备非正常停机管理指导办法
  9. 对口高考计算机类专业试题,河南对口高考计算机专业课试题
  10. 在Windows Server 2012R2离线安装.net framework3.5