栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker跨子网通信

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker跨子网通信

docker网络中iptables的一些设置
  1. docker通过filter表的FORWARD链进行子网隔离,通过自定义链DOCKER-ISOLATION-STAGE-1和DOCKER-ISOLATION-STAGE-2控制;
  2. docker的filter表中FORWARD链有自定义链DOCKER-USER,用于用户自定义一些规则,这条链放在了FORWARD链的最开始处;
  3. docker子网间通信默认会进行NAT转换,动作方式为MASQUERADE,因此如果在子网间通信时不想进行NAT转换,可在nat表的POSTROUTING中添加一些规则;
操作步骤 1. 找出docker两个子网的桥接网卡名,假设为:
  • br-29f67fd4ba13: 172.24.2.1 172.24.2.0/24
  • br-e300b06d776e: 172.16.2.1 172.16.2.0/24
2. 在filter的自定义链DOCKER-USER中添加如下规则,可实现两个子网通信
# 转发从网卡br-29f67fd4ba13进入本机,并从网卡br-e300b06d776e出去的数据包
iptables -I DOCKER-USER -i br-29f67fd4ba13 -o br-e300b06d776e -j ACCEPT 
    
# 转发从网卡br-e300b06d776e进入本机,并从网卡br-29f67fd4ba13出去的数据包
iptables -I DOCKER-USER -i br-e300b06d776e -o br-29f67fd4ba13 -j ACCEPT    
3. 子网间通信禁止NAT转换,在nat表的POSTROUTING链中添加如下规则 => 注: 此规则必须在原来docker创建的与此子网相关的MASQUERADE之前
# 源IP为子网172.16.2.0/24,出口为br-29f67fd4ba13的数据包不做处理
iptables -t nat -I POSTROUTING -o br-29f67fd4ba13 -s 172.16.2.0/24 -j RETURN

# 源IP为子网172.16.2.0/24,出口为br-29f67fd4ba13的数据包不做处理  
iptables -t nat -I POSTROUTING -o br-e300b06d776e -s 172.24.2.0/24 -j RETURN
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510641.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号