Филтри на маяка Nebula срещу защитна стена: какво блокира всяка
Списъците за разрешаване на маяка избират кои крайни точки в подлежащата мрежа партньорът обявява или опитва. Правилата на защитната стена управляват трафика в overlay мрежата след ръкостискането.
Погледнете ръкостискането на Nebula от грешната страна и двата механизма изглеждат взаимозаменяеми. Единият решава кои адреси възелът съобщава на маяка и кои отдалечени адреси ще опита; другият решава какво може да премине, след като тунелът съществува. Филтърът може да спре връзка, преди да бъде оценено каквото и да е правило на защитната стена, а правило на защитната стена не може да съживи крайна точка, която откриването е премахнало. Двата слоя отговарят на различни въпроси и редът, в който действат, е ключът.
Проследете една връзка през четири етапа: обявения локален адрес, разглежданата отдалечена крайна точка, ръкостискането и трафика в overlay мрежата. Всеки етап има своя конфигурация и свой отпечатък при отказ.
Започнете от локалния адрес, който възелът обявява
local_allow_list филтрира локалните адреси на този хост, преди те да бъдат съобщени на маяците. Записите могат да бъдат диапазони от адреси, а конфигурацията поддържа и шаблони за имена на интерфейси. Това е полезно, когато хостът има контейнерни мостове или допълнителни тунелни интерфейси, които не бива да стават крайни точки за партньори.
Разгледайте интерфейсите на хоста и попитайте до кои от тях отдалечен партньор наистина може да достигне. Адресът на мост на Docker е локален за този хост и безполезен за партньор в друга мрежа. Обявяването му прахосва откриването и може да насочи партньор към адрес, който никога не отговаря. Всичко, до което партньорът не може да маршрутизира, е шум в отговора на маяка.
Тук тесен списък за разрешаване е по-безопасен от широк списък за забрана. Ако присъстват само записи за разрешаване, неопределеният остатък се изключва; добавянето на запис за забрана по-късно променя логиката по подразбиране и изисква отделен преглед. Тази промяна заслужава втори поглед към стойността по подразбиране.
След това наблюдавайте избора на отдалечена крайна точка
remote_allow_list филтрира адресите, които този хост ще разгледа за отдалечен партньор по време на ръкостискане. Прилага се за адреса в подлежащата мрежа, а не за overlay адреса, който партньорът ще използва, след като тунелът е установен.
Частен диапазон може да е напълно използваем в споделена офис мрежа и безсмислен, когато двата хоста се намират в несвързани мрежи, които и двете използват 10.0.0.0/8. Филтърът ви позволява да предпочетете маршрутизируемия път и да пренебрегнете съвпадението.
Когато партньор не успее да се свърже, сравнете адреса, който се опитва, с правилото, което му съответства. Включете журналите за ръкостискане и прочетете избрания отдалечен адрес; редът в журнала посочва крайната точка, преживяла филтрирането, което е по-полезно от списъка с адреси, които партньорът притежава.
Филтър за имена на интерфейси от страната на обявяването може да премахне крайната точка, преди приемащата страна изобщо да я види. Проверете и двата възела, когато се проваля само една посока.
След ръкостискането важат правилата за достъп в overlay мрежата
Правилата на защитната стена на Nebula работят вътре в overlay мрежата, след като тунелът е установен. Те съпоставят хостове, групи, портове и протоколи и решават дали пакет може да влезе в локалния хост или да го напусне. Те не избират крайна точка в подлежащата мрежа.
Това разделение обяснява честа погрешна диагноза. Оператор добавя правило на защитната стена за порт и все още не може да се свърже, защото филтърът на маяка е премахнал единствената достъпна крайна точка. Друг оператор отваря филтъра за адреси и все още не достига услугата, защото защитната стена на overlay мрежата отхвърля порта.
Четете отказа на правилния слой. Ръкостискане, което никога не завършва, сочи към откриването, филтрирането на крайни точки или мрежовия път. Завършено ръкостискане, последвано от отказана или изпусната връзка към услуга, сочи към защитната стена на overlay мрежата или към приложението.
Четете стойността по подразбиране при смесване на разрешаване и забрана
Конфигурацията на маяка поддържа списъци само за разрешаване, само за забрана и смесени, а стойността по подразбиране за неопределения остатък се различава между тези форми. Смесеният списък изисква изрична стойност по подразбиране за семейството адреси; допускането, че остатъкът се държи като предишната конфигурация, е начинът, по който работеща крайна точка тихо изчезва.
lighthouse:
local_allow_list:
interfaces:
docker0: false
remote_allow_list:
192.168.0.0/16: true
default: false
Отнасяйте се към стойността по подразбиране като към част от правилото, а не като към шаблонен текст. Ако стойността по подразбиране за семейството е забрана, всеки адрес, който не е изброен, се изключва, включително нов офис диапазон, добавен след написването на конфигурацията.
Запишете кои адреси е трябвало да бъдат достъпни и тествайте от двете страни. Филтър, който работи за една двойка партньори, може да се провали за друга двойка, чийто единствен общ път използва адрес, който списъкът изключва.
Използвайте релей, когато няма достъпна директна крайна точка
Ако всяка кандидат крайна точка е филтрирана или недостъпна, отговорът не е по-широк списък за разрешаване, който отново допуска адреси, на които не се доверявате. Конфигурацията за релей на Nebula предоставя алтернативен път за партньора, когато директната свързаност не е осъществима.
Релеят решава транспорта и откриването, не оторизацията, и не разширява защитната стена. Защитната стена на overlay мрежата все още решава кои услуги могат да се използват, а релеят не превръща филтрирането на маяка в механизъм за контрол на достъпа.
Тествайте пътя през релей с изключени директни крайни точки и потвърдете, че желаната услуга все още работи, а нежелана — не. Този единствен тест отделя транспортна поправка от промяна в политиката и поддържа двата слоя честни.