解读-m addrtype --dst-type LOCAL -j DOCKER
比方说我们使用docker容器,一定会在iptables的NAT表中看到下在这样的一条配置规则:
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
从整体上看,这条规则是要把符合什么匹配规则的数据包,在数据包进入NAT表PREROUTING链时,让它直接jump到一个名为DOCKER的链。至于在这个DOCKER的链中有哪些继续生效的NAT规则,不是我们要讨论的。
我们主要是分析一下“-m addrtype --dst-type”的数据包匹配规则该做怎样的理解。
首先是,-m addrtype。
iptables提供了众多的扩展模块,以支持更多的功能。addrtype就是这样的一个扩展模块,提供的是Address type match的功能。引用的方式就是 -m 模块名。
对于iptables扩展模块应用的最多的莫过于在INPUT表中的类似下面这个规则了:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
注:至于conntrack和state两个模块的异同,其实没有什么差别,效果一致。
其次是,–dst-type
我们可以通过查看addrtype模块的使用说明来了解–dst-type选项的使用方法以及取值范围。
# iptables -m addrtype --help
iptables v1.4.21Usage: iptables -[ACD] chain rule-specification [options]iptables -I chain [rulenum] rule-specification [options]iptables -R chain rulenum rule-specification [options]iptables -D chain rulenum [options]iptables -[LS] [chain [rulenum]] [options]iptables -[FZ] [chain] [options]iptables -[NX] chainiptables -E old-chain-name new-chain-nameiptables -P chain target [options]iptables -h (print this help information)Address type match options:[!] --src-type type[,...] Match source address type[!] --dst-type type[,...] Match destination address type--limit-iface-in Match only on the packet's incoming device--limit-iface-out Match only on the packet's outgoing deviceValid types: UNSPECUNICASTLOCALBROADCASTANYCASTMULTICASTBLACKHOLEUNREACHABLEPROHIBITTHROWNATXRESOLVE
从上面的内容可以看到该模块支持按源地址或目标地址类型去做匹配,支持的地址类型有很多种,比如LOCAL表示是本地网络地址,BROADCAST表示匹配广播地址,以及其它各种特殊用途的地址类型。
所以回到开头的那条规则上,其作用就是:把目标地址类型属于主机系统的本地网络地址的数据包,在数据包进入NAT表PREROUTING链时,都让它们直接jump到一个名为DOCKER的链。
原文链接:https://blog.csdn.net/watermelonbig/article/details/80319766
解读-m addrtype --dst-type LOCAL -j DOCKER相关推荐
- 论文解读《Global Structure and Local Semantics-Preserved Embeddings for Entity Alignment》
论文解读<Global Structure and Local Semantics-Preserved Embeddings for Entity Alignment> 论文题目:Glob ...
- Docker系统六:Docker网络管理
Docker网络 I. Docer的通信方式 默认情况下,Docker使用网桥(brige)+ NAT的通信模型. Docker启动时会自动创建网桥Docker0,并配置ip 172.17.0.1/1 ...
- linux armhf ubuntu18.04搭建docker
1.开发环境 文件系统版本:ubuntu18.04 armhf 内核版本:linux4.1.15 docker版本:20.10.22 2.ubuntu上安装docker 1.卸载过往的版本 sudo ...
- 基于Docker的拓扑网络搭建可行性探究
基于Docker的拓扑网络搭建可行性探究 文章目录 基于Docker的拓扑网络搭建可行性探究 引入 Docker环境配置与容器选择 Image 命令 (镜像相关) Container命令(容器相关) ...
- docker高级应用之赋予容器独立外网ip
最近特别的忙,负责的项目增加很多,差不多快4个月没有写博客,今天就给各位分享一下我docker方面经验.之前写过一篇docker的安装与使用(地址http://dl528888.blog.51cto. ...
- docker 网络 不好用 docker: Error response from daemon: failed to create endpoint jovial_wing on network b
启动容器时,有可能会遇到如下问题,比如启动redis容器: sudo docker run -d -p 6379:6379 --name redis redis:latest Linux代码 dock ...
- docker高级应用之智能添加与修改防火墙规则
如果你有以下痛苦: 1.使用默认docker0桥接方式: 2.修改防火墙规则的话,使用手动修改配置: 3.并且修改时候还得计算来源端口,防止重复端口使用户登陆错误容器: 4.并当容器意外重启,内网ip ...
- Docker 容器的通信(十二)
一.容器间通信 1.IP 通信 两个容器要能通信,必须要有属于同一个网络的网卡.满足这个条件后,容器就可以通过 IP 交互了.具体做法是在容器创建时通过--network指定相应的网络,或者通过doc ...
- docker(七)容器与外部通信
文章目录 docker(7)容器与外部通信 容器访问外部世界 外部世界访问容器 docker(7)容器与外部通信 容器如何与外部世界通信,这里涉及两个方向 1.容器访问外部世界 2.外部世界访问容器 ...
最新文章
- 2020卫星参数表大全_王者荣耀比较秀的名字 2020年比较骚气比较浪的王者荣耀名字大全...
- 30年前过气老论文,为何能催生革命全球的CNN框架?
- ES6 箭头函数易出错细节
- Android Fragment 解析(下)
- K Nearest Neighbor 算法
- 服务器log文件清理,服务器日志切割清理工具(LogCutter)
- Markovs Chains采样
- sql server management studio 快速折叠object explorer中的instance
- 更改tomcat自带的logo
- 将m个苹果放入n个盘子的问题【转】
- BERT微调效果不佳?不如试试这种大规模预训练模型新范式
- 院校多媒体门户/学科网站建设解决方案
- 基于谷歌街景多位数字识别技术:TensorFlow的车牌号识别系统
- 3DSMAX安装未完成,某些产品无法安装的解决方法
- Win10设置WSL大小写敏感
- (转)三年后,我手里的比特币值多少钱
- 【电脑视频录制软件】各种录屏软件优缺点,OBS的格式转化,清晰度调节,基本使用,下载链接
- myscript 思路整理
- drawerLayout 抽屉的另一半,设置为透明的颜色
- docker最新版本发布,附面试答案