network
文章平均质量分 90
longyu_wlz
在写作、音乐、linux 海滩旁捡拾贝壳的小男孩
展开
-
5.4.18 加载某三方模块使用内核 panic 问题分析
最开始一头扎进代码中,通过分析改代码得出的结论是产品异常使用问题。同步这个结论,产品反馈好几个内核版本都没有问题,于是并未坚持这一结论,继续进行分析。分析对比了正常运行的 5.10.64 内核的代码,发现与 5.4.18 几乎一模一样,理论上应当出现相同的问题,实际测试确定正常工作,一度有些不知道怎么开展。不过既然有正常的基线,就先基于基线进行分析,尝试使用 ftrace 跟踪内核符号调用,发现并没有跟踪到相应的调用信息,却并没有怀疑两个内核在相关模块编译上的差异。原创 2024-06-06 09:00:00 · 941 阅读 · 0 评论 -
virtio_net 与 virtio-pci 驱动关联浅析
virtio-pci 驱动可以看做是一个 virtio bus 底层的驱动,它对接 pci 总线,并创建新的 virtio 设备注入到 virtio 总线中,根据设备的类型 match 不同的 virtio 上层驱动以提供某一类服务。原创 2022-11-27 16:10:38 · 1824 阅读 · 0 评论 -
使用 strace、tcpdump、nlmon、wireshark 探索 ethtool netlink 框架的原理
在ethtool 的工作原理这篇文章中我描述了 ethtool 使用 ioctl 获取信息的流程,最近却发现新版本内核与 ethtool 命令已经支持通过 netlink 来交互,又刷新了认知,本文通过使用现有的一些工具来探索此交互的细节。...原创 2022-08-15 09:00:00 · 1237 阅读 · 0 评论 -
ssh 使用 socks5 代理连接到远端服务器中
项目业务端服务器部署在内网中,需要通过 socks5 代理服务器 ssh 登录到业务端服务器上。原创 2022-07-16 10:10:01 · 5592 阅读 · 0 评论 -
限制内核 udp bad checksum 失败告警信息
问题描述UDP: bad checksum. From 10.66.245.93:61525 to 255.255.255.255:137 ulen 58相关代码include/net/sock.h#define LIMIT_NETDEBUG(fmt, args…) do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0)net_ratelimit 函数net/core/utils.ci原创 2021-06-13 18:55:55 · 3767 阅读 · 2 评论 -
从系统调用角度分析 ethregs dump 寄存器原理
1. 首先遍历 /sys/bus/pci/devices 子目录,扫描每个 pci 信息,获取 vendor id、device id、config、resource 中的相关信息。示例信息如下: Develop>cat /sys/bus/pci/devices/0000\:86\:00.1/vendor0x8086 Develop>cat /sys/bus/pci/devices/0000\:86\:00.1/device0x1583 Develop>cat /sys/bu原创 2021-05-07 22:45:33 · 642 阅读 · 3 评论 -
tcpdump与 bpf 指令集
Instruction Addressing mode Descriptionld 1, 2, 3, 4, 12 Load word into Aldi 4 Load word into Aldh 1, 2 Load half-word into Aldb 1, 2原创 2021-01-09 16:36:32 · 1684 阅读 · 1 评论 -
at803x phy 驱动关闭节能模式
at803x phy 驱动关闭节能模式ret = at803x_debug_reg_read(phydev, AT803X_DEBUG_REG_B);if (ret < 0)return ret;val = ret & 0xffff;val &= (~(AT803X_DEBUG_REG_B_HIBERNATION_ENABLE<< AT803X_DEBUG_REG_B_HIBERNATION_OFFSET));return phy_write(phydev,原创 2020-12-15 21:47:07 · 857 阅读 · 0 评论 -
问题案例之:(i40e): transmit queue 44 timed out
问题描述今天接到一个反馈,问题是虚拟机网络出现异常,现象是无法通过 web 访问虚拟机中的业务。虚拟机有两台,两台都无法通过 web 访问,从另外一台宿主机 ping 虚拟机的 ip 也 ping 不通。进一步确认发现,并不是一开始就不通,而是运行了很长时间后突然出现不通。问题的排查过程根据问题的描述,首先重点排查虚拟机,有如下过程:从宿主机串口接入到虚拟机中查看虚拟机中的业务是否正常运行,如 apache 等,确认业务程序正常运行查看虚拟机的 dmesg 信息,查看是否有异常堆栈,确认没原创 2020-11-15 13:34:57 · 4003 阅读 · 0 评论 -
上手 buildroot
/usr/bin/make -j1 O=/home/longyu/Downloads/buildroot-2020.02.7/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" syncconfigmake[1]: 进入目录“/home/longyu/Downloads/buildroot-2020.02.7”mkdir -p /home/longyu/Downloads/buildroot-2020.02.7/output/build/buildro原创 2020-11-08 18:37:24 · 1021 阅读 · 0 评论 -
阿里云服务器 yum install 命令一直超时,导致命令无法安装
问题描述如下图所示,使用 yum install 安装一些开发工具包的时候,使用阿里云自己的镜像仓库会超时,导致安装失败。排查过程根据过去的经验进行排查是否某个包的问题单独执行,安装一条命令如 yum install gcc,发现仍旧有相同的问题。修改 /etc/resolv.conf修改为自动生成的域名后发现镜像仓库域名解析失败,改回去后,ping 域名能够 ping 通,延时也在正常范围内(1ms),排除这个影响。关闭 selinux运行 enforce 0 关闭 s原创 2020-10-23 08:30:12 · 4256 阅读 · 2 评论 -
tcpdump 抓取 netlink 报文
tcpdump 抓取 netlink 报文的方法原创 2020-09-30 12:19:42 · 1938 阅读 · 0 评论 -
ssh 反向代理与 nat 服务器
为什么要进行反向代理需要执行什么测试总结原创 2020-09-23 07:54:56 · 421 阅读 · 0 评论 -
ethtool 支持 dump x710 网卡寄存器
ethtool 支持 dump i40e 网卡的寄存器最新版 ethtool 支持如下网卡的 dump:static const struct {const char *name;int (*func)(struct ethtool_drvinfo *info, struct ethtool_regs *regs);} driver_list[] = {#ifdef ETHTOOL_E...原创 2020-09-22 21:32:12 · 1262 阅读 · 0 评论 -
linux 中 phy 驱动框架简析
描述文档在哪里?Documentation/net/phy.txtphy 的驱动代码drivers/net/phy/*设计 phy 驱动框架的目的大部分网络设备由向 MAC 层提供接口的多个寄存器的集合组成,MAC 层通过 PHY 与物理链路连接。phy自身要解决与对端网络链接时链路参数协商的功能,并且提供一个寄存器接口让驱动来确定当前选择的配置,同时驱动也能够配置那些 phy 运行的设置。phy与网络设备有明确的区别,并符合寄存器的标准布局。常见的网卡设备设计中会在网卡驱动中集成 phy 的原创 2020-09-21 22:21:23 · 9419 阅读 · 1 评论 -
网卡 promiscuous mode 与 MAC 的一些 filter 功能
ifconfig ethx promisc关闭混淆模式:ifconfig ethx -promisc未开启混淆模式导致无法收包的问题。启动 eth2 的 promisc 模式ifconfig eth2 promiscDevelop>ifconfig eth3eth3 Link encap:Ethernet HWaddr 08:35:71:ec:13:55inet6 addr: fe80::a35:71ff:feec:1355/64 Scope:LinkUP BROADCA原创 2020-09-12 15:37:56 · 3214 阅读 · 0 评论 -
dropwatch 的编译、配置与使用
dropwatch 的功能dropwatch 功能可以用来监控内核的网络栈丢弃的数据包。接收的数据包在内核中被丢弃,很多时候并不会在日志中记录,一般难以发现。启用内核 dropwatch 功能dropwatch 功能需要开启 CONFIG_NET_DROP_MONITOR 配置,在我的虚机中,相关的配置信息如下:longyu@debian:~$ grep 'NET_DROP_MONITOR' /boot/config-4.19.0-8-amd64CONFIG_NET_DROP_MONITOR=m原创 2020-08-02 19:51:40 · 2600 阅读 · 0 评论 -
tun 与 tap 设备,网桥、VLAN、bonding 的学习
tun 与 tap 设备这两个都是虚拟网络设备,tun 设备用来实现三层隧道(三层 ip 数据报),tap 设备用来实现二层隧道(二层以太网数据帧)。tun 示例程序:#include <fcntl.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <linux/if.h>#include <linux/if_tun.h>#include <unistd.h>原创 2020-07-28 22:38:45 · 3439 阅读 · 0 评论 -
ifrename 命令与 net.ifrenames 内核启动参数
[ 4.218735] r8169 0000:02:00.0 eth0: RTL8168h/8111h, 80:e8:2c:17:f0:77, XID 54100880, IRQ 126[ 4.218736] r8169 0000:02:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko][ 4.219142] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hc原创 2020-06-03 22:45:40 · 1463 阅读 · 0 评论 -
linux 虚拟机无法访问网络的几个常见问题
route 命令的用法 route [-CFvnNee] [-A family |-4|-6] route [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [...原创 2020-04-27 09:18:31 · 1191 阅读 · 0 评论 -
ethtool 的工作原理
ethtool 是如何工作的?源码之前,了无秘密。要知道 ethtool 是如何工作的,我们需要获取到它的源码。如何获取 ethtool 的源码?这可以通过在网络上搜索来完成,但是我这里有一个非常简单的方法。由于我使用的是 debian 系统,我执行如下命令获取 ethtool 工具的源码:longyu@longyu-pc:~$ sudo apt-get source ethtoolRe...原创 2019-11-28 09:45:54 · 1821 阅读 · 0 评论 -
编译 dpdk 19.10 时遇到的问题
未安装 numa 库的问题/home/longyu/dpdk-19.08/lib/librte_eal/linux/eal/eal_memory.c:32:10: fatal error: numa.h: No such file or directory #include <numa.h>官方网页中的相关说明内容如下:Library for handling NUMA (...原创 2019-11-10 12:24:35 · 8100 阅读 · 4 评论 -
ping 的功能、原理、使用示例、拦截方法
ping 的功能ping 一般用来检测服务器是否在线,它通过向服务器端发送 icmp 包,服务器接收到 icmp 包后会返回一些信息,根据这些返回的信息就可以判断服务器是否宕机。ping 的工作原理The sound pulses were called “pings.” The ping command on Unix and other systems sends an ICMP ECH...原创 2019-11-05 14:14:11 · 1111 阅读 · 0 评论