Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° с Calico

Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° с Calico

ΠœΡ€Π΅ΠΆΠΎΠ²ΠΈΡΡ‚ плъгин Calico прСдоставя ΡˆΠΈΡ€ΠΎΠΊ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ с ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ синтаксис Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ хостовС, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ към ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хост (Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° прилоТСния, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° хоста - Ρ…ΠΎΡΡ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΡΡŠΡ€Π²ΡŠΡ€ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина) ΠΈΠ»ΠΈ ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ (Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° прилоТСния, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈΠ»ΠΈ хоствани Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини). ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅ Π½Π° Calico Π²ΠΈ позволяват Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ ΠΌΠ΅Ρ€ΠΊΠΈ Π·Π° сигурност Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ ΠΏΡŠΡ‚Ρ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ preDNAT, unracked ΠΈ applyOnForward. Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΊΠ°ΠΊ работят Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° подобряванС Π½Π° сигурността ΠΈ производитСлността Π½Π° цялостната Π²ΠΈ систСма. Π’Π°Π·ΠΈ статия обяснява ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° Calico (preDNAT, unracked ΠΈ applyOnForward), ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ към ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° хоста, с Π°ΠΊΡ†Π΅Π½Ρ‚ Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случва Π² ΠΏΡŠΡ‚ΠΈΡ‰Π°Ρ‚Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (Π²Π΅Ρ€ΠΈΠ³ΠΈ iptabels).

Π’Π°Π·ΠΈ статия ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ основно Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ работят ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Kubernetes ΠΈ Calico. Ако Π½Π΅, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌΠ΅ Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ ΡƒΡ€ΠΎΠΊ Π·Π° основна ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΈ ΡƒΡ€ΠΎΠΊ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° хоста ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Calico, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Ρ‚Π°Π·ΠΈ статия. ОсвСн Ρ‚ΠΎΠ²Π° ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ основни познания Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° IPTABLES Π² linux.

Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π²ΠΈ позволява Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΏΠΎ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ (към Π³Ρ€ΡƒΠΏΠΈ ΠΎΡ‚ хостовС ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ натоварвания/ΠΏΠΎΠ΄ΠΎΠ²Π΅). Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ…Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½ΠΈ систСми Π·Π°Π΅Π΄Π½ΠΎ - Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, систСма Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΡŠΡ€Ρ…Ρƒ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ ΠΈΠ»ΠΈ kubernetes инфраструктура. ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚Π΅ своя ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ (възли) с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ към входящия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ€Π΅Π· услугата NodePorts ΠΈΠ»ΠΈ външни IP адрСси).

На основно Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Calico ΡΠ²ΡŠΡ€Π·Π²Π° ΠΏΠΎΠ΄ към ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° (Π²ΠΈΠΆΡ‚Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ), Ρ‚ΠΎΠΉ Π³ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π° с хоста, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ Ethernet интСрфСйс (veth). Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚, ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ ΠΎΡ‚ pod, ΠΈΠ΄Π²Π° към хоста ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ интСрфСйс ΠΈ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠ°ΠΊΡ‚ΠΎ Π°ΠΊΠΎ ΠΈΠ΄Π²Π° ΠΎΡ‚ физичСски ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Calico Π½Π°Ρ€ΠΈΡ‡Π° Ρ‚Π΅Π·ΠΈ интСрфСйси caliXXX. Въй ΠΊΠ°Ρ‚ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ ΠΈΠ΄Π²Π° ΠΏΡ€Π΅Π· виртуалния интСрфСйс, Ρ‚ΠΎΠΉ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· iptables, сякаш ΠΏΠΎΠ΄ΡŠΡ‚ Π΅ Π½Π° Π΅Π΄ΠΈΠ½ скок разстояниС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ ΠΈΠ΄Π²Π° към/ΠΎΡ‚ ΠΏΠΎΠ΄, Ρ‚ΠΎΠΉ сС ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π° ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хоста.

На Kubernetes възСл, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ Calico, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° нанСсСтС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ интСрфСйс (veth) Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ слСдва. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ veth#10 (calic1cbf1ca0f8) Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ към cnx-manager-* Π² пространството ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° Π½Π° calico-monitoring.

[centos@ip-172-31-31-46 K8S]$ sudo ip a
...
10: calic1cbf1ca0f8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link
       valid_lft forever preferred_lft forever
...

[centos@ip-172-31-31-46 K8S]$ calicoctl get wep --all-namespaces
...
calico-monitoring cnx-manager-8f778bd66-lz45m                            ip-172-31-31-46.ec2.internal 192.168.103.134/32
calic1cbf1ca0f8
...

Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° с Calico

ΠšΠ°Ρ‚ΠΎ сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Calico създава veth интСрфСйс Π·Π° всяко Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, ΠΊΠ°ΠΊ Π½Π°Π»Π°Π³Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ? Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π°, Calico създава ΠΊΡƒΠΊΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π΅Ρ€ΠΈΠ³ΠΈ Π½Π° ΠΏΡŠΡ‚Ρ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ iptables.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΏΠΎΠΊΠ°Π·Π²Π° Π²Π΅Ρ€ΠΈΠ³ΠΈΡ‚Π΅, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² iptables (ΠΈΠ»ΠΈ подсистСмата netfilter). ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ пристигнС ΠΏΡ€Π΅Π· ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс, Ρ‚ΠΎΠΉ ΠΏΡŠΡ€Π²ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° PREROUTING. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° сС Π²Π·Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ въз основа Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· INPUT (насочСн към хост процСситС) ΠΈΠ»ΠΈ FORWARD (насочСн към pod ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ възСл Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°). ΠžΡ‚ локалния процСс ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° OUTPUT ΠΈ слСд Ρ‚ΠΎΠ²Π° POSTROUTING, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° бъдС ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ Π½Π°Π΄ΠΎΠ»Ρƒ ΠΏΠΎ ΠΊΠ°Π±Π΅Π»Π°.

Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ pod ΡΡŠΡ‰ΠΎ Π΅ външСн ΠΎΠ±Π΅ΠΊΡ‚ (ΡΠ²ΡŠΡ€Π·Π°Π½ с veth) ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° iptables. НСка ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠΌ:

  • ΠŸΡ€Π΅Π½Π°ΡΠΎΡ‡Π΅Π½ΠΈΡΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (nat, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½ ΠΈΠ»ΠΈ към/ΠΎΡ‚ ΠΏΠΎΠ΄) ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Π²Π΅Ρ€ΠΈΠ³ΠΈΡ‚Π΅ PREROUTING - FORWARD - POSTROUTING.
  • Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ към локалния хост процСс ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° PREROUTING - INPUT.
  • Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ ΠΎΡ‚ локалния хост процСс ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° OUTPUT - POSTROUTING.

Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° с Calico

Calico прСдоставя ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволяват Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ във всички Π²Π΅Ρ€ΠΈΠ³ΠΈ. Имайки ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ‚ΠΎΠ²Π°, Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² Calico. Числата Π² списъка с ΠΎΠΏΡ†ΠΈΠΈ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‚ Π½Π° числата Π² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΏΠΎ-Π³ΠΎΡ€Π΅.

  1. ΠŸΡ€Π°Π²ΠΈΠ»Π° Π·Π° ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° (pod) Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅
  2. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° хоста
  3. ΠžΠΏΡ†ΠΈΡ ApplyOnForward
  4. PreDNAT ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°
  5. НСпрослСдСна ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°

НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ, ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° към ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ (Kubernetes pods ΠΈΠ»ΠΈ OpenStack VM), Π° слСд Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° хоста.

ΠšΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅

ΠŸΡ€Π°Π²ΠΈΠ»Π° Π·Π° ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ (1)

Π’ΠΎΠ²Π° Π΅ опция Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ kubernetes. Calico ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π±ΠΎΡ‚Π° с Kubernetes NetworkPolicy, Π½ΠΎ прСдоставя ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ - Calico NetworkPolicy ΠΈ GlobalNetworkPolicy. Calico създава Π²Π΅Ρ€ΠΈΠ³Π° Π·Π° всСки pod (Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅) ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π° Π²Π΅Ρ€ΠΈΠ³ΠΈΡ‚Π΅ INPUT ΠΈ OUTPUT Π·Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ към Ρ„ΠΈΠ»Ρ‚ΡŠΡ€Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° FORWARD.

Π₯ост ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ

ΠŸΡ€Π°Π²ΠΈΠ»Π° Π·Π° ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° хост (2)

Π’ допълнСниС към CNI (ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс), ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅ Π½Π° Calico прСдоставят Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° самия хост. Π’ Calico ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хост, ΠΊΠ°Ρ‚ΠΎ посочитС комбинация ΠΎΡ‚ интСрфСйс Π½Π° хост ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅. ΠŸΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ сС постига с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ„ΠΈΠ»Ρ‚ΡŠΡ€Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° във Π²Π΅Ρ€ΠΈΠ³ΠΈΡ‚Π΅ INPUT ΠΈ OUTPUT. ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π°, (2) Ρ‚Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π·Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ процСси Π½Π° възСла/хоста. ВоСст, Π°ΠΊΠΎ ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, която сС ΠΏΡ€ΠΈΠ»Π°Π³Π° към ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хоста, Ρ‚ΠΎΠ²Π° няма Π΄Π° повлияС Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΎΡ‚ΠΈΠ²Π°Ρ‰ към/ΠΎΡ‚ Π²Π°ΡˆΠΈΡ‚Π΅ капсули. Но прСдоставя Π΅Π΄ΠΈΠ½Π΅Π½ интСрфСйс/синтаксис Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π·Π° вашия хост ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Calico. Π’ΠΎΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опростява процСса Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Π° ΠΌΡ€Π΅ΠΆΠ°. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хоста Π·Π° подобряванС Π½Π° сигурността Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π΅ Π΄Ρ€ΡƒΠ³ Π²Π°ΠΆΠ΅Π½ случай Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.

ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ApplyOnForward (3)

ΠžΠΏΡ†ΠΈΡΡ‚Π° ApplyOnForward Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π² Π³Π»ΠΎΠ±Π°Π»Π½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π½Π° Calico, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ към цСлия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‰ ΠΏΡ€Π΅Π· ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хоста, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚Π΅Π½ ΠΎΡ‚ хоста. Π’ΠΎΠ²Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚Π΅Π½ към локалния ΠΌΠΎΠ΄ΡƒΠ» ΠΈΠ»ΠΈ ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ Π΄Ρ€ΡƒΠ³Π°Π΄Π΅ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Calico изисква Ρ‚Π°Π·ΠΈ настройка Π΄Π° бъдС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° Π·Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ PreDNAT ΠΈ нСпрослСдСни, Π²ΠΈΠΆΡ‚Π΅ слСднитС Ρ€Π°Π·Π΄Π΅Π»ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π° ApplyOnForward ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° наблюдСниС Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° хост Π² случаитС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ Ρ€ΡƒΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ софтуСрСн NAT.

Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Π°ΠΊΠΎ трябва Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΊΠ°ΠΊΡ‚ΠΎ към хост процСси, Ρ‚Π°ΠΊΠ° ΠΈ към ΠΏΠΎΠ΄ΠΎΠ²Π΅, Ρ‚ΠΎΠ³Π°Π²Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ опцията ApplyOnForward. Всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅, Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π·Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хост ΠΈ ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ (pod). Calico Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½, Π·Π° Π΄Π° Π½Π°Π»ΠΎΠΆΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° въз основа Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ, нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° (Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хост ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅).

PreDNAT ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° (4)

Π’ Kubernetes ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° обслуТващ ΠΎΠ±Π΅ΠΊΡ‚ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Скспонирани външно с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° опцията NodePorts ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ€ (ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Calico), ΠΊΠ°Ρ‚ΠΎ Π³ΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€Π°Ρ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Cluster IPs ΠΈΠ»ΠΈ External IPs. Kube-proxy балансира входящия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΡΠ²ΡŠΡ€Π·Π°Π½ с услуга, към ΠΏΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° услуга, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ DNAT. ΠšΠ°Ρ‚ΠΎ сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ‚ΠΎΠ²Π°, ΠΊΠ°ΠΊ Π½Π°Π»Π°Π³Π°Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΈΠ΄Π²Π°Ρ‰ ΠΏΡ€Π΅Π· NodePorts? Π—Π° Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚, ΠΏΡ€Π΅Π΄ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ Π΄Π° бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΎΡ‚ DNAT (ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ хост:ΠΏΠΎΡ€Ρ‚ ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° услуга), Calico прСдоставя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Π·Π° globalNetworkPolicy, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ "preDNAT: true".

ΠšΠΎΠ³Π°Ρ‚ΠΎ pre-DNAT Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½, Ρ‚Π΅Π·ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π² (4) Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° - Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π° mangle Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° PREROUTING - нСпосрСдствСно ΠΏΡ€Π΅Π΄ΠΈ DNAT. Π’ΡƒΠΊ Π½Π΅ сС слСдва обичайният Ρ€Π΅Π΄ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ сС случва ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Ρ€Π°Π½ΠΎ Π² ΠΏΡŠΡ‚Ρ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅ Π½Π° preDNAT ΠΎΠ±Π°Ρ‡Π΅ спазват Ρ€Π΅Π΄Π° Π½Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ с pre-DNAT, Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π²Π½ΠΈΠΌΠ°Π²Π°Ρ‚Π΅ Π·Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ искатС Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅, ΠΈ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ ΠΏΠΎ-голямата част Π΄Π° бъдС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½Π°. Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚, ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ β€žΡ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅β€œ Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° ΠΏΡ€Π΅Π΄ΠΈ DNAT, Π²Π΅Ρ‡Π΅ няма Π΄Π° сС провСрява ΠΎΡ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хоста, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ отговаря Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° ΠΏΡ€Π΅Π΄ΠΈ DNAT, Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ ΠΏΡ€Π΅Π· останалитС Π²Π΅Ρ€ΠΈΠ³ΠΈ.
Calico Π½Π°ΠΏΡ€Π°Π²ΠΈ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° опцията applyOnForward ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° preDNAT, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎ дСфиниция мСстоназначСниСто Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ ΠΈΠ·Π±Ρ€Π°Π½ΠΎ. Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС насочСн към хост процСса ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚Π΅Π½ към pod ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ възСл.

НСпрослСдСна ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° (5)

ΠœΡ€Π΅ΠΆΠΈΡ‚Π΅ ΠΈ прилоТСнията ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠΌΠ°Ρ‚ Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π’ някои СкстрСмни случаи прилоТСнията ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° conntrack (основСн ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° мрСТовия стСк Π½Π° Linux). Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ, Π·Π° Π΄Π° стартиратС Ρ‚Π΅Π·ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ прилоТСния Π½Π° Linux, Ρ‰Π΅ трябва Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ»ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ conntrack ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° iptables, Π·Π° Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈΡ‚Π΅ conntrack. НСпрослСдСната ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π² Calico Π΅ ΠΏΠΎ-проста ΠΈ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π° опция, Π°ΠΊΠΎ искатС Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ възмоТно Π½Π°ΠΉ-Π±ΡŠΡ€Π·ΠΎ. НапримСр, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ масивни MemCache ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° мярка Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу DDOS.

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚ΠΈ Ρ‚ΠΎΠ²Π° Π±Π»ΠΎΠ³ пост (Or Π½Π°ΡˆΠΈΡΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄) Π·Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ информация, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ тСстовС Π·Π° СфСктивност, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ нСпрослСдСни ΠΏΡ€Π°Π²ΠΈΠ»Π°.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ опцията β€ždoNotTrack: trueβ€œ Π² Calico globalNetworkPolicy, тя става **нСпрослСдСна** ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π½ΠΎ Π² Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Linux. Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΉΠΊΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΏΠΎ-Π³ΠΎΡ€Π΅, нСпрослСдСнитС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ във Π²Π΅Ρ€ΠΈΠ³ΠΈΡ‚Π΅ PREROUTING ΠΈ OUTPUT Π² Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ прослСдяванСто Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° (conntrack). ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΄Π°Π΄Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ ΠΎΡ‚ нСпрослСдСната ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, Ρ‚ΠΎΠΉ сС ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°, Π·Π° Π΄Π° Π·Π°Π±Ρ€Π°Π½ΠΈ прослСдяванСто Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°:

  • НСпрослСдСната ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π·Π° всСки ΠΏΠ°ΠΊΠ΅Ρ‚. Няма концСпция Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠ° (ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ). Липсата Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΈΠΌΠ° няколко Π²Π°ΠΆΠ½ΠΈ послСдици:
  • Ако искатС Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° заявка, Ρ‚Π°ΠΊΠ° ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° входящ, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° изходящ (Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Calico ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° conntrack, Π·Π° Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½).
  • НСпрослСдСната ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ натоварвания Π½Π° Kubernetes (pods), Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π² Ρ‚ΠΎΠ·ΠΈ случай няма Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС прослСди изходящата Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΎΡ‚ pod.
  • NAT Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ с нСпрослСдСни ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ядрото ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° NAT ΠΊΠ°Ρ€Ρ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π² conntrack).
  • ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΏΡ€Π΅Π· ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΡ‚ΠΎ β€žΡ€Π°Π·Ρ€Π΅ΡˆΠΈ Π²ΡΠΈΡ‡ΠΊΠΈβ€œ Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° нСпрослСдСни, всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ нСпрослСдСни. Π’ΠΎΠ²Π° ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π½Π΅ Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ искатС, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° стС ΠΌΠ½ΠΎΠ³ΠΎ сСлСктивни ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ ΠΎΡ‚ нСпрослСдСнитС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ (ΠΈ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΠΏΡ€Π΅Π· Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ прослСдявани ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ).
  • НСпрослСдСнитС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π² самото Π½Π°Ρ‡Π°Π»ΠΎ Π½Π° Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Calico. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π½Π° ΠΏΠΎΠ΄ с ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°:1 ΠΈ нСпрослСдСна ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° с ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°:1000. Няма Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° нСпрослСдСни Ρ‰Π΅ бъдС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π° ΠΏΡ€Π΅Π΄ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π°. НСпрослСдСнитС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π°Ρ‡ΠΈΡ‚Π°Ρ‚ Ρ€Π΅Π΄Π° Π½Π° изпълнСниС само ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си.

Въй ΠΊΠ°Ρ‚ΠΎ Π΅Π΄Π½Π° ΠΎΡ‚ Ρ†Π΅Π»ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° doNotTrack Π΅ Π΄Π° Π½Π°Π»ΠΎΠΆΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π½ΠΎ Π² Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Linux, Calico ΠΏΡ€Π°Π²ΠΈ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° опцията applyOnForward, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ doNotTrack. Позовавайки сС Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° нСпрослСдСно(5) сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΏΡ€Π΅Π΄ΠΈ всякакви Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅. Π’Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС насочСн към хост процСса ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚Π΅Π½ към pod ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ възСл.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚

Π Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° (ΠΊΡ€Π°ΠΉΠ½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° хост, ApplyOnForward, preDNAT ΠΈ Untracked) Π² Calico ΠΈ ΠΊΠ°ΠΊ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ΠΏΠΎ ΠΏΡŠΡ‚Ρ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΊΠ°ΠΊ работят Ρ‚Π΅ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΈ бСзопасни ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ. Π‘ Calico ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, която сС ΠΏΡ€ΠΈΠ»Π°Π³Π° към Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ (Π³Ρ€ΡƒΠΏΠ° ΠΎΡ‚ възли ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅) ΠΈ Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ. Π’ΠΎΠ²Π° позволява Π½Π° профСсионалиститС ΠΏΠΎ сигурността ΠΈ мрСТовия Π΄ΠΈΠ·Π°ΠΉΠ½ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° Π·Π°Ρ‰ΠΈΡ‚Π°Π²Π°Ρ‚ β€žΠ²ΡΠΈΡ‡ΠΊΠΎβ€œ (Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ) навСднъТ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΅Π΄ΠΈΠ½Π΅Π½ Π΅Π·ΠΈΠΊ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° с ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Calico.

ΠŸΡ€ΠΈΠ·Π½Π°Π½ΠΈΠ΅: Π‘ΠΈΡ… искал Π΄Π° благодаря Π¨ΠΎΠ½ ΠšΡ€Π°ΠΌΠΏΡ‚ΡŠΠ½ ΠΈ АлСкса ΠŸΠΎΠ»ΠΈΡ‚Π° Π·Π° тСхния ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Ρ†Π΅Π½Π½Π° информация.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€