嗨,这是一个功能请求问题。
我想运行一个容器,其中有 vxLAN 支持的覆盖。 但是对于覆盖之外的目的地,我想将容器 NAT 出来,例如到公共互联网。
我看到了三种方法来解决这个问题:
想法? 这是法兰绒的范围还是超出范围?
第二种选择似乎是合理的。 我觉得我们可以依靠 systemd-networkd 来配置这个网络路由,在我们打开 flannel 网桥之后。
@eyakubovich可能对此有意见。
已经有一个选项与 2 非常相似。如果您使用--ip-masq
运行 flanneld,它将为来自容器并流向 Internet 的流量添加 IP Masquerade 规则。 更准确地说,它是源自覆盖地址空间内部但发往其外部的流量。
该选项未记录(需要修复),因为我正在等待 Docker 将我添加的--ip-masq
合并到 Docker 守护程序。 这允许使用--ip-masq=false
和 flanneld 运行 Docker 守护程序--ip-masq
。 否则 Docker 还会为来自 docker0 的流量安装 IP 伪装规则。
最近发布的 Docker 1.3 有--ip-masq
选项。
谢谢这对我们有用!
最有用的评论
已经有一个选项与 2 非常相似。如果您使用
--ip-masq
运行 flanneld,它将为来自容器并流向 Internet 的流量添加 IP Masquerade 规则。 更准确地说,它是源自覆盖地址空间内部但发往其外部的流量。该选项未记录(需要修复),因为我正在等待 Docker 将我添加的
--ip-masq
合并到 Docker 守护程序。 这允许使用--ip-masq=false
和 flanneld 运行 Docker 守护程序--ip-masq
。 否则 Docker 还会为来自 docker0 的流量安装 IP 伪装规则。最近发布的 Docker 1.3 有
--ip-masq
选项。