Flannel: Flannel 网络和 NAT 之外的路由

创建于 2014-11-02  ·  3评论  ·  资料来源: coreos/flannel

嗨,这是一个功能请求问题。

我想运行一个容器,其中有 vxLAN 支持的覆盖。 但是对于覆盖之外的目的地,我想将容器 NAT 出来,例如到公共互联网。

我看到了三种方法来解决这个问题:

  • 第二个网络接口:使用 Flannel 作为覆盖,然后创建第二个 netdev,它更类似于容器的默认 Docker NAT。 然后到覆盖层的流量仍然通过法兰绒,第二个 netdev 上的默认路由处理互联网流量。
  • Flannel setup NATs :Flannel 的某种配置选项,为覆盖层之外添加默认路由,当退出覆盖层时,让 flannel 配置 NAT。
  • 创建 vxLAN 网关:使用 flannel 接口和另一个 netdev 到 NAT 到(或类似的东西)创建一个容器或机器。 在其他容器上配置默认路由以通过此 NAT 实例。

想法? 这是法兰绒的范围还是超出范围?

最有用的评论

已经有一个选项与 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选项。

所有3条评论

第二种选择似乎是合理的。 我觉得我们可以依靠 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选项。

谢谢这对我们有用!

此页面是否有帮助?
0 / 5 - 0 等级