为什么当节点位于不同的子网/网关上时,bgp OPEN 消息会获取 Connect Socket:对等方重置连接

为什么当节点位于不同的子网/网关上时,bgp OPEN 消息会获取 Connect Socket:对等方重置连接

我的网络设置:

Kubernetes 网络设置

使用此设置,只有同一子网上的节点才能建立 bgp 连接。其他节点(执行完整的 3 路 TCP 握手)使用 [FIN, ACK] 和 [RST] 响应 OPEN 消息,因此我的calicoctl node status<- 中的“对等重置连接”消息位于控制器 3(10.0.3.100)上

    IPv4 BGP status
+--------------+-------------------+-------+----------+--------------------------------+
| PEER ADDRESS |     PEER TYPE     | STATE |  SINCE   |              INFO              |
+--------------+-------------------+-------+----------+--------------------------------+
| 10.0.1.100   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | closed                         |
| 10.0.2.100   | node-to-node mesh | start | 07:12:01 | Connect                        |
| 10.0.1.101   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | reset by peer                  |
| 10.0.1.102   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | reset by peer                  |
| 10.0.2.102   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | reset by peer                  |
| 10.0.3.101   | node-to-node mesh | up    | 07:14:13 | Established                    |
| 10.0.3.102   | node-to-node mesh | up    | 07:12:02 | Established                    |
+--------------+-------------------+-------+----------+--------------------------------+

我的 wireshark 转储了从控制器 3 (10.0.3.100) 到节点 4 (10.0.2.102) 的握手 + OPEN 消息

Wireshark 10.0.3.100 和 10.0.2.102 之间的 bgp 跟踪
Wireshark 10.0.0.4(10.0.3.100) 和 10.0.2.102 之间的 bgp 跟踪
也许问题是节点 4 看到的数据来自 10.0.0.4 而不是 10.0.3.100?

什么有效

  1. 从所有节点 ping 所有节点均正常
  2. nc 端口 179 到所有节点成功
  3. Wireshark 显示从控制器 3 到节点 4 的完整 TCP 握手

设置

  1. Kubernetes 1.21.1(通过 kubespray 安装)
  2. Calico 3.9(kubespray 中的默认设置)
  3. 所有网关都是 pfSense 2.5.x,“主”网关具有通过 10.0.0.2 到 10.0.1.0/24 的静态路由、通过 10.0.0.3 到 10.0.2.0/24 的静态路由以及通过 10.0.0.4 到 10.0.3.0/24 的静态路由。
  4. 数据中心路由器上的广域网和局域网上的防火墙均已禁用,任何 pfSense 盒上均未启用 NAT。(ipsec vpn 的 NAT 位于主网关的广域网端口上)
  5. 据我所知,所有子网中的所有节点之间都有完整的 IP 连接

答案1

我错误地认为 pfSense Auto NAT 仅用于 IPsec 直通,当我禁用所有出站 NAT 规则生成时,它开始按预期工作。我的错是不了解 pfSense 路由器中的设置。

相关内容