
网络
文章平均质量分 83
菜鸟别浪
联系方式:hzj_smile@126.com
展开
-
网络丢包排查思路
网络丢包排查思路1.防火墙确认:看防火墙是否配置了DROP特定端口范围的可能性方法:查看iptables filter表,确认是否有相应规则会导致此丢包行为,命令:sudoiptables-save-tfilter2.连接跟踪表溢出除了防火墙本身配置DROP规则外,与防火墙有关的还有连接跟踪表nf_conntrack,Linux为每个经过内核网络栈的数据包,生成一个新的连接记录项,...原创 2020-03-18 18:28:56 · 7551 阅读 · 1 评论 -
网络收包流程-网络层处理流程ip_rcv(五)
报文提交给内核协议栈处理后,最终会调用到__netif_receive_skb_core函数,如果报文没有被网桥处理函数rx_handler消费掉,最终会交给ptype_base中注册的协议处理,包括内核注册的协议,也包括raw socket等创建的协议处理。本文将分析普通ipv4 报文的处理过程,处理入口函数为ip_rcv函数。主要调用流程:ip_rcv-->ip_...原创 2020-03-18 18:25:54 · 3789 阅读 · 1 评论 -
网路收包流程-网桥的处理流程(br网桥)(四)
目录1.网桥收发报文模型2.网桥的初始化和相关数据结构关系 1)通过br_init函数注册和初始化网桥功能 2) 添加一个桥设备-br_add_bridge 3)给网桥添加端口-br_add_if 4)数据结构3.网桥收包处理流程-br_handle_frame函数1)br_handle_frame函数2)br_han...原创 2020-02-15 15:07:33 · 6024 阅读 · 0 评论 -
网路收报流程-网桥的处理流程(br网桥)(四)
1.网桥收发报文模型 linux内核是通过一个虚拟的网桥设备来实现桥接的。这个虚拟设备可以绑定若干个以太网接口设备,从而将它们桥接起来。其网桥收发包模型如下所示:网络收发报文的二种方式:1)网桥转发给具体端口处理:网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送...原创 2020-02-15 14:57:22 · 3756 阅读 · 0 评论 -
网络收包流程-收包函数__netif_receive_skb的核心函数__netif_receive_skb_core(三)
调用关系:netif_receive_skb-->netif_receive_skb-->netif_receive_skb_internal(->__netif_receive_skb)-->__netif_receive_skb_core1.netif_receive_skb_internal的实现static int netif_receive_skb_int...原创 2020-02-15 14:39:57 · 6278 阅读 · 1 评论 -
mac头和ip头部详解
报文封装整体结构mac帧头定义 /*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6]; //目的mac地址 char m_cSrcMacAddress[6]; //源mac地址 short m_cType; //上一层协议类型,如0x0...原创 2019-08-18 14:26:03 · 9652 阅读 · 0 评论 -
网络收包流程-报文从网卡驱动到网络层(或者网桥)的流程(非NAPI、NAPI)(一)
1.上图(网上的没我这个详细,哈哈):2.具体说明NAPI和非NAPI的区别:(1) 支持NAPI的网卡驱动必须提供轮询方法poll()。(2) 非NAPI的内核接口为netif_rx(),NAPI的内核接口为napi_schedule()。(3) 非NAPI使用共享的CPU队列softnet_data->input_pkt_queue,NAPI使用设备内存(或者设备驱动程序的...原创 2019-08-26 20:23:05 · 1664 阅读 · 0 评论 -
macvlan 详解
01 macvlan 简介前面的文章讲过了几种 Linux 虚拟网络设备:tap/tun、veth-pair、bridge,它们本质上是 Linux 系统 提供的网络虚拟化解决方案,今天要讲的 macvlan 也是其中的一种,准确说这是一种网卡虚拟化的解决方案。因为 macvlan 这种技术能将 一块物理网卡虚拟成多块虚拟网卡 ,相当于物理网卡施展了 多重影分身之术 ,由一个变多个。02 m...转载 2019-09-01 13:51:57 · 23713 阅读 · 0 评论 -
Docker 网络模型之 macvlan 详解,图解,实验完整
上一篇文章我们详细介绍了 macvlan 这种技术,macvlan 详解,由于它高效易配置的特性,被用在了 Docker 的网络方案设计中,这篇文章就来说说这个。01 macvlan 用于 Docker 网络#在 Docker 中,macvlan 是众多 Docker 网络模型中的一种,并且是一种跨主机的网络模型,作为一种驱动(driver)启用(-d 参数指定),Docker macvlan...转载 2019-09-01 16:07:51 · 1400 阅读 · 0 评论 -
sk_buff详解
sk_buff 整理笔记(一、数据结构)sk_buff整理笔记(二、操作函数)sk_buff整理笔记(三、内存申请和释放)sk_buff整理笔记(四、克隆与复制)sk_buff整理笔记(五、队列管理函数)from:https://blog.youkuaiyun.com/YuZhiHui_No1...原创 2019-09-08 10:38:45 · 7326 阅读 · 1 评论 -
网络收包流程-软中断中process_backlog和poll方式处理流程(二)
在硬中断中触发了软中断后,最终会调用软中断处理函数 net_rx_action,注意:硬中断流程触发软中断后退出中断上下文,但是并不会立刻进入软中断,具体的实现需要了解软中断处理流程。1.软中断处理函数net_rx_action具体实现详解:static void net_rx_action(struct softirq_action *h){ struct ...原创 2019-09-10 18:51:24 · 2703 阅读 · 0 评论 -
linux内核开发常用站点
转载:https://github.com/hduffddybz/Linux_websites在这里整理下 Linux 开发中常用的站点1、国外站点kernel.orgLinux 内核的官方网站,在这个站点可以下载到不同版本的内核,也可以找到 kernel.org 下的各种项目 Embedded Linux wiki这个站点有嵌入式 Linux 的各种资料 lwn.net这个...原创 2019-08-25 16:04:56 · 311 阅读 · 0 评论 -
netfilter源码学习
【推荐】Netfilter连接跟踪状态解析 【推荐】Linux内核连接跟踪锁的优化分析(2) 【推荐】Linux内核连接跟踪锁的优化分析(1) netfilter源码学习(5)——connection track处理(1) 【推荐】netfilter源码学习(4)——NAT处理(1) netfilter源码学习(3)——框架hook处理(3) 【推荐】netfil...原创 2019-08-25 16:02:20 · 659 阅读 · 0 评论 -
TCP/IP源码分析
struct s_mbuf与struct sk_buffstruct sk_buff与socket内核中的UDP socket流程(1)内核中的UDP socket流程(2)——API “sys_socket”内核中的UDP socket流程(3)——sock_create内核中的UDP socket流程(4)——sock_create内核中的UDP socket流程(...原创 2019-08-25 15:42:14 · 2113 阅读 · 0 评论 -
打开和禁用IPV6的方法
基于linux7 禁止一:禁止ipv6嵌入内核模1.编辑 /etc/default/grub增加 ipv6.disable=1 到 GRUB_CMDLINE_LINUX ,例如下面的方法: GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=...原创 2018-08-09 19:18:28 · 9614 阅读 · 0 评论 -
TCP连接的建立与终止
TCP连接的建立与终止1.tcpdump的输出T C P报文段的tcpdump输出:对于T C P段,每个输出行开始按如下格式显示: 源 > 目的: 标志这里的标志代表 TCP首部中6个标志比特中的 4个: 看到了 S、 F和句点“.”标志符。其他的两个标志(R和P)。TCP首部中的其他两个标志比特—ACK 和 URG—tcpdump...原创 2018-08-09 19:23:43 · 365 阅读 · 0 评论 -
tcp传输控制协议-报文格式
tcp传输控制协议linux网络协议基础支持 参考:https://www.cnblogs.com/zxouxuewei/p/5380601.html1.TCP的首部 T C P数据被封装在一个I P数据报中: T C P首部的数据格式。如果不计任选字段,它通常是 2 0个字节。/*TCP头定义,共20个字节*/typedef struct _TCP_H...原创 2018-08-09 19:26:41 · 605 阅读 · 0 评论 -
虚拟网桥
1.虚拟网桥与NAT网桥区别 1)bridged networking(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,配置好网关和DNS的地址后,以实现通过局域网的网关或路由器访...原创 2019-11-13 16:01:48 · 5172 阅读 · 0 评论 -
linux路由表的查看和含义
1.关于路由表的一个例子解析查看命令:netstat -rn 先执行带-r选项的netstat命令,列出路由表,然后以-n选项再次执行该命令,以数字格式打印出ip地址(我们这样做是因为路由表中的一些表项是网络地址,而不是主机地址。如果没有- n选项,netstat命令将搜索文件/etc/networks并列出其中的网络名.。这样会与另一种形式的名字—网络名加主机名相混淆)。查看结果...原创 2018-08-11 16:19:31 · 40194 阅读 · 0 评论 -
虚拟交换机----》openvswitch
1.openvswitch的原理 原理讲解: 当我们创建一个交换机(网桥)之后即(ovs-vsctl add-br brname),此时网络功能不受影响,但是会产生一个虚拟网卡,名字为brname(与网桥名字同名,可以使用ifconfig brname查看),之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能,有了这个交换机以后,还需要为这个交换机增加端口(port),一...原创 2018-08-13 14:49:03 · 2325 阅读 · 0 评论 -
网卡bonding配置
bonding配置有下面几种方式,业务可供参考:1)系统配置文件形式(ifcfg-bond0)[root@h63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0 #设备名称BOOTPROTO=static #静态IPONBOOT=yes #自动启动IPADDR=17...原创 2019-08-19 18:53:10 · 2285 阅读 · 0 评论 -
tcpdump和wireshark抓包方法介绍
1.tcpdump工具的使用:用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 语法: tcpdu...原创 2019-08-19 18:58:16 · 387 阅读 · 0 评论 -
ipv4网络配置方法
1.打开配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0 (2)添加内容至配置文件 IPADDR=192.168.100.X(分配) NETMASK=255.255.255.0(定值) GATEWAY=192.168.100.0...原创 2019-08-19 19:02:43 · 7490 阅读 · 0 评论 -
ipv4反向路由配置
反向路由rp_filter - INTEGER0 - 表示不进行源地址反向路由验证1 - 表示对收到的包进行反向路由验证,如果路由得到的接口不是,报文收到的接口,将把包丢掉,这是种比较严格的检查。参考RFC37042 - 表示一种宽松的检查模式,如果收上来的包的源IP地址进行反向路由后,找不到出口,这是源地址路由才失败,将包丢掉。系统推荐使用使用严格模式检查,这种检查方式可以防止DD...原创 2019-08-24 17:17:20 · 1706 阅读 · 0 评论 -
tcp/ip发送接收总体框架
tcp/ip发送接收总体框架 对于接收到的报文,如果不被丢弃、不被网桥转发,会调用netif_receive_skb()提交给IP层;而对于IP层向外发送的报文,则通过调用dev_queue_xmit()...原创 2018-08-09 19:09:48 · 753 阅读 · 0 评论