calico網絡 pod 網關 default via 169.254.1.1 dev eth0


nginx pod 安裝

apt-get update
apt install net-tools # ifconfig
apt install iputils-ping # ping
apt install dnsutils
apt-get install iproute iproute-doc
apt-get install iproute2
apt-get install ethtool

 

 

 

 

 

169.254.1.1是默認的網關,但是整個網絡中沒有一張網卡是這個地址。

如一個網絡中設備D1 (192.168.0.2/24) 與設備D2 (192.168.1.2/24) 相互通信時,D1先發送了ARP廣播,請求D2的mac地址,
但是由於兩個設備處於不同網,也就是說D1的ARP請求會被R1攔截到,然后R1會封裝自己的mac地址為,然后由R1代替D1去訪問D2。 在Kubernetes Calico網絡中,當一個數據包的目的地址不是本網絡時,會先發起ARP廣播,網關即169.
254.1.1收到會將自己的mac地址返回給發送端,
后續的請求由這個veth對進行完成,使用代理arp做了arp欺騙。這樣做抑制了arp廣播攻擊,並且通過代理arp也可以進行跨網絡的訪問。

 

node服務器上查看對端網絡

 

 

cali21a9df9f120對arp請求 169.254.1.1 做了代理(網卡開啟了proxy_arp)
到達HOSTB后,根據內核連接跟蹤功能POSTROUTING做SNAT,PREROUTING會做DNAT,源ip和目的ip 分別轉換為192.168.0.2:和192.168.1.2

 

 

 

 

參考

https://www.cnblogs.com/LC161616/p/14387355.html
https://blog.csdn.net/m0_37504101/article/details/78815008

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM