Kubernetes 如何嗅探从本地主机到我的k8s群集(在本地运行)的流量?
我有一个本地运行的minikube集群和一个pod,集群ipKubernetes 如何嗅探从本地主机到我的k8s群集(在本地运行)的流量?,kubernetes,network-programming,wireshark,Kubernetes,Network Programming,Wireshark,我有一个本地运行的minikube集群和一个pod,集群ip172.17.0.8 我用它来嗅那个吊舱里的流量 在pod中,当我ping www.google.com时。我可以在wireshark捕获中看到,ICMP请求发送到/来自: pod(172.17.0.8)谷歌服务器(部分IP) 我知道有一个中间步骤。我的macbook(群集主机)代表pod发出请求并接收发送到正确pod的响应 pod(172.17.0.8)群集主机(macbook)谷歌服务器(部分IP) 如何捕获pod和群集主机(如ma
172.17.0.8
我用它来嗅那个吊舱里的流量
在pod中,当我ping www.google.com时。我可以在wireshark捕获中看到,ICMP请求发送到/来自:
pod(172.17.0.8)谷歌服务器(部分IP)
我知道有一个中间步骤。我的macbook(群集主机)代表pod发出请求并接收发送到正确pod的响应
pod(172.17.0.8)群集主机(macbook)谷歌服务器(部分IP)
如何捕获pod和群集主机(如macbook)之间的通信量?我没有使用minikube或macbook,因此您的里程可能会有所不同,但让我们尝试解决这个问题 据我所见,POD通常由主机提供一个默认网关。换句话说,主机充当其承载的吊舱的路由器。我们怎么知道的?在K8s集群上运行Ubuntu映像(并安装iproute2)时,我得到以下路由表:
root@ubuntu:/# ip route sh
default via 10.244.2.1 dev eth0
10.244.2.0/24 dev eth0 proto kernel scope link src 10.244.2.17
通过10.244.2.1查看默认值
行?这就是主机提供的“路由器”。我们甚至可以查找它的mac地址:
root@ubuntu:/# cat /proc/net/arp
IP address HW type Flags HW address Mask Device
10.244.2.5 0x1 0x2 fa:26:3d:e1:10:f5 * eth0
10.244.2.1 0x1 0x2 8e:f7:54:7b:15:51 * eth0
因此,pod和internet之间的流量可能类似于NAT路由器后面主机的流量
pod跳这个舞,然后在学习“路由器”mac地址后,它将向外部服务器发送IP数据包,外部服务器的IP地址作为目的地,自己的IP地址作为源。这些数据包的目标MAC地址将是主机虚拟网卡的MAC地址。因此,在pod上执行的捕获将实际显示pod和主机之间的通信量,就像主机是路由器一样。一旦主机收到这些数据包,它可能会将它们放在您的案例中,并通过internet发送它们
因此,在主机上,如果您在
10.244.2.1
上捕获,您应该会看到与pod相同的流量。但是如果你在真正的面向互联网的界面上进行捕获,你可能会看到pod的流量通过NAT(即以你的真实IP地址作为源IP)。我没有使用minikube或macbook,因此你的里程可能会有所不同,但让我们试着弄清楚这一点
据我所见,POD通常由主机提供一个默认网关。换句话说,主机充当其承载的吊舱的路由器。我们怎么知道的?在K8s集群上运行Ubuntu映像(并安装iproute2)时,我得到以下路由表:
root@ubuntu:/# ip route sh
default via 10.244.2.1 dev eth0
10.244.2.0/24 dev eth0 proto kernel scope link src 10.244.2.17
通过10.244.2.1查看默认值
行?这就是主机提供的“路由器”。我们甚至可以查找它的mac地址:
root@ubuntu:/# cat /proc/net/arp
IP address HW type Flags HW address Mask Device
10.244.2.5 0x1 0x2 fa:26:3d:e1:10:f5 * eth0
10.244.2.1 0x1 0x2 8e:f7:54:7b:15:51 * eth0
因此,pod和internet之间的流量可能类似于NAT路由器后面主机的流量
pod跳这个舞,然后在学习“路由器”mac地址后,它将向外部服务器发送IP数据包,外部服务器的IP地址作为目的地,自己的IP地址作为源。这些数据包的目标MAC地址将是主机虚拟网卡的MAC地址。因此,在pod上执行的捕获将实际显示pod和主机之间的通信量,就像主机是路由器一样。一旦主机收到这些数据包,它可能会将它们放在您的案例中,并通过internet发送它们
因此,在主机上,如果您在10.244.2.1
上捕获,您应该会看到与pod相同的流量。但是,如果您在真正面向internet的界面上进行捕获,您可能会看到pod的流量通过NAT(即,以您的真实IP地址作为源IP)