Π’ 2010 Π³ΠΎΠ΄Ρƒ Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Wargaming Π±Ρ‹Π»ΠΎ 50 сСрвСров ΠΈ простая сСтСвая модСль: бэкСнд, Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΈ Ρ„Π°ΠΉΡ€Π²ΠΎΠ». ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ сСрвСров росло, модСль ΡƒΡΠ»ΠΎΠΆΠ½ΡΠ»Π°ΡΡŒ: стСйдТинги, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ VLAN с ACL, ΠΏΠΎΡ‚ΠΎΠΌ VPN с VRF, VLAN c ACL Π½Π° L2, VRF с ACL Π½Π° L3. Π—Π°ΠΊΡ€ΡƒΠΆΠΈΠ»Π°ΡΡŒ Π³ΠΎΠ»ΠΎΠ²Π°? Π”Π°Π»ΡŒΡˆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ вСсСлСС.

Когда сСрвСров стало 16 000 Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· слСз с Ρ‚Π°ΠΊΠΈΠΌ количСством Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… сСгмСнтов стало Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Взяли стСк Netfilter, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ Π½Π΅ΠΌΡƒ Consul ΠΊΠ°ΠΊ источник Π΄Π°Π½Π½Ρ‹Ρ…, получился быстрый распрСдСлСнный Ρ„Π°ΠΉΡ€Π²ΠΎΠ». Им Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ACL Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°Ρ… ΠΈ использовали ΠΊΠ°ΠΊ внСшний ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ„Π°ΠΉΡ€Π²ΠΎΠ». Для динамичСского управлСния инструмСнтом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ систСму BEFW, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ Π²Π΅Π·Π΄Π΅: ΠΎΡ‚ управлСния доступом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ Π΄ΠΎ изоляции сСгмСнтов сСти Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

Consul + iptables = :3

Как это всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΌ стоит ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ ΠΊ этой систСмС, расскаТСт Иван Агарков (annmuor) β€” Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ инфраструктурной бСзопасности подраздСлСния Maintenance Π² Минском Ρ†Π΅Π½Ρ‚Ρ€Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Иван β€” Ρ„Π°Π½Π°Ρ‚ SELinux, Π»ΡŽΠ±ΠΈΡ‚ Perl, ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄. Как Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π˜Π‘, рСгулярно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π»ΠΎΠ³Π°ΠΌΠΈ, бэкапами ΠΈ R&D, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒ Wargaming ΠΎΡ‚ Ρ…Π°ΠΊΠ΅Ρ€ΠΎΠ² ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ всСх ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… сСрвСров Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠ°Ρ справка

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ это Π΄Π΅Π»Π°Π»ΠΈ, расскаТу, ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΊ этому ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ это понадобилось. Для этого пСрСнСсСмся Π½Π° 9 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄: 2010 Π³ΠΎΠ΄, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ появились World of Tanks. Π£ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Wargaming Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 50 сСрвСров.

Consul + iptables = :3
Π“Ρ€Π°Ρ„ΠΈΠΊ роста сСрвСров ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Π£ нас Π±Ρ‹Π»Π° сСтСвая модСль. Для Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ.

Consul + iptables = :3
БСтСвая модСль Π² 2010.

На Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅ ΠΆΠΈΠ²ΡƒΡ‚ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ ΠΏΠ°Ρ€Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят нас ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ, Π½ΠΎ Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΡ€Π²ΠΎΠ». На бэкСндС Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π° Π½Π΅Ρ‚, Π½ΠΎ Ρ‚Π°ΠΌ 50 сСрвСров, ΠΌΡ‹ ΠΈΡ… всСх Π·Π½Π°Π΅ΠΌ. ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π—Π° 4 Π³ΠΎΠ΄Π° ΠΏΠ°Ρ€ΠΊ сСрвСров вырос Π² 100 Ρ€Π°Π·, Π΄ΠΎ 5000. Появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ сСти β€” стСйдТинги: ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, Π° Ρ‚Π°ΠΌ часто ΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΎΡΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ опасным.

Consul + iptables = :3
БСтСвая модСль Π² 2014.

По ΠΈΠ½Π΅Ρ€Ρ†ΠΈΠΈ использовали всС Ρ‚Π΅ ΠΆΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΊΠΈ, ΠΈ вся Ρ€Π°Π±ΠΎΡ‚Π° вСлась Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… VLAN: ΠΊ VLAN ΠΏΠΈΡˆΡƒΡ‚ΡΡ ACL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ соСдинСниС.

Π’ 2016 количСство сСрвСров достигло 8000. Wargaming ΠΏΠΎΠ³Π»ΠΎΡ‰Π°Π» Π΄Ρ€ΡƒΠ³ΠΈΠ΅ студии, появились Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ партнСрскиС сСти. Они Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ наши, Π½ΠΎ Π½Π΅ совсСм: для ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² VLAN часто Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VPN с VRF, изоляции ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ΡΡ. БмСсь изоляций ACL росла.

Consul + iptables = :3
БСтСвая модСль Π² 2016.

К Π½Π°Ρ‡Π°Π»Ρƒ 2018 Π³ΠΎΠ΄Π° ΠΏΠ°Ρ€ΠΊ машин вырос Π΄ΠΎ 16 000. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±Ρ‹Π»ΠΎ 6, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ считали, Π² Ρ‚ΠΎΠΌ числС Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ финансовыС Π΄Π°Π½Π½Ρ‹Π΅. Появились ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ сСти (Kubernetes), DevOps, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ сСти, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎ VPN, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Π˜Π’Π‘. ΠŸΡ€Π°Π²ΠΈΠ» Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ β€” Π±Ρ‹Π»ΠΎ больно.

Consul + iptables = :3
БСтСвая модСль ΠΈ способы изоляции Π² 2018.

Для изоляции ΠΌΡ‹ использовали: VLAN с ACL Π½Π° L2, VRF с ACL Π½Π° L3, VPN ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ всСго Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Блишком ΠΌΠ½ΠΎΠ³ΠΎ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

ВсС ΠΆΠΈΠ²ΡƒΡ‚ с ACL ΠΈ VLAN. Π§Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ‚Π°ΠΊ? На это вопрос ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ Π“Π°Ρ€ΠΎΠ»ΡŒΠ΄, ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ боль.

Consul + iptables = :3

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ массовых β€” ΠΏΡΡ‚ΡŒ.

  • ГСомСтричСский рост Ρ†Π΅Π½Ρ‹ для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ». КаТдоС Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ добавлялось дольшС, Ρ‡Π΅ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ сначала ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π΅Ρ‚ Π»ΠΈ ΡƒΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°.
  • НСт Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ сСгмСнтов. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΠΈΠ»ΠΈ, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΆΠ΅ рСсурсов Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.
  • ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ Π΄ΠΎΠ»Π³ΠΎ. Π ΡƒΠΊΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎ локальноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π° час. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΎ нСсколько Π΄Π½Π΅ΠΉ.
  • БлоТности с Π°ΡƒΠ΄ΠΈΡ‚ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ». Π’ΠΎΡ‡Π½Π΅Π΅, ΠΎΠ½ Π±Ρ‹Π» Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° писались Π΅Ρ‰Π΅ Π² 2010 Π³ΠΎΠ΄Ρƒ, ΠΈ большая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
  • Низкий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ контроля Π·Π° инфраструктурой. Π­Ρ‚ΠΎ главная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΌΡ‹ ΠΏΠ»ΠΎΡ…ΠΎ Π·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π²ΠΎΠΎΠ±Ρ‰Π΅ происходит.

Π’Π°ΠΊ выглядСл сСтСвой ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π² 2018 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠ»Ρ‹ΡˆΠ°Π»: «НуТно Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ACLΒ».

Consul + iptables = :3

РСшСния

Π’ Π½Π°Ρ‡Π°Π»Π΅ 2018 Π³ΠΎΠ΄Π° Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ.

Π¦Π΅Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ растСт. ΠžΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ стало Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Ρ‹ пСрСстали ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ VLAN ΠΈ ACL, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π° устройствах.

РСшСниС: ΡƒΠ±Ρ€Π°Π»ΠΈ чСловСчСский Ρ„Π°ΠΊΡ‚ΠΎΡ€ ΠΈ ΠΏΠΎ максимуму Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ прСдоставлСниС доступа.

НовыС ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π΄ΠΎΠ»Π³ΠΎ. РСшСниС: ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ», ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ распрСдСлСнным ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Для этого Π½ΡƒΠΆΠ½Π° распрСдСлСнная систСма, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ сами, Π±Π΅Π· rsync ΠΈΠ»ΠΈ SFTP Π½Π° тысячу систСм.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ сСгмСнтов. Π€Π°ΠΉΡ€Π²ΠΎΠ» Π²Π½ΡƒΡ‚Ρ€ΠΈ сСгмСнтов стал ΠΊ Π½Π°ΠΌ ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ сСти появлялись Ρ€Π°Π·Π½Ρ‹Π΅ сСрвисы. РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΡ€Π²ΠΎΠ» Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ хоста β€” host-based firewalls. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π΅Π·Π΄Π΅ Ρƒ нас Linux, ΠΈ Π²Π΅Π·Π΄Π΅ Π΅ΡΡ‚ΡŒ iptables, это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

БлоТности с Π°ΡƒΠ΄ΠΈΡ‚ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ». РСшСниС: Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ мСстС для ΠΎΠ±Π·ΠΎΡ€Π° ΠΈ управлСния, Ρ‚Π°ΠΊ ΠΌΡ‹ смоТСм всС Π°ΡƒΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Низкий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ контроля Π·Π° инфраструктурой. РСшСниС: провСсти ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ всСх сСрвисов ΠΈ доступов ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π­Ρ‚ΠΎ большС административный процСсс, Ρ‡Π΅ΠΌ тСхничСский. Иногда Ρƒ нас Π±Ρ‹Π²Π°Π΅Ρ‚ 200-300 Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Π² нСдСлю, особСнно Π²ΠΎ врСмя Π°ΠΊΡ†ΠΈΠΉ ΠΈ Π² ΠΏΡ€Π°Π·Π΄Π½ΠΈΠΊΠΈ. ΠŸΡ€ΠΈ этом это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π°ΡˆΠΈΡ… DevOps. Π‘ Ρ‚Π°ΠΊΠΈΠΌ количСством Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠΎΡ€Ρ‚Ρ‹, IP, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΠΌ понадобились ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ сСрвис-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Β«Π§Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π΅ΡΡ‚ΡŒ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π²Ρ‹ это подняли?Β»

ПослС всСго, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ запустили, сСтСвой ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π² 2019 Π³ΠΎΠ΄Ρƒ стал Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡƒΠΆΠ΅ Ρ‚Π°ΠΊ.

Consul + iptables = :3

Consul

ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ всС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ нашли ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ сСрвис-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ², помСстим Π² Consul ΠΈ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° iptables.

Как ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ это Π΄Π΅Π»Π°Ρ‚ΡŒ?

  • Π‘ΠΎΠ±Π΅Ρ€Π΅ΠΌ всС сСрвисы, сСти ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π½Π° ΠΈΡ… основС ΠΏΡ€Π°Π²ΠΈΠ»Π° iptables.
  • АвтоматизируСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ.
  • ….
  • PROFIT.

Consul это Π½Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ API, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² iptables. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ автоматичСскиС срСдства контроля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ‡ΠΈΡ‰Π°Ρ‚ΡŒ лишнСС, ΠΈ большая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½Π°! ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² процСссС.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Consul?

Π₯ΠΎΡ€ΠΎΡˆΠΎ сСбя Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π». Π’ 2014-15 Π³ΠΎΠ΄Π°Ρ… ΠΌΡ‹ Π΅Π³ΠΎ использовали ΠΊΠ°ΠΊ бэкСнд для Vault, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠΌ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ.

НС тСряСт Π΄Π°Π½Π½Ρ‹Π΅. Π—Π° врСмя использования Consul Π½Π΅ тСрял Π΄Π°Π½Π½Ρ‹Π΅ Π½ΠΈ ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π°Π²Π°Ρ€ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ плюс для систСмы управлСния Ρ„Π°ΠΉΡ€Π²ΠΎΠ»ΠΎΠΌ.

P2P-связи ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ распространСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π‘ P2P всС измСнСния приходят быстро, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ часами.

Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ REST API. ΠœΡ‹ рассматривали Ρ‚Π°ΠΊΠΆΠ΅ Apache ZooKeeper, Π½ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ REST API, придСтся ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ костыли.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (KV), Ρ‚Π°ΠΊ ΠΈ ΠΊΠ°ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Service Discovery). МоТно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сразу сСрвисы, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Ρ‹. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΌ, Π½ΠΎ ΠΈ сосСдним ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ строя Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ сСрвис, ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎ.

Написан Π½Π° Go, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² стСк Wargaming. ΠœΡ‹ любим этот язык, Ρƒ нас ΠΌΠ½ΠΎΠ³ΠΎ Go-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠœΠΎΡ‰Π½Π°Ρ систСма ACL. Π’ Consul с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ACL ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ ΠΈ Ρ‡Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ. ΠœΡ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒΡΡ большС Π½ΠΈ с Ρ‡Π΅ΠΌ ΠΈ Ρƒ нас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ с этим ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Но Ρƒ Consul Π΅ΡΡ‚ΡŒ ΠΈ нСдостатки.

  • НС ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°, Ссли Ρƒ вас Π½Π΅ бизнСс-вСрсия. Он ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ.
  • ΠžΡ‡Π΅Π½ΡŒ зависим ΠΎΡ‚ качСства сСти ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сСрвСров. Consul Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ сСрвСра Π½Π° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΌ сСрвСрС, Ссли Π² сСти ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π»Π°Π³ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСровная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. Бвязано это с P2P-соСдинСниями ΠΈ модСлями распространСния ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.
  • БлоТности с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ доступности. Π’ статусС Consul ΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π° ΠΎΠ½ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΡƒΠΌΠ΅Ρ€.

Π‘ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²ΠΎ врСмя эксплуатации Consul, поэтому Π΅Π³ΠΎ ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ. Π’ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ ΠΎΠ± Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ бэкСндС, Π½ΠΎ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠΊΠ° ΠΆΠΈΠ²Π΅ΠΌ с Consul.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Consul

Π’ условный Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ установим сСрвСры β€” ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ… Π΄ΠΎ пяти. Один ΠΈΠ»ΠΈ Π΄Π²Π° сСрвСра Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚: ΠΎΠ½ΠΈ Π½Π΅ смогут ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ²ΠΎΡ€ΡƒΠΌ ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΏΡ€Π°Π², ΠΊΡ‚ΠΎ Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. Π‘ΠΎΠ»ΡŒΡˆΠ΅ пяти Π½Π΅Ρ‚ смысла, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΠ°Π΄Π΅Ρ‚.

Consul + iptables = :3

К сСрвСрам Π² любом порядкС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹: Ρ‚Π΅ ΠΆΠ΅ Π°Π³Π΅Π½Ρ‚Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ„Π»Π°Π³ΠΎΠΌ server = false.

Consul + iptables = :3

ПослС этого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ список P2P-соСдинСний ΠΈ строят ΠΌΠ΅ΠΆΠ΄Ρƒ собой связи.

Consul + iptables = :3

На глобальном ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΡ‹ соСдиняСм ΠΌΠ΅ΠΆΠ΄Ρƒ собой нСсколько Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ². Они Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ P2P ΠΈ ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ.

Consul + iptables = :3

Когда ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°, запрос ΠΈΠ΄Π΅Ρ‚ ΠΎΡ‚ сСрвСра ΠΊ сСрвСру. Вакая схСма называСтся ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ Serf. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Serf, ΠΊΠ°ΠΊ ΠΈ Consul, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° HashiCorp.

НСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΎ Consul

Π£ Consul Π΅ΡΡ‚ΡŒ докумСнтация с описаниСм Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π― ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит Π·Π½Π°Ρ‚ΡŒ.

Consul-сСрвСры Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ мастСра ΠΈΠ· числа Π³ΠΎΠ»ΠΎΡΡƒΡŽΡ‰ΠΈΡ…. Consul Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ мастСра ΠΈΠ· списка сСрвСров для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°, ΠΈ всС запросы ΠΈΠ΄ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π½Π΅ΠΌΡƒ, Π²Π½Π΅ зависимости ΠΎΡ‚ количСства сСрвСров. ЗависаниС мастСра Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠ΅Ρ€Π΅Π²Ρ‹Π±ΠΎΡ€Π°ΠΌ. Если мастСр Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½ β€” запросы Π½ΠΈΠΊΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ.

Π’Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅? Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, Π½Π΅Ρ‚.

Запрос Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ ΠΈΠ΄Π΅Ρ‚ ΠΎΡ‚ мастСра ΠΊ мастСру, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ сСрвСр ΠΎΠ½ ΠΏΡ€ΠΈΡˆΠ΅Π». Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ мастСр ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ 100% Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Ρ„ΠΎΡ€Π²Π°Ρ€Π΄ запросов. ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ копия Π΄Π°Π½Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρƒ всСх сСрвСров Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°, Π½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½.

ЕдинствСнный способ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ β€” Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ stale-Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

Π’ stale-Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π±Π΅Π· ΠΊΠ²ΠΎΡ€ΡƒΠΌΠ°. Π­Ρ‚ΠΎ Ρ€Π΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ отказываСмся ΠΎΡ‚ консистСнтности Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ‡ΡƒΡ‚ΡŒ быстрСС, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ любой сСрвСр. ЕстСствСнно, запись Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· мастСр.

Consul Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ. ΠŸΡ€ΠΈ сборС Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвСра Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свои Π΄Π°Π½Π½Ρ‹Π΅. Π—Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ½ всСгда обращаСтся ΠΊ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

ΠΡ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ гарантируСтся Π²Π½Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ.

Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ. Запрос ΠΈΠ΄Π΅Ρ‚ ΠΎΡ‚ мастСра ΠΊ мастСру, Π° Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, поэтому Π½Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° сработаСт ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅.

ACL Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ доступа (Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях). ACL ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ хранится Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅ Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ β€” Π² ACL Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅ (Primary DC). Если Π”Π¦ Π²Π°ΠΌ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚, ACL Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Один зависший мастСр ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ зависанию всСй Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΡŽ. НапримСр, Π² Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ 10 Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ², Π° Π² ΠΎΠ΄Π½ΠΎΠΌ плохая ΡΠ΅Ρ‚ΡŒ, ΠΈ ΠΎΠ΄ΠΈΠ½ мастСр ΠΏΠ°Π΄Π°Π΅Ρ‚. ВсС, ΠΊΡ‚ΠΎ с Π½ΠΈΠΌ общаСтся, зависнут ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ: ΠΈΠ΄Π΅Ρ‚ запрос, Π½Π° Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π°, Ρ‚Ρ€Π΅Π΄ подвисаСт. НС получится ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ³Π΄Π° это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, просто Ρ‡Π΅Ρ€Π΅Π· час ΠΈΠ»ΠΈ Π΄Π²Π° ΡƒΠΏΠ°Π΄Π΅Ρ‚ вся фСдСрация. Π’Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ смоТСтС с этим ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Бтатус, ΠΊΠ²ΠΎΡ€ΡƒΠΌ ΠΈ Π²Ρ‹Π±ΠΎΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. ΠŸΠ΅Ρ€Π΅Π²Ρ‹Π±ΠΎΡ€Π° Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, статус Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚. Π’Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас ΠΆΠΈΠ²ΠΎΠΉ Consul, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅, ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит β€” ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π΅Ρ‚. ΠŸΡ€ΠΈ этом статус ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

ΠœΡ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π½Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ части Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.

Π’ бизнСс-вСрсии Consul Enterprise Π½Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСдостатков Π²Ρ‹ΡˆΠ΅. Π’ Π½Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: Π²Ρ‹Π±ΠΎΡ€ Π³ΠΎΠ»ΠΎΡΡƒΡŽΡ‰ΠΈΡ…, распрСдСлСниС, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π•ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Β«Π½ΠΎΒ» β€” систСма лицСнзирования для распрСдСлСнной систСмы стоит ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΎ.

Π›Π°ΠΉΡ„Ρ…Π°ΠΊ: rm -rf /var/lib/consul β€” лСкарство ΠΎΡ‚ всСх Π±ΠΎΠ»Π΅Π·Π½Π΅ΠΉ Π°Π³Π΅Π½Ρ‚Π°. Если Ρƒ вас Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, просто ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ свои Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΊΠΎΠΏΠΈΠΈ. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Consul Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

BEFW

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ Consul.

BEFW β€” это Π°ΠΊΡ€ΠΎΠ½ΠΈΠΌ ΠΎΡ‚ BackEndFireWall. Надо Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΊΠΎΠ³Π΄Π° я создавал Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ тСстовыС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π’Π°ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ.

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»

ΠŸΡ€Π°Π²ΠΈΠ»Π° написаны Π² синтаксисС iptables.

  • -N BEFW
  • -P INPUT DROP
  • -A INPUT -m state—state RELATED,ESTABLISHED -j ACCEPT
  • -A INPUT -i lo -j ACCEPT
  • -A INPUT -j BEFW

Π£ нас всС ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ BEFW, ΠΊΡ€ΠΎΠΌΠ΅ ESTABLISHED, RELATED ΠΈ localhost. Π¨Π°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, это просто ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π§Π΅ΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½ BEFW?

БСрвисы

Π£ нас Π΅ΡΡ‚ΡŒ сСрвис, Π² Π½Π΅ΠΌ всСгда Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚, Π½ΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π‘ΠΎ своСй Π½ΠΎΠ΄Ρ‹ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ локально ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π°Π³Π΅Π½Ρ‚Π° ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ сСрвис. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ тэги.

Consul + iptables = :3

Π›ΡŽΠ±ΠΎΠΉ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ зарСгистрирован Π² Consul, прСвращаСтся Π² ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ iptables. Π£ нас Π΅ΡΡ‚ΡŒ SSH β€” ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΡ€Ρ‚ 22. Bash-скрипт простой: curl ΠΈ iptables, большС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹

Как ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ доступ Π½Π΅ всСм, Π° Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ? По ΠΈΠΌΠ΅Π½ΠΈ сСрвиса ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π² KV-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ IP-списки.

Consul + iptables = :3

НапримСр, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΈΠ· дСсятой сСти ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ сСрвису SSH_TCP_22. ДобавляСм ΠΎΠ΄Π½ΠΎ малСнькоС ΠΏΠΎΠ»Π΅ TTL? ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° сутки.

Доступы

БоСдиняСм сСрвисы ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²: Ρƒ нас Π΅ΡΡ‚ΡŒ сСрвис, Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΡ‚ΠΎΠ²ΠΎ KV-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄Π°Π΅ΠΌ доступ Π½Π΅ всСм, Π° Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ.

Consul + iptables = :3

Π“Ρ€ΡƒΠΏΠΏΡ‹

Если ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ тысячи IP для доступов, Ρ‚ΠΎ устанСм. ΠŸΡ€ΠΈΠ΄ΡƒΠΌΠ°Π΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ subset Π² KV. НазовСм Π΅Π³ΠΎ Alias (ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹) ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ.

Consul + iptables = :3

БоСдиняСм: Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ SSH Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π½Π° P2P, Π° Π½Π° Ρ†Π΅Π»ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΈΠ»ΠΈ нСсколько Π³Ρ€ΡƒΠΏΠΏ. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ TTL β€” ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Consul + iptables = :3

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ

Наша ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° — Ρ‡Π΅Π»ΠΎΠ²Π΅Ρ‡Π΅ΡΠΊΠΈΠΉ Ρ„Π°ΠΊΡ‚ΠΎΡ€ ΠΈ автоматизация. Пока ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π΅Π΅ Ρ‚Π°ΠΊ.

Consul + iptables = :3

ΠœΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Puppet, ΠΈ пСрСносим ΠΈΠΌ всС, Ρ‡Ρ‚ΠΎ относится ΠΊ систСмС (ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). Π’ puppetdb (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ PostgreSQL) хранится список сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ рСсурса. Π’Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ, ΠΊΡ‚ΠΎ ΠΊΡƒΠ΄Π° обращаСтся. Π’Π°ΠΊΠΆΠ΅ Ρƒ нас Π΅ΡΡ‚ΡŒ систСма pull request ΠΈ merge request для этого.

ΠœΡ‹ написали befw-sync β€” ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π‘Π½Π°Ρ‡Π°Π»Π° sync cookies ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² puppetdb. Π’Π°ΠΌ настроСн HTTP API: Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅ Ρƒ нас Π΅ΡΡ‚ΡŒ сСрвисы, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. ΠŸΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°ΡŽΡ‚ запрос Π² Consul.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Π΅ΡΡ‚ΡŒ? Π•ΡΡ‚ΡŒ: написали ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Pull Request. НуТСн ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΠΎΡ€Ρ‚ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ хост Π² ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΡƒ? Pull Request, Ρ€Π΅Π²ΡŒΡŽ β€” большС Π½ΠΈΠΊΠ°ΠΊΠΈΡ… «Найди 200 Π΄Ρ€ΡƒΠ³ΠΈΡ… ACL ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ с этим ΡΠ΄Π΅Π»Π°Ρ‚ΡŒΒ».

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ

Пинг localhost с пустой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ ΠΏΡ€Π°Π²ΠΈΠ» Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 0,075 мс.

Consul + iptables = :3

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² эту Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ 10 000 адрСсов iptables. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΈΠ½Π³ увСличится Π² 5 Ρ€Π°Π·: iptables ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ адрСса Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя.

Consul + iptables = :3

Для Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ тысячи ACL, Ρƒ нас ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ», ΠΈ это вносит Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ. Для ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² это ΠΏΠ»ΠΎΡ…ΠΎ.

Но Ссли ΠΌΡ‹ помСстим 10 000 адрСсов Π² ipset ΠΏΠΈΠ½Π³ Π΄Π°ΠΆΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ.

Consul + iptables = :3

Бмысл Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Β«OΒ» (ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°) для ipset всСгда Ρ€Π°Π²Π½ΠΎ 1, сколько Π±Ρ‹ Ρ‚Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ» Π½Π΅ Π±Ρ‹Π»ΠΎ. ΠŸΡ€Π°Π²Π΄Π°, Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” ΠΏΡ€Π°Π²ΠΈΠ» Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС 65535. Пока с этим ΠΆΠΈΠ²Π΅ΠΌ: ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ, Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π° ipset Π² ΠΎΠ΄Π½ΠΎΠΌ.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅

Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ процСсса ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ β€” Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… для сСрвиса Π² ipset.

Consul + iptables = :3

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый SSH, ΠΈ ΠΌΡ‹ Π½Π΅ пишСм сразу 100 IP, Π° Π·Π°Π΄Π°Π΅ΠΌ имя ipset, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ, ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ DROP. МоТно ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Β«ΠšΡ‚ΠΎ Π½Π΅ Ρ‚ΡƒΡ‚, Ρ‚ΠΎΡ‚ DROPΒ», Π½ΠΎ Ρ‚Π°ΠΊ нагляднСй.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ сСты. Главная Π·Π°Π΄Π°Ρ‡Π° β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСт Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½Π°Ρ‡Π΅ iptables Π½Π΅ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ.

ΠžΠ±Ρ‰Π°Ρ схСма

Π’ Π²ΠΈΠ΄Π΅ схСмы всС, Ρ‡Ρ‚ΠΎ я рассказал, выглядит Ρ‚Π°ΠΊ.

Consul + iptables = :3

ΠšΠΎΠΌΠΌΠΈΡ‚ΠΈΠΌ Π² Puppet, всё отправляСтся Π½Π° хост, сСрвисы здСсь, ipset Ρ‚Π°ΠΌ, Π° ΠΊΡ‚ΠΎ Ρ‚Π°ΠΌ Π½Π΅ прописан, Ρ‚ΠΎΠ³ΠΎ Π½Π΅ ΠΏΡƒΡΠΊΠ°ΡŽΡ‚.

Allow & deny

Π§Ρ‚ΠΎΠ±Ρ‹ быстро ΡΠΏΠ°ΡΠ°Ρ‚ΡŒ ΠΌΠΈΡ€ ΠΈΠ»ΠΈ быстро ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, Π² Π½Π°Ρ‡Π°Π»Π΅ всСх Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΌΡ‹ сдСлали Π΄Π²Π° ipset: rules_allow ΠΈ rules_deny. Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

НапримСр, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΡ‚Π°ΠΌΠΈ создаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° наш Web. РаньшС Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ Π»ΠΎΠ³Π°ΠΌ Π΅Π³ΠΎ IP, отнСсти сСтСвым ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ нашли источник Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π΅Π³ΠΎ Π·Π°Π±Π°Π½ΠΈΠ»ΠΈ. БСйчас это выглядит ΠΈΠ½Π°Ρ‡Π΅.

Consul + iptables = :3

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ Π² Consul, ΠΆΠ΄Π΅ΠΌ 2,5 с, ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Consul Π·Π° счСт P2P быстро распрСдСляСт, Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π΅Π·Π΄Π΅, Π² любой части ΠΌΠΈΡ€Π°.

ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ я ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ остановил WOT, ошибившись с Ρ„Π°ΠΉΡ€Π²ΠΎΠ»ΠΎΠΌ. rules_allow β€” это наша страховка ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… случаСв. Если ΠΌΡ‹ Π³Π΄Π΅-Ρ‚ΠΎ ошиблись с Ρ„Π°ΠΉΡ€Π²ΠΎΠ»ΠΎΠΌ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ заблокируСтся, ΠΌΡ‹ всСгда ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ условный 0.0/0, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро всС ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ. Π£ΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΡ‹ всС ΠΏΠΎΡ‡ΠΈΠ½ΠΈΠΌ Ρ€ΡƒΠΊΠ°ΠΌΠΈ.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ сСты

МоТно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСты Π² пространствС $IPSETS$.

Consul + iptables = :3

Π—Π°Ρ‡Π΅ΠΌ? Иногда ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π½ΡƒΠΆΠ½Ρ‹ ipset, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ части кластСра. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ принСсти Π»ΡŽΠ±Ρ‹Π΅ сСты, ΠΈΡ… Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΈΠ· Consul. ΠŸΡ€ΠΈ этом сСты ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠ°ΠΊ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… iptables, Ρ‚Π°ΠΊ ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ NOOP: ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ

РаньшС Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊ: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π»ΡΡ ΠΊ сСти ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠΌΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π”ΠΎ появлСния Ρ„Π°ΠΉΡ€Π²ΠΎΠ»ΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния Cisco Π½Π΅ ΡƒΠΌΠ΅Π»Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π° Π³Π΄Π΅ IP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ доступ выдавался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· hostname-ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π§Ρ‚ΠΎ сдСлали ΠΌΡ‹? Π’ΠΊΠ»ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ получСния адрСса. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это dot1x, Wi-Fi ΠΈΠ»ΠΈ VPN β€” всС ΠΈΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· RADIUS. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ создаСм Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² Π½Π΅Π΅ IP с TTL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π²Π΅Π½ Π΅Π³ΠΎ dhcp.lease β€” ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ истСчСт, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ исчСзнСт.

Consul + iptables = :3

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ доступ ΠΊ сСрвисам, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΏΠΎ username. ΠœΡ‹ избавились ΠΎΡ‚ Π±ΠΎΠ»ΠΈ с hostname, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, ΠΈ сняли Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с сСтСвых ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Cisco. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ сами ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ доступы Π½Π° своих сСрвСрах.

Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ. БСрвис-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ сдСлали ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° ΠΌΡ‹ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ всС наши сСти. Π Π°Π·Π»ΠΎΠΆΠΈΠΌ ΠΈΡ… Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹, Π° Π½Π° Π½ΡƒΠΆΠ½Ρ‹Ρ… сСрвСрах Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² deny. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π° ΠΆΠ΅ самая изоляция стэйдТинга ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² rules_deny Ρƒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, Π½ΠΎ Π½Π΅ Π² сам ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½.

Consul + iptables = :3

Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстро ΠΈ просто: снимаСм всС ACL с сСрвСров, Ρ€Π°Π·Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΆΠ΅Π»Π΅Π·ΠΊΠΈ, сниТаСм количСство ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… VLAN.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ цСлостности

РаньшС Ρƒ нас Ρ€Π°Π±ΠΎΡ‚Π°Π» ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщал, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ мСнял Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π°. Π― писал ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π»ΠΈΠ½Ρ‚Π΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ» Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π°, это Π±Ρ‹Π»ΠΎ слоТно. БСйчас Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ BEFW. Он рСвностно слСдит Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, Π½Π΅ мСнялись. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ помСняСт ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π°, ΠΎΠ½ Π²Π΅Ρ€Π½Π΅Ρ‚ всС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Β«Π― Ρ‚ΡƒΡ‚ быстро поднял прокси, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ· Π΄ΠΎΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΒ» β€” Ρ‚Π°ΠΊΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² большС Π½Π΅Ρ‚.

BEFW ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ipset ΠΈΠ· сСрвисов ΠΈ списка Π² befw.conf, ΠΏΡ€Π°Π²ΠΈΠ»Π° сСрвисов Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ BEFW. Но Π½Π΅ слСдит Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ipset.

Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Π²Π°Ρ€ΠΈΠΉ

BEFW всСгда сохраняСт послСднСС ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ состояниС прямо Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ структурС state.bin. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ, ΠΎΠ½ всСгда откатываСтся Π½Π°Π·Π°Π΄ Π½Π° этот state.bin.

Consul + iptables = :3

Π­Ρ‚ΠΎ страховка ΠΎΡ‚ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Consul, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ошибся ΠΈ использовал ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π±Π΅Π· Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π°, BEFW откатится Π½Π° послСднСС состояниС, Ссли Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ этапС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка.

Π’ критичСских ситуациях это гарантия, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ останСмся с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Ρ„Π°ΠΉΡ€Π²ΠΎΠ»ΠΎΠΌ. ΠœΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ всС сСрыС сСти Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, Ρ‡Ρ‚ΠΎ Π°Π΄ΠΌΠΈΠ½ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ ΠΈ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚. Когда-Π½ΠΈΠ±ΡƒΠ΄ΡŒ я это вынСсу Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ, Π½ΠΎ сСйчас Ρƒ нас просто Ρ‚Ρ€ΠΈ сСрых сСти: 10/8, 172/12 ΠΈ 192.168/16. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… нашСго Consul это ваТная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ дальшС.

Π”Π΅ΠΌΠΎ: Π²ΠΎ врСмя Π΄ΠΎΠΊΠ»Π°Π΄Π° Иван дСмонстрируСт Π΄Π΅ΠΌΠΎ-Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ BEFW. Π”Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π΄Π΅ΠΌΠΎ доступСн Π½Π° GitHub.

ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ

РасскаТу ΠΎ Π±Π°Π³Π°Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ.

ipset add set 0.0.0.0/0. Π§Ρ‚ΠΎ случится, Ссли Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ipset 0.0.0.0/0? Добавятся всС IP? ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ доступ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚?

НСт, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π±Π°Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоил Π½Π°ΠΌ Π΄Π²ΡƒΡ… часов простоя. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π±Π°Π³ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с 2016 Π³ΠΎΠ΄Π°, Π»Π΅ΠΆΠΈΡ‚ Π² RedHat Bugzilla ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ #1297092, Π° нашли ΠΌΡ‹ Π΅Π³ΠΎ случайно β€” ΠΈΠ· ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² BEFW стоит ТСсткоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‡Ρ‚ΠΎ 0.0.0.0/0 прСвращаСтся Π² Π΄Π²Π° адрСса: 0.0.0.0/1 ΠΈ 128.0.0.0/1.

ipset restore set < file. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ipset, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π΅ΠΌΡƒ restore? Π’Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ iptables? Восстановит Π΄Π°Π½Π½Ρ‹Π΅?

НичСго ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ β€” ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ merge, ΠΈ старыС адрСса Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ Π΄Π΅Π²Π°ΡŽΡ‚ΡΡ, доступ Π²Ρ‹ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅.

Π‘Π°Π³ ΠΌΡ‹ нашли, ΠΊΠΎΠ³Π΄Π° тСстировали ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΌ довольно слоТная систСма β€” вмСсто restore проводится create temp, ΠΏΠΎΡ‚ΠΎΠΌ restore flush temp ΠΈ restore temp. Π’ ΠΊΠΎΠ½Ρ†Π΅ swap: для атомарности, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ссли сначала ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ flush ΠΈ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½ ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π°ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ.

consul kv get -datacenter=other. Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π»ΠΈΠ±ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Consul локально, Π½ΠΎ ΠΈ Π² этом случаС зависнСт ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Consul-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ это ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° Π½Π°Π΄ HTTP API. Но ΠΎΠ½ просто виснСт ΠΈ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½ΠΈ Π½Π° Ctrl+C, Π½ΠΈ Π½Π° Ctrl+Z, Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° kill -9 Π² сосСднСй консоли. ΠœΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с этим, ΠΊΠΎΠ³Π΄Π° строили большой кластСр. Но Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρƒ нас ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚, ΠΌΡ‹ готовимся ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Consul.

Consul leader Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚. Π£ нас Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ мастСр Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅, ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ: «НавСрноС, сСйчас сработаСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ΅Ρ€Π΅Π²Ρ‹Π±ΠΎΡ€Π°?Β»

НСт, Π½Π΅ сработаСт, ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚: Consul скаТСт, Ρ‡Ρ‚ΠΎ commitment index Π΅ΡΡ‚ΡŒ, Π»ΠΈΠ΄Π΅Ρ€ Π½Π°ΠΉΠ΄Π΅Π½, всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Как ΠΌΡ‹ с этим борСмся? service consul restart Π² cron ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ час. Если Ρƒ вас 50 сСрвСров β€” Π½Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ. Когда ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ 16 000, Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

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

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСимущСства:

  • 100% ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ всСх Linux-машин.
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.
  • ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Освободили ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΈ сСтСвых ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΎΡ‚ рабства.
  • Появились возмоТности ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ практичСски Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹: Ρ…ΠΎΡ‚ΡŒ с Kubernetes, Ρ…ΠΎΡ‚ΡŒ с Ansible, Ρ…ΠΎΡ‚ΡŒ с Python.

ΠœΠΈΠ½ΡƒΡΡ‹: Consul, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠΈΡ‚ΡŒ, ΠΈ ΠΎΡ‡Π΅Π½ΡŒ высокая Ρ†Π΅Π½Π° ошибки. Как ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· я Π² 6 Π²Π΅Ρ‡Π΅Ρ€Π° (ΠΏΡ€Π°ΠΉΠΌ ΠΏΠΎ России) Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ» Π² списках сСтСй. ΠœΡ‹ ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚ΠΎΠ³Π΄Π° строили ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ Π½Π° BEFW. Π― Π³Π΄Π΅-Ρ‚ΠΎ ошибся, каТСтся, ΡƒΠΊΠ°Π·Π°Π» Π½Π΅ Ρ‚Ρƒ маску, Π½ΠΎ всС ΡƒΠΏΠ°Π»ΠΎ Π·Π° Π΄Π²Π΅ сСкунды. ЗагораСтся ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΏΡ€ΠΈΠ±Π΅Π³Π°Π΅Ρ‚ Π΄Π΅ΠΆΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ: Β«Π£ нас всС Π»Π΅ΠΆΠΈΡ‚!Β» ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊ Π΄Π΅ΠΏΠ°Ρ€Ρ‚Π°ΠΌΠ΅Π½Ρ‚Π° посСдСл, ΠΊΠΎΠ³Π΄Π° объяснял бизнСсу ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

Π¦Π΅Π½Π° ошибки Ρ‚Π°ΠΊ высока, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠΈ. Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ это Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π½Π° большом ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, Π½Π΅ Π½Π°Π΄ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ мастСр-Ρ‚ΠΎΠΊΠ΅Π½ Π½Π°Π΄ Consul всСм подряд. Π­Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎ закончится.

Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. Π― писал ΠΊΠΎΠ΄ 400 часов Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ. На ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ моя ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· 4 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ 10 часов Π² мСсяц Π½Π° всСх. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ†Π΅Π½ΠΎΠΉ любого Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния, это бСсплатно.

ΠŸΠ»Π°Π½Ρ‹. Долгосрочный ΠΏΠ»Π°Π½ β€” это поиск Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ транспорта Π²Π·Π°ΠΌΠ΅Π½ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Consul. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π±ΡƒΠ΄Π΅Ρ‚ Kafka ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. Но Π² блиТайшиС Π³ΠΎΠ΄Ρ‹ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΆΠΈΡ‚ΡŒ Π½Π° Consul.

Π‘Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΠ΅ ΠΏΠ»Π°Π½Ρ‹: интСграция с Fail2ban, с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ, с nftables, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ дистрибутивами, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, оптимизация. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Kubernetes Ρ‚ΠΎΠΆΠ΅ Π³Π΄Π΅-Ρ‚ΠΎ Π² ΠΏΠ»Π°Π½Π°Ρ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сСйчас Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько кластСров ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅.

Π•Ρ‰Π΅ ΠΈΠ· ΠΏΠ»Π°Π½ΠΎΠ²:

  • поиск Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ Π² Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ΅;
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ сСти;
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Kubernetes;
  • сборка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ всС систСмы;
  • Web-UI.

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ получился ΠΊΡ€ΡƒΡ‚Ρ‹ΠΌ, Π½ΠΎ, ΠΊ соТалСнию, это ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° GitHub ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ: Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ, Π΄Π°Ρ‚ΡŒ свою ΠΎΡ†Π΅Π½ΠΊΡƒ.

Π’Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ‹ готовимся ΠΊ Saint HighLoad++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ состоится 6 ΠΈ 7 апрСля Π² Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³Π΅, ΠΈ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² высоконагруТСнных систСм ΠΏΠΎΠ΄Π°Ρ‚ΡŒ заявку Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄. ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ спикСры ΠΈ Ρ‚Π°ΠΊ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π° Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Π² выступлСниях Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ хотя Π±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ. УчастиС Π² ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π² качСствС спикСра ΠΈΠΌΠ΅Π΅Ρ‚ ряд прСимущСств. ΠšΠ°ΠΊΠΈΡ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΠ½Ρ†Π΅ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

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