Switch-Router

Recent Posts

  • 2019-06-12

    Netfilter 是如何工作的(四):动作(target)

    每一条iptables配置的规则(rule)都包含了匹配条件(match)部分和动作(target)。当报文途径HOOK点时,Netfilter会逐个遍历挂在该钩子点上的表的rule,若报文满足rule的匹配条件,内核就会执行动作(target)。上面是一条普通iptables规则,如果报文匹配前面的条件,就会执行最后的SNAT动作,它就是这条规则的动作(target)普通动作 & 扩展动作动作又可分为普通target和扩展target两类,其中普通动作是指ACCEPT(允许报...

  • 2019-06-12

    Netfilter是如何工作的(三):规则的匹配(match)

    每一条iptables配置的rule都包含了匹配条件(match)部分和动作(target)。当报文途径HOOK点时,Netfilter会逐个遍历挂在该钩子点上的表的rule,若报文满足rule的匹配条件,内核就会执行动作(target)。扩展match的表示而match又可以分为标准match和扩展match两部分,其中前者有且只有一个,而后者有零到多个。在Netfilter中,标准match条件用ipt_entry表示(这个在上一篇文章中已经说过了),其中包括源地址和目的地址等基本信息...

  • 2019-06-12

    Netfilter是如何工作的(二):表(table)与规则(rule)

    在(一)中说到,报文在内核协议栈中会途经5个HOOK点,在每个HOOK点上会依次执行链表上的钩子函数,那么这些钩子函数是如何与用户使用iptables下发的各个rule联系起来的呢?这些rule又是如何存储的呢? 本文详细描述这个问题。table内核使用struct xt_table这个结构来表示一个表(table)。结构中记录了这个表在哪些HOOK点有效,它的private指针保存了这个表包含的所有规则。每个新的net namespace创建时,Netfitler会创建所有属于当前net...

  • 2019-06-11

    Netfilter是如何工作的(一):HOOK点

    写在前面本系列不是介绍How to配置iptables的文章。因为网络上已经有很多这类型的教程了,其中一些还不错(比如链接).本系列也不是一般意义上的Netfilter源码分析文章。因为大段粘贴代码也会让人心生畏惧和厌烦!本系列文章的目标是,用尽量少的文字和图片讲明白How Netfilter workNetfilter 的基本概念Netfilter是一套融入在Linux内核网络协议栈中的报文处理(过滤或者修改)框架。它在内核中报文的关键流动路径上定义了5个HOOK点(下图蓝色方框),各个...

  • 2019-05-15

    packetdrill--测试TCP协议栈行为的利器

    摘要:packetdrill是一个非常有用的用于测试网络协议栈的工具,由Google开发,它常用于对网络协议栈进行回归测试,确保新的功能不会影响原有功能。本文主要介绍其基本原理、安装、入门、测试脚本的编写方法。1.简介packetdrill是一个非常有用的用于测试网络协议栈的工具,由Google开发,它常用于对网络协议栈进行回归测试,确保新的功能不会影响原有功能。它支持Linux, FreeBSD, OpenBSD与NetBSD内核。它使用脚本化的语言编写测试语句,预测协议栈输出,官方...