Calico Kubernetes the hard way v2 How packet goes from pod: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 27: Строка 27:
 
При этом на первый взгляд выглядит так как-будто работать такая схема не должна <BR>
 
При этом на первый взгляд выглядит так как-будто работать такая схема не должна <BR>
 
Адрес 169.254.1.1 это вообще [[Bogon#169.254.0.0.2F16|Link-Local address]]
 
Адрес 169.254.1.1 это вообще [[Bogon#169.254.0.0.2F16|Link-Local address]]
  +
<BR>
  +
На интерфейсе установлен адрес с маской /32, в качестве шлюза указан адрес доступный непосредственно через интерфейс
   
 
<PRE>
 
<PRE>
 
ifconfig
 
ifconfig
  +
</PRe>
  +
<PRE>
 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
 
inet 10.244.235.132 netmask 255.255.255.255 broadcast 0.0.0.0
 
inet 10.244.235.132 netmask 255.255.255.255 broadcast 0.0.0.0

Версия 14:26, 22 декабря 2022

Calico: как пакет выходит из POD

Это заметка про Calico, где рассматривается небольшая часть пути пакета - как пакет покидает POD.
Она появилась по-тому что сеть сделана в Calico не совсем классическим способом, и используются механизмы которые редко можно встретить за пределами сетей провайдеров.

"Странности" внутри PODa

Внутри POD таблица маршрутизации выглядит достаточно необычно:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         169.254.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.1.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth0

При этом на первый взгляд выглядит так как-будто работать такая схема не должна
Адрес 169.254.1.1 это вообще Link-Local address
На интерфейсе установлен адрес с маской /32, в качестве шлюза указан адрес доступный непосредственно через интерфейс

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.244.235.132  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::68a6:d0ff:fe94:1d10  prefixlen 64  scopeid 0x20<link>
        ether 6a:a6:d0:94:1d:10  txqueuelen 0  (Ethernet)
        RX packets 5  bytes 446 (446.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 17  bytes 1286 (1.2 KB)
        TX errors 0  dropped 1 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



Сам интерфейс внутри POD представляет из себя обычный для контейнеров veth, второй конец которой находится за пределами сетевого пространства имен POD,

ethtool -S eth0
NIC statistics:
     peer_ifindex: 254
     rx_queue_0_xdp_packets: 0
     rx_queue_0_xdp_bytes: 0
     rx_queue_0_xdp_drops: 0