容器学习 之 容器访问外部网络

本文探讨了容器如何通过NAT机制访问外部网络,包括iptables规则的解释、dockerhost中的MASQUERADE处理以及通过tcpdump抓包分析的容器与主机的流量走向。
摘要由CSDN通过智能技术生成

之前分享过容器之间的相互访问,今天在这里分享一下容器是如何与外部世界通信的。这里涉及两个方向:

        容器访问外部世界

        外部世界访问容器

进入容器,可以看到容器可以正常访问到www.baidu.com网站

现在我们想一下容器是如何访问到外网的。这里的关键就是NAT,我们查看一下docker host的iptables规则

其含义是:来自 172.17.0.0/16 网段的包,目标地址是外网(! -o docker0),就把它交给 MASQUERADE 处理。而 MASQUERADE 的处理方式是将包的源地址替换成 host 的地址发送出去,即做了一次网络地址转换(NAT)。

接下来我们通过tcpdump抓包来分析容器访问外网的流量走向。在容器中ping www.baidu.com

通过tcpdump抓取docker0的流量,可以看到容器bbox1 172.17.0.4访问220.181.38.149(百度的IP地址)流量,下图为容器bbox1的路由流量走向

通过tcpdump抓取ens33网卡的流量,可以看到host 192.168.216.31访问220.181.38.149(百度的IP地址)流量,下图为host的路由流量走向

通过上述实验,我们可以总结出如下图的容器访问外网的流量走向。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值