背景

最近在看k8s源码,读到了kube proxy,网络应该是k8s里重要的一章节,看着看着发现还是之前学的又给忘了,所以先来一波技术储备。

netfilter

net+filter,filter是过滤的意思,那我们从字面分析就是过滤数据包从而达到防火墙的目的。

那netfilter在哪过滤呢?

一个请求从宏观上看,就是先通过网卡,再通过内核空间,再到用户空间的应用,netfilter就是在内核网络协议栈中,也就是在网络层和传输层。
怎么过滤呢?
netfilter网络协议栈上设立了一个个检测点(HOOK)。就是下面的五个监测点。

  1. NF_IP_PRE_ROUTING
    刚刚进入网络层的数据包通过此点
  2. NF_IP_LOCAL_IN
    经路由查找后,送往本机的通过此检查点
  3. NF_IP_FORWARD
    要转发的包通过此检测点
  4. NF_IP_POST_ROUTING
    通过网络设备出去的包通过此检测点
  5. NF_IP_LOCAL_OUT
    本机进程发出的包通过此检测点

简称为prerouting、input、forword、output、postrouting,过滤的是网络层传输层的数据包


上下两个图一个意思

传输层、网络层


osi7层模型真的必须要记牢,这玩意就是基本功了,大概我就简单的总结一下,传输层大多用tcp协议翻译成中文传输控制协议,翻译的不好,翻译成控制传输协议不就完了么?就是控制怎么传输的,那怎么控制啊?首先咱俩想传输要先连接吧,那谁和谁链接啊,就要有源端口目标端口,知道端点了就开始什么三次握手四次挥手。网络层呢,就是把报文发送到它应该去(的IP地址)的主机,我们都知道网络很复杂,就像你访问百度,你不可能直接访问到百度服务器,除非你跟他中间拉一条网线,所以中间要通过各种路由器,就像击鼓传花一样,假设我们的ip是a,百度的是z,中间的路由器是b-y,那就要a先知道b的ip,b在知道c的ip,c在知道d的ip这么传下去,最终到达z。那a怎么知道b的,b又怎么知道c的?路由表,假设a要找z,就去路由表查去了,没发现z,怎么办?那就b就是默认网关(一般就是个路由器),再让默认网关b去查他的路由表看看有没有z,没有就一直查下去。链路层呢,你知道ip了也没用啊,实际你还是要知道他的物理地址也就是mac地址,比如a知道了b的ip,那怎么知道b的ip呢?喊呗!ARP 协议会在以太网中以广播的形式,对以太网所有的设备喊出:“这个 IP 地址是谁的?请把你的 MAC 地址告诉我”。这时候b就把他的mac地址给了a,链路层就是几号楼,网络就是几单元,传输层就是门牌号。

别怕别怕!我看见这图的时候我也特么心烦,但是你冷静看看我上面说的传输层,和网络层,你发没发现几个关键词,(NF_IP_PRE_ROUTING、NF_IP_LOCAL_IN、NF_IP_FORWARD、NF_IP_POST_ROUTING、
NF_IP_LOCAL_OUT
)这不就是那五个检测点么?看来上面说的没骗我netfilter在网络层和传输层。

总结

说白了,netfilter就是在网络层和传输层中设立了几个监测点来操作数据,至于怎么操作那是你的事,我只负责帮你设置监测点。

大白话netfilter相关推荐

  1. 大白话之 Iptables

    背景 今天在安装traefik的时候遇见了很神奇的问题,80端口没有任何程序在监听,但是访问的话会返回it works,想来想去可能是iptables的问题,由于Iptables每次都是现查,所以觉得 ...

  2. 大白话Docker入门(二)

    2019独角兽企业重金招聘Python工程师标准>>> 上篇的大白话Docker入门(一)让我们认识了docker,知道docker大概是怎么玩的.初步的印象可能会让你觉得和现在的V ...

  3. linux 防火墙 -netfilter

    2019独角兽企业重金招聘Python工程师标准>>> 关于iptables 什么是iptables? 常见于linx系统下的应用层防火墙工具 firewalld 和netfilte ...

  4. 大白话系列之C#委托与事件讲解(一)

    从序言中,大家应该对委托和事件的重要性有点了解了吧,虽然说我们现在还是能模糊,但是从我的大白话系列中,我会把这些概念说的通俗易懂的.首先,我们还是先说说委托吧,从字面上理解,只要是中国人应该都知道这个 ...

  5. netfilter的笔记3--那些内置的表

    通过netfilter的笔记2的例子,我们知道了怎么使用netfilter的框架,对于内核的设计原则来说,策略和机制分离,所以提供了iptables来供用户配置防火墙策略. 那么,怎么使用iptabl ...

  6. Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法

    一. Linux网络相关 yum install net-tools ifconfig查看网卡ip ifup ens33开启网卡 ifdown ens33关闭网卡 设定虚拟网卡ens33:0 mii- ...

  7. 基于linux的netfilter处理数据包的过程分析,基于Linux的Netfilter处理数据包的过程分析...

    基于Linux的Netfilter处理数据包的过程分析 防火墙技术在保护网络安全方面的作用越来越明显.相比较window,Linux有更好的网络性能,因此基于Linux的Netfilter技术 (本文 ...

  8. 七周三次课(11月29日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法...

    2019独角兽企业重金招聘Python工程师标准>>> 10.11 Linux网络相关 ifconfig 查看网卡ip (yum install net-tools) 安装 -a   ...

  9. Linux网络相关、firewalld、netfilter及其5表5链、iptables语法

    2019独角兽企业重金招聘Python工程师标准>>> 1.Linux 网络相关 ifconfig 查看网卡IP,见下图, net-tools 包之前安装过了,这边还可以执行这个命令 ...

最新文章

  1. Timer定时器开发
  2. Chameleon跨端框架——壹个理想主义团队的开源作品
  3. 百度CTO王海峰:百度Paddle已支持超过70个主流的模型
  4. 【渝粤教育】国家开放大学2018年秋季 0727-21T思想道德修养与法律基础 参考试题
  5. 11计算机,11-计算机科学与技术
  6. 获取两个圆的重合部分的经纬度_(2)万向节的装配和动画仿真:重合同轴心装配约束很常用...
  7. 分布式SOA基础架构崭露头角
  8. Flutter NestedScrollView实现的一个经典滑动折叠头部图片的效果
  9. android用户界面-事件处理
  10. Jenkins系列二通过Deploy war/ear to a container方式部署maven项目,maven聚合项目到Tomcat
  11. LoadRunner 11安装Micosoft Visual C++ 2005 SP1时提示命令行选项语法错误
  12. the basic concepts of c#
  13. 三角网导线平差实例_附合导线平差教程
  14. Entrez Direct
  15. VIRTIO 前后端驱动中 GPA,HVA 转换原理
  16. Android手机无线调试
  17. 目标检测——目标检测方法的综述
  18. 渗透测试类型(白盒测试、黑盒测试)和漏洞扫描器
  19. 企业局域网如何搭建?
  20. MySQL查询最大值(最小值)或前n个最大(最小)值的方法分析

热门文章

  1. matlab绘图plot知识汇总
  2. 抓包+逆向app分析protobuf
  3. 企业级邮件服务器Exchange server 的搭建(一)
  4. Uber Go 语言编程规范
  5. input限制上传的文件大小
  6. 天选姬 - 桌面宠物
  7. 如何输出1到100的所有偶数?
  8. Java读取和修改Tomcat的server.xml配置文件(多个service配置适用)
  9. 前端利器 —— 提升《500倍开发效率》 传一张设计稿,点击一建生成项目 好牛
  10. 操作零碎典型调剂算法