faz*_*azy 20
以下配置更改应确保 Docker 和 Shorewall 主机之间的流量。在 Shorewall 4.5.21.9 上测试,但应适用于最新版本:
/etc/shorewall/shorewall.conf
确保启用 IP 转发(大多数配置项是是/否,但这是“开启”):
IP_FORWARDING=On
Run Code Online (Sandbox Code Playgroud)
/etc/shorewall/masq
为您的私有 Docker 网络启用伪装 (NAT)(如果您使用不同的网络,即您使用 启动 docker --bip=#.#.#.#/#,然后进行相应更改)。更改eth0为具有外部连接的主机上的任何接口:
#INTERFACE:DEST SOURCE
eth0 172.17.0.0/16
Run Code Online (Sandbox Code Playgroud)
/etc/shorewall/interfaces
添加一个接口条目,以便 Shorewall 知道该dock区域与哪个接口相关:
#ZONE INTERFACE OPTIONS
dock docker0
Run Code Online (Sandbox Code Playgroud)
/etc/shorewall/zones
创建一个新区域;注意,docker太长会导致“无效区域名称”错误。
#ZONE INTERFACE
dock ipv4
Run Code Online (Sandbox Code Playgroud)
/etc/shorewall/policy
您可能希望允许 Docker 容器与主机和Internet 通信,因此这是一个很好的起点:
#SOURCE DEST POLICY
# ...(other policies)...
dock all ACCEPT
# ...(other policies, catch-all)...
Run Code Online (Sandbox Code Playgroud)
如果您还没有使用to打开它,您可能还需要一个类似的ACCEPT策略来处理来自fwto 的流量。dockfwall
您可以根据需要在策略或规则文件中进一步收紧它。例如,上面没有明确允许外部流量到达您的 Docker 容器;检查您的其他区域/政策/规则。
小智 7
由于 Docker 引入了其网络隔离功能,如果您想使用自定义网络,这里提到的其他解决方案已不再足够。Shorewall 5.0.6 引入了对 Docker 的支持,包括 Docker 网络。这个:
| 归档时间: |
|
| 查看次数: |
6655 次 |
| 最近记录: |