ΠšΠΎΠ³Π°Ρ‚ΠΎ Linux conntrack Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ ваш приятСл

ΠšΠΎΠ³Π°Ρ‚ΠΎ Linux conntrack Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ ваш приятСл

ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ (β€œconntrack”) Π΅ основна функция Π½Π° мрСТовия стСк Π½Π° ядрото Π½Π° Linux. Π’ΠΎ позволява Π½Π° ядрото Π΄Π° прослСдява всички логичСски ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡΡ‚Π°Π²ΡΡ‚ всСки ΠΏΠΎΡ‚ΠΎΠΊ, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Ρ‚Π΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈ послСдоватСлно.

Conntrack Π΅ Π²Π°ΠΆΠ½Π° функция Π½Π° ядрото, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² някои основни случаи:

  • NAT Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° Π½Π° информация ΠΎΡ‚ conntrack, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΡƒ позволява Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎ всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ. НапримСр, ΠΊΠΎΠ³Π°Ρ‚ΠΎ pod сС ΡΠ²ΡŠΡ€Π·Π²Π° със service Kubernetes, Π±Π°Π»Π°Π½ΡΡŒΠΎΡ€ΡŠΡ‚ kube-proxy ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° NAT Π·Π° насочванС Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° към ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ pod Π² кластСра. Conntrack записва, Ρ‡Π΅ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ към IP Π½Π° service трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ pod ΠΈ Ρ‡Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, Π²ΡŠΡ€Π½Π°Ρ‚ΠΈ ΠΎΡ‚ pod-a Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°, трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ насочСни ΠΎΡ‚ NAT ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² pod-Π°, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ Π΅ дошла заявката.
  • Π€Π°ΠΉΡŠΡ€ΠΈ с прослСдяванС Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ Calico, Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚ Π½Π° информация ΠΎΡ‚ conntrack, Π·Π° Π΄Π° добавят β€œΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½β€ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² бСлия списък. Π’ΠΎΠ²Π° Π²ΠΈ позволява Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, която ΠΊΠ°Π·Π²Π°: β€žΡ€Π°Π·Ρ€Π΅ΡˆΠΈ Π½Π° моя pod Π΄Π° сС ΡΠ²ΡŠΡ€Π·Π²Π° с всякакъв ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ IP Π°Π΄Ρ€Π΅Ρβ€œ, Π±Π΅Π· нСобходимостта Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° явно Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° отговорния Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. (Π‘Π΅Π· Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ΡˆΠ΅ Π΄Π° трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ бСзопасно ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ β€žΡ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² моя pod ΠΎΡ‚ всСки IPβ€œ.)

ОсвСн Ρ‚ΠΎΠ²Π°, conntrack ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ повишава производитСлността Π½Π° систСмата (намалявайки ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° процСсорно Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° забавянС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅), Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ само ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ°
трябва Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΠΏΡ€Π΅Π· ΠΏΡŠΠ»Π½Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° мрСТовия стСк, Π·Π° Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ с Π½Π΅Π³ΠΎ. Π’ΠΈΠΆΡ‚Π΅ публикацията β€žΠ‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠΈΡ‚Π΅ kube-proxyβ€œ, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, conntrack ΠΈΠΌΠ° своитС ограничСния...

И Ρ‚Π°ΠΊΠ°, къдС всичко ΠΎΡ‚ΠΈΠ΄Π΅ Π½Π°ΠΎΠΏΠ°ΠΊΠΈ?

Π’Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° conntrack ΠΈΠΌΠ° настраиваСм максималСн Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ, Π°ΠΊΠΎ сС запълни, Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° сС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΡ‚ ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Ρ‚. Π—Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ прилоТСния Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ свободно място ΠΈ Ρ‚ΠΎΠ²Π° Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π±ΠΈ станало ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΈΠΌΠ° няколко сцСнария, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС замислитС Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° conntrack:

  • Най-очСвидният случай Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π°ΡˆΠΈΡΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ голямо количСство Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ. НапримСр, Π°ΠΊΠΎ Π²Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° conntrack Π΅ настроСна Π½Π° 128k записа, Π½ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ > 128k Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ, със сигурност Ρ‰Π΅ срСщнСтС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ!
  • По-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ случай Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π°ΡˆΠΈΡΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ голямо количСство Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² сСкунда. Π”ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ са ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ, Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Π΄Π° сС прослСдяват ΠΎΡ‚ Linux Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ 120s). НапримСр, Π°ΠΊΠΎ Π²Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° conntrack Π΅ настроСна Π½Π° 128 Ρ…ΠΈΠ». записи ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚Π΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ 1100 Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² сСкунда, Ρ‚Π΅ Ρ‰Π΅ Π½Π°Π΄Ρ…Π²ΡŠΡ€Π»ΡΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° conntrack, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ (128k / 120s = 1092 Π²Ρ€ΡŠΠ·ΠΊΠΈ / с).

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ няколко нишови Ρ‚ΠΈΠΏΠ° прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ Π² Ρ‚Π΅Π·ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. ОсвСн Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π΄ΠΎΠ±Ρ€ΠΎΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΠΈ, ΠΏΠΎΠΏΡŠΠ»Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° conntrack Π½Π° вашия ΡΡŠΡ€Π²ΡŠΡ€ с мноТСство ΠΏΠΎΠ»ΡƒΠ·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠ° ΠΎΡ‚ Ρ‚ΠΈΠΏ β€žΠΎΡ‚ΠΊΠ°Π· Π² ΠΎΠ±ΡΠ»ΡƒΠΆΠ²Π°Π½Π΅β€œ (DOS). Π’ Π΄Π²Π°Ρ‚Π° случая conntrack ΠΌΠΎΠΆΠ΅ Π΄Π° станС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π² систСмата Π²ΠΈ. Π’ някои случаи настройкитС Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° conntrack ΠΌΠΎΠΆΠ΅ Π΄Π° са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ, Π·Π° Π΄Π° отговорят Π½Π° Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π²ΠΈ β€” ΠΊΠ°Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΈΡ‚Π΅ Π½Π° conntrack (Π½ΠΎ Π°ΠΊΠΎ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‰Π΅ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ‚Π΅ с Π³ΠΎΠ»Π΅ΠΌΠΈ затруднСния). Π—Π° Π΄Ρ€ΡƒΠ³ΠΈ случаи Ρ‰Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ conntrack Π·Π° агрСсивСн Ρ‚Ρ€Π°Ρ„ΠΈΠΊ.

Π Π΅Π°Π»Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π”Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π΅Π΄ΠΈΠ½ голям SaaS доставчик, с ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅, имашС Ρ€Π΅Π΄ΠΈΡ†Π° memcached-ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° хостовС (Π½Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини), всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΡˆΠ΅ 50К+ ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² сСкунда.

Π’Π΅ СкспСримСнтираха с конфигурацията Π½Π° conntrack, ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ…Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ намаляваха Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° прослСдяванС, Π½ΠΎ конфигурацията бСшС Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½Π°, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ консумацията Π½Π° RAM, ΠΊΠΎΠ΅Ρ‚ΠΎ бСшС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ (ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊΠ° Π½Π° GB!), Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ бяха Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΊΡ€Π°Ρ‚ΠΊΠΈ, Ρ‡Π΅ conntrack Π½Π΅ давашС ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΎΡ‚ΠΎ си прСдимство Π² производитСлността (намаляванС Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° CPU ΠΈΠ»ΠΈ закъснСния Π² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅).

Π’ качСството Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Ρ‚Π΅ сС ΠΎΠ±ΡŠΡ€Π½Π°Ρ…Π° към Calico. ΠœΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Calico позволяват Π΄Π° Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° conntrack Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π²ΠΈΠ΄ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (Ρ‡Ρ€Π΅Π· опцията doNotTrack Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅). Π’ΠΎΠ²Π° ΠΈΠΌ осигури Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° производитСлност плюс Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° сигурност, прСдоставяно ΠΎΡ‚ Calico.

На ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° сС ΠΏΠΎΠ΄Π»ΠΎΠΆΠ°Ρ‚, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ conntrack?

  • ΠœΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ do-not-track ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ симСтрични. Π’ случая Π½Π° доставчик Π½Π° SaaS: Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ прилоТСния Ρ€Π°Π±ΠΎΡ‚Π΅Ρ…Π° Π² Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° Π·ΠΎΠ½Π° ΠΈ Π·Π°Ρ‚ΠΎΠ²Π° Ρ‡Ρ€Π΅Π· ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Ρ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° добавят Π² бял списък Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ прилоТСния, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π±Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ memcached.
  • ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° do-not-track Π½Π΅ Π²Π·Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ посоката Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, Π² случай Π½Π° Ρ…Π°ΠΊΠ²Π°Π½Π΅ Π½Π° memcached-ΡΡŠΡ€Π²ΡŠΡ€, Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΏΠΈΡ‚Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към ΠΊΠΎΠΉΡ‚ΠΎ ΠΈ Π΄Π° Π΅ ΠΎΡ‚ memcached-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Π°ΠΊΠΎ Ρ‚ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° правилния ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΏΠΎΡ€Ρ‚. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ стС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° Π²Π°ΡˆΠΈΡ‚Π΅ memcached-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ всС ΠΏΠ°ΠΊ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ ΠΎΡ‚ страната Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
  • ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° do-not-track сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π·Π° всСки ΠΏΠ°ΠΊΠ΅Ρ‚, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ само Π·Π° ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄Π° Π½Π° рСсурси Π½Π° CPU Π·Π° Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° всСки ΠΏΠ°ΠΊΠ΅Ρ‚. Но Π·Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ Ρ‚ΠΎΠ·ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ сС компСнсира с Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ Π½Π° рСсурси Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° conntrack. НапримСр, Π² случая Π½Π° доставчика Π½Π° SaaS, броят Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π·Π° всяка Π²Ρ€ΡŠΠ·ΠΊΠ° бСшС ΠΌΠ½ΠΎΠ³ΠΎ малък, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡΡ‚ Ρ€Π°Π·Ρ…ΠΎΠ΄ Π½Π° рСсурси Π½Π° CPU ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° всСки ΠΏΠ°ΠΊΠ΅Ρ‚ бСшС ΠΎΠΏΡ€Π°Π²Π΄Π°Π½.

Π”Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към тСстовСтС

ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ тСст Π½Π° Π΅Π΄ΠΈΠ½ pod с memcached-ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ мноТСство pod-ΠΎΠ²Π΅ memcached-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, стартирани Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ възли, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ…ΠΌΠ΅ Π΄Π° стартирамС ΠΌΠ½ΠΎΠ³ΠΎ голямо количСство Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² сСкунда. Π‘ΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ с pod Π½Π° memcached-ΡΡŠΡ€Π²ΡŠΡ€Π° имашС 8 ядра ΠΈ 512k записа Π² conntrack Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° (стандартно настроСн Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π° хост).
Π˜Π·ΠΌΠ΅Ρ€Π²Π°Ρ…ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π² производитСлността ΠΌΠ΅ΠΆΠ΄Ρƒ: Π±Π΅Π· ΠΌΡ€Π΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°; с ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π½Π° Calico; ΠΈ с ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π½Π° Calico do-not-track.

Π—Π° ΠΏΡŠΡ€Π²ΠΈΡ тСст Π·Π°Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ броя Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ Π΄ΠΎ 4,000 Π² сСкунда, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ…ΠΌΠ΅ Π΄Π° сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π² Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CPU. НямашС ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΈ различия ΠΌΠ΅ΠΆΠ΄Ρƒ липсата Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΈ ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½Π°Ρ‚Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, Π½ΠΎ do-not-track ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° CPU с ΠΎΠΊΠΎΠ»ΠΎ 20% :

ΠšΠΎΠ³Π°Ρ‚ΠΎ Linux conntrack Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ ваш приятСл

Π’ΡŠΠ² втория тСст пуснахмС Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Ρ…ΠΌΠ΅ максималния Π±Ρ€ΠΎΠΉ Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² сСкунда, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π°ΡˆΠΈΡΡ‚ memcached-ΡΡŠΡ€Π²ΡŠΡ€ моТСшС Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ. ΠšΠ°ΠΊΡ‚ΠΎ сС ΠΎΡ‡Π°ΠΊΠ²Π°ΡˆΠ΅, Π² случая с β€žΠ±Π΅Π· ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈβ€œ ΠΈ β€žΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°β€œ, ΠΈ Π΄Π²Π΅Ρ‚Π΅ достигнаха Π»ΠΈΠΌΠΈΡ‚Π° conntrack ΠΎΡ‚ Π½Π°Π΄ 4,000 Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² сСкунда (512k / 120s = 4,369 Π²Ρ€ΡŠΠ·ΠΊΠΈ/с). Π‘ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° do-not-track Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ…Π° 60,000 Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² сСкунда Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π£Π²Π΅Ρ€Π΅Π½ΠΈ смС, Ρ‡Π΅ Π±ΠΈΡ…ΠΌΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Ρ‚ΠΎΠ²Π° число, ΠΊΠ°Ρ‚ΠΎ ΡΠ²ΡŠΡ€ΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Π½ΠΎ смятамС, Ρ‡Π΅ Ρ‚Π΅Π·ΠΈ Ρ†ΠΈΡ„Ρ€ΠΈ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ, Π·Π° Π΄Π° ΠΈΠ»ΡŽΡΡ‚Ρ€ΠΈΡ€Π°Ρ‚ основната идСя Π½Π° Ρ‚Π°Π·ΠΈ статия!

ΠšΠΎΠ³Π°Ρ‚ΠΎ Linux conntrack Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ ваш приятСл

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Conntrack Π΅ Π²Π°ΠΆΠ½Π° функция Π½Π° ядрото. Вя изпълнява Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. ЧСсто я ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° систСмата. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ситуации, Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ conntrack Π½Π°Π΄ΠΌΠΈΠ½Π°Π²Π° ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚ΠΎΠΉ носи. Π’ Ρ‚ΠΎΠ·ΠΈ сцСнарий ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Calico ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚, Π·Π° Π΄Π° сС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° сСлСктивно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° conntrack, повишавайки Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° сигурност. Π—Π° всичкитС останали Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΈ conntrack ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° бъдС Π²Π°ΡˆΠΈΡΡ‚ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€!

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈ статии Π² нашия Π±Π»ΠΎΠ³:

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster