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

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 28: Строка 28:
 
Адрес 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]]
   
  +
<PRE>
  +
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
  +
</PRE>
  +
  +
  +
<BR>
  +
Сам интерфейс внутри <code>POD</code> представляет из себя обычный для контейнеров <code>veth</code>, второй конец которой находится за пределами сетевого пространства имен <code>POD</code>,
 
<PRE>
 
<PRE>
 
ethtool -S eth0
 
ethtool -S eth0

Версия 14:23, 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

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