Linux 虚拟接口“丢失”对?

Linux 虚拟接口“丢失”对?
  • Q 可能特定于 AWS EKS CNI/AWS EC2/AWS VPC 网络
  • Q 可能特定于 Docker 网络

我们有一个运行着 WorkerNode 的 AWS Elastic Kubernetes 集群。在这个 WorkerNode 上,我们运行着一个 Pod,10.22.55.231该 Pod 分配有一个 IP,它是这个 WorkerNode 所在的 AWS VPC 的一部分。

我想知道数据包如何通过 Linux 网络命名空间和接口到达这个 Pod。

所以:

  1. 当我向 AWS LoadBlancer 发出请求时,它会向 EC2 的 TCP 端口(假设接口上的端口号为 30100)发送一个数据eth0
  2. ipfilterEC2 上的主机将捕获此数据包,并将其发送到iptables主机的表和链上
  3. 它会到达nat桌子和PREPOUTING链条,然后被链条KUBE-SERVICES捕获
  4. 将到达KUBE-NODEPORTS链条并被发送到KUBE-SEP-xxx链条
  5. KUBE-SEP-xxx将客户端的数据包发送到该10.22.55.231IP,即 AWS EC2 的辅助私有 IPv4 地址

在WorkerNode/EC2上,其路由10.22.55.231将被发送到enif8b7efe9956接口:

[root@ip-10-22-50-163 ec2-user]# route -n | grep 10.22.55.231
10.22.55.231    0.0.0.0         255.255.255.255 UH    0      0        0 enif8b7efe9956

这是veth来自 ID 为 6 的命名空间的接口:

12: enif8b7efe9956@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP mode DEFAULT group default 
    link/ether 5a:ba:fe:22:92:aa brd ff:ff:ff:ff:ff:ff link-netnsid 6

从我记得和谷歌搜索到的所有内容来看,它enia742601a852@if3名字的第二部分,如果3,指定其第二个对等体,当流量到达时,会发送到该对等体enia742601a852

但是如果我检查@if3界面的话 - 它是eth1

[root@ip-10-22-50-163 ec2-user]# ip a s eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 0a:39:42:17:73:4c brd ff:ff:ff:ff:ff:ff
    inet 10.22.62.78/20 brd 10.22.63.255 scope global eth1

为什么会这样?这将如何工作?数据包将再次通过iptables'natPREROUTING?它必须通过一些 Docker 接口发送,不是吗?

link-netnsid 6由我们的 Kubernetes Pod/Docker 容器使用,并且 IP映射10.22.55.231到此命名空间:

[root@ip-10-22-50-163 ec2-user]# nsenter -t 7114 -n ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc noqueue state UP group default 
    link/ether 32:62:fe:9e:7a:b5 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.22.55.231/32 scope global eth0
       valid_lft forever preferred_lft forever

彻底迷失在这里了。

相关内容