容器网路的核心技术iptables

本文深入解析容器网络实现原理,重点介绍iptables及其工作流程。探讨iptables如何利用netfilter进行包过滤及安全增强,并详细解释数据包从进入主机到被处理的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述容器网络到底是怎么实现的呢?答:借助iptables,iptables是linux的一个防火墙机制,实现了防火墙的包过滤,提高宿主机网络的安全性。
iptables是基于linux的netfilter机制实现的,iptables就是一个用户态的工具,实际上都是在操作netfilter。
iptables的工作流程:
在这里插入图片描述数据包从开始进入本机–>首先会进入iptable的NAT表中,prerouting链决定这个包要不要被修改,这个链是需要用户自定义的,如果匹配到了就去修改,如果不匹配就不修改–>然后再经过路由选择(包里有目标ip和目标端口),路由决定这个包到哪里(是需要将包发到宿主机的某个服务上,还是通过iptables将包转发到另一个地方)我们一般将规则放在INPUT链中,就是数据包的近战,就是谁可以访问我本机的应用,谁不可以访问我本地的应用。

iptables -vnL //查看当前filter中的所有路由表
iptables-save //查看所有的iptables执行命令

在这里插入图片描述

docker port 容器id //查看容器的端口映射详情
iptables -t nat -vnL DOCKER //查看nat表的路由详细信息,链docker

SNAT容器访问外部,修改元ip为宿主机ip向外发出:
在这里插入图片描述
iptables -t nat -vnL POSTROUTING //查看放通了哪个网段出去,每创建一个容器就会放通一个网段。
当前主机所有数据包源ip来自于172.0.0.0/16这个网段的都要做源地址转换。
在这里插入图片描述
为甚么没有用SNAT,而是使用了MASQUERADE,因为MASQUERADE是动态源地址转换,SNAT是固定ip。
外部访问容器:
DNAT 目标地址转换,修改数据包目的ip:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值