容器网络原理

本文介绍了Docker容器网络的工作原理,包括使用docker0网桥实现容器间通信,veth-pair设备的作用,以及如何配置路由规则确保通信。同时,探讨了Docker容器如何访问外网,涉及iptables、ip_forward设置和MASQUERADE规则。此外,提到了flannel vxlan和calico等解决方案用于跨主机容器通信。
摘要由CSDN通过智能技术生成

对于Linux可以通过查看/proc/net/nf_conntrack文件的内容来跟踪包的链路情况

参考:浅析 /proc/net/nf_conntrack 文件(转)_cnxhsy的技术博客_51CTO博客


Bridge:
docker通过docker0这个网桥来保证容器间的通信,但是网桥一般是只认mac地址,不认ip地址,属于二层网络设备,路由器属于三层网络设备,我们发送一个包到一个ip后,首先三层网络设备会广播arp包来询问局域网中的ip地址所属的mac地址,找到mac地址后将mac地址写到网络包中的目的mac地址上,然后二层网络设备就能通过mac地址找到对应的网卡也就是说,网桥一般是二层设备,是没有ip地址的,那么docker0是一个虚拟网桥,为什么要设置一个ip地址呢,这是因为给网桥设置一个ip地址后,它就跟内核协议栈关联起来了,这样所关联的网络命名空间就能和主机,以及公网进行通信

veth-pair:
Linux的一个网络设备,这个网络设备有两个端点,数据从一个端点进入,必然从另外一个端点流出,每个veth都可以被赋予ip地址,并参与三层网络路由过程网络设备被赋予ip之后,那它的一端就可以被认为与协议栈相连

docker启动一个容器后,会创建一个veth-pair网卡,一端链接docker0,一端链接容器内的协议栈,并且为他们创建路由(为什么两端都要创建

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值