【问题标题】:Big IP remove tcp/ip route and block communication to Docker Container大 IP 删除 tcp/ip 路由并阻止与 Docker 容器的通信
【发布时间】:2021-07-23 09:24:46
【问题描述】:

短版:

为什么Big IP在建立VPN连接时会删除一些路由?

这会通过阻止与 docker 容器的任何通信来影响“Docker Desktop for Windows”,因为到达容器的 TCP/IP 路由已被 Big IP 删除。

加长版:

上下文:Docker 用于在容器中运行应用程序(Microsoft SQL Server)。通过 Docker 创建的 NAT 接口与容器通信。

问题描述:Big IP 运行时无法连接到我的 Docker 容器。

概述:当我启动包含 SQL Server 的新 docker 容器时,我可以连接它并执行 SQL 查询……但如果我启动 Big IP 连接 ICN,则无法连接到我的运行 SQL Server 的 Docker 容器是可能的……。即使我的容器仍在运行(以及 SQL 服务器)

根本原因:到我的 Docker 容器的 TCP/IP 路由被 Big Ip 删除。

逐步重现

第 1 步:启动我的 Docker 容器

docker run -e "ACCEPT_EULA=Y" --name MyLocalServer -p 1433:1433 -e "SA_PASSWORD=XXXXX" -d microsoft/mssql-server-windows-developer

第 2 步:能够连接到位于 Docker 容器中的 SQL

第 3 步:Docker 网络详细信息

返回有关我的 docker 容器的网络子网的技术信息。

第 4 步:VPN 连接前的路由表

我们看到了我的容器的路线

第 5 步:连接我的 VPN 时,Big IP 删除我的 Docker 容器的路由

大IP日志:

第 6 步:建立 VPN 连接后路由表如下所示

注意:172.29.48.0/20 的路由消失了

第 7 步:现在,无法在 SQL 容器上连接

出现以下错误“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。”

第 8 步:当我断开我的 VPN 时,删除的路由由 Big IP 恢复

第 9 步:现在可以访问我的 SQL 了

结论

删除允许与 Docker 容器通信的路由。

我已经尝试过:

#1 : 在 Big Ip 连接后使用以下命令手动添加路由:

  *route add 172.29.48.0 mask 255.255.240.0 0.0.0.0 METRIC 10 IF 34*

...但是 Big IP 会自动删除路由表中的新条目,就像之前在 BIG IP 连接时看到的那样。

#2:我尝试通过 Docker 更改 IP 用户范围以访问容器以使用 192.168.1.x(以前:172.29.48.0)

但和之前一样,Big IP 也会删除此范围的路由:

【问题讨论】:

    标签: docker vpn f5 big-ip


    【解决方案1】:

    这个问题是针对您的网络管理员的,他们可能只遵循公司的安全政策,为您提供 VPN 访问权限。

    根据K49720803: BIG-IP Edge Client operations guide | Chapter 3: Common approaches to configuring VPN,您会要求禁用禁止更改路由表选项,或者尝试添加第二个专用于您的 Docker 的网卡,希望它不会被 VPN 管理客户——但我没有尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-30
      • 2020-11-29
      • 2021-02-28
      • 1970-01-01
      • 2014-12-19
      • 2020-03-16
      • 2017-04-27
      • 2020-07-16
      相关资源
      最近更新 更多