DAN Blog

代码界的女王,Bug 的克星.

VPP的编译安装与启动

vpp的安装 环境 ubuntu20.04、ubuntu22.02、debian11 vmware 命令行安装vpp 更新:sudo apt-get update 获取PackageCloud vpp 安装脚本 curl -s https://packagecloud.io/install/repositories/fdio/master/sc...

博客添加评论功能

前言 断断续续用github pages一段时间了,起初只是当个日记本用着,随便记录一下所感所想,没想着对外。后来一个朋友看了我的博客说缺点啥,作为一个博客,缺少了互动的界面,我想那应该是缺少评论功能吧,既然写到github上了,就不要怕被看到。 github注册OAuth apps 授权应用 首先注册一个oauth app 用于调用github api。登陆登录 Gith...

vrrp(1)---openwrt系统上通过frr实现vrrp小试

前言 双机热备是一个大的功能,主要是通过vrrp协议,目前可以通过frr配置,也可以通过keepalive功能,之后可能要通过vpp开发,在那个上边也要实现双机热备,先把openwrt上的vrrp验证过程做个记录,下一篇记录通过keepalive实现。 实例 dev1配置 eth1配置: config interface 'lan11' option ifname 'et...

修复wireguard 包统计源码问题的记录

问题现象 这段时间有一个同事做了一个功能,统计接口的收发包速率,他是通过统计接口的收发包大小,然后除以时间得到速率。在测试阶段经常发现wg接口接收方向的包drop了非常多,导致统计跟实际不符。 经过以下排查手段: 1.确认业务是否正常。虽然接口统计大量丢包, 但是通过打流发现流正常接收,并没有丢 2.将drop的数据也统计入收包—不可行,drop是包个数,我们要统计的是包大小。 然后我就开...

TCP/IP协议整理

前言 开发都是调用现成的函数,久而久之我们就忘了最原始的东西,整理、回顾基础。 协议初识 协议以及模型 在TCP/IP协议套件中,常见的模型: OSI七层模型, 应用层、 表示层、 会话层、 传输层、网络层、数据链链路层、物理层 TCP/IP四层模型, 应用层、传输层、网络层、数据链链路层 TCP/IP 五层模型, 应用层、传输层、网络层和链路层、物理层。 各个层次包括四个...

wg源码解读之时间引起的隧道不能建立

前言 唉,又是一个由现网故障所发现的问题。现网每天都会把客户端设备重启,而且还会修改设备时间,当时还没找到我,现网发现隧道不通,就重新配置了业务。后来技术支持找到我说业务不通,还没说修改时间的事,我也不知道时间会导致严重问题,我就在他提供的信息上一通排查。 源码简单解析 请结合《wireguard介绍》看。 wg版本:20190702 数据结构 消息类型 enu...

udp2raw的应用

TCP伪装成UDP报文的应用

前言 在wg业务的应用中,又发现了一系列的问题。在现网用着用着就断了,客户投诉了好几次,不得已开始找各种解决办法,后来就找到了udp2raw,git地址:https://github.com/wangyu-/udp2raw.git,基于udp2raw进行了改进以及落地。 wg中应用 WireGuard 尽管是一个更先进、更现代的 VPN 协议,但是它在国内网络环境下会遇到一个致命的问题:U...

wireguard介绍

被Linus称作艺术品的组网神器

前言 从2021年开始, sdwan业务打算引入wg。之前我所在公司sdwan业务中vpn技术一直用的是ipsec, 但是设备原因ipsec在我们的业务上线后暴露了很多的问题,所以期望wg能解决这些问题。当时该开发任务交给了我。wg业务已经做了几年了,目前也不是很忙,领导让给大家做一下wg相关培训,刚好趁着这个机会把wg整理一下。 简述 wg优势 Wireguard被视为下一代vpn协议,...

牛掰的chatgpt搭建记录

前言 这阵子chatgpt着实是太火了,看到这么火热,也想感受感受它的牛掰之处,后来很轻松就搭建搞了。已经用了两天,真是大大解放生产力。 搭建 首先得有一个登陆的账号:谷歌、微软、苹果都可以,如果没有创建一个微软账号,我的账号都是以前的,所以很顺利。 帮同事搞的时候,这一块卡了很久,好像现在申请谷歌账号不好申请的,反正我的建议就是多试试,总可以成功的,帮三四个人弄了都成功了。 登...

设置CPU亲和性

前言 这段时间在跑一个业务性能时,发现很是不稳定。根据多任务操作系统的基本工作原理 我们可知现代操作系统支持多任务处理,这意味着多个程序或线程可以同时运行。操作系统会分配处理器时间片给不同的任务,使它们轮流执行。这种切换允许多个任务在同一台计算机上共享CPU资源,一个任务在不同的CPU上运行。在任务切换中,CPU会处理各种中断,例如硬件中断(设备IO、定时器等)和软件中断(系统调用、异常等)...