Сайт адкрываецца з ноўтбука ў той жа сетцы і сканчаецца тайм-аўтам з усіх іншых месцаў, а хост яшчэ і запускае кліент VPN для свайго зыходнага трафіку. Такая камбінацыя дае канкрэтную паломку: уваходнае злучэнне прыходзіць, адказ сыходзіць няправільным шляхам, і кліент звонку ніколі не бачыць адказу. Абедзве паловы бачныя ў адным перахопе пакетаў, таму парадак падзей — гэта тое, што варта прачытаць.

Правіла маршрутызацыі на аснове крыніцы часта выпраўляе сімптом. Яно таксама звычайна вызваляе больш трафіку, чым сайт, які яго выклікаў, і менавіта гэта варта зразумець, перш чым захоўваць правіла.

Сімптом: адказвае лакальна, але не звонку

Унутры сеткі адказу не трэба перасякаць тунель, таму старонка адкрываецца і служба выглядае здаровай. Звонку запыт дасягае хоста, а адказ накіроўваецца ў VPN, дзе ў далёкага канца няма прычыны яго прымаць. Браўзер бачыць тайм-аўт, а не адмову, і гэта прыкмета аднабаковага шляху, а не закрытага порта.

Пацвердзіце форму, перш чым змяняць маршрутызацыю: слухач працуе, лакальны запыт паспяховы, а знешні запыт не дае ніякага адказу. Гэтыя тры назіранні разам паказваюць на зваротны шлях, а не на канфігурацыю вэб-сервера. Такая чыстая асіметрыя карыснейшая за любы радок журнала, бо яна выключае слухач яшчэ да таго, як вы прачытаеце хоць адно паведамленне пра памылку.

Трымайце адкрытым незалежны шлях адміністравання, пакуль працуеце. Правіла, якое ламае вашу ўласную сесію SSH, ператварае выпраўленне на дзесяць хвілін у фізічны візіт.

Што насамрэч супастаўляе селектар крыніцы

У палітычнай маршрутызацыі Linux правіла накшталт from 192.168.50.2 супастаўляе пакеты, крыніца якіх — гэты адрас. Яно не кадуе той факт, што пакет працягвае размову, якая ўвайшла праз хатні роўтар, і не ведае, які працэс яго стварыў. Адрас у гэтым прыкладзе ілюстрацыйны; заменіце яго на адрас, які ваш хост насамрэч выкарыстоўвае. Разглядайце радок як сцвярджэнне пра адрасы і нічога больш.

Калі выбраная табліца дае звычайны маршрут па змаўчанні, кожны пакет з гэтай крыніцай можа скарыстацца тым самым выключэннем. Іншая служба, прывязаная да таго ж адраса, атрымлівае яго ў спадчыну, і праграма, якая свядома прывязваецца да гэтага адраса, таксама атрымлівае яго ў спадчыну. Даведнік па правілах палітыкі пералічвае крыніцу, прызначэнне, пратакол, порт, метку і прыярытэт як асобныя селектары, што нагадвае: адна крыніца — самы грубы з даступных.

Прыярытэт вырашае вынік. Пошукі ідуць па парадку, і першая табліца, якая дае вынік, можа спыніць пошук, таму правіла, размешчанае занадта рана, можа схаваць больш канкрэтны маршрут, які падала б пазнейшая табліца. Чытайце ўвесь упарадкаваны спіс, а не адзін радок, які вы дадалі. Правіла, якое ніколі не супадае, нічога не каштуе, а тое, што супадае занадта рана, моўчкі змяняе ўсё за сабой.

Праверце зваротны шлях і трафік, які вы не мелі на ўвазе

Прачытайце правілы і табліцы, затым спытайце ў ядра, які маршрут выбера канкрэтная пара крыніцы і прызначэння. Тэставанне з самога хоста не тое самае, што тэставанне звонку, таму зрабіце і тое, і тое.

ip rule show
ip route show table 100
ip route get 203.0.113.44 from 192.168.50.2
ss -ltnp '( sport = :443 )'

Затым прымеце новае знешняе злучэнне і асобна запыт, які ўсё яшчэ павінен выйсці праз VPN. Калі другі цяпер выходзіць напрамую, выключэнне шырэйшае за праблему, якую вы вырашалі, і важны тэст — гэта той, які вы не мелі намеру змяняць.

Праверка публічнага адраса ў браўзеры паведамляе толькі пра запыты, зробленыя гэтым браўзерам. Яна нічога не кажа пра адказы вэб-сервера, пра выбар крыніцы іншай лакальнай праграмай або пра тое, што адбываецца з кіраўнічым трафікам пасля наступнага перападключэння VPN.

Вызначце, наколькі вузкім можа быць выключэнне

Ёсць два абараняльныя праекты, і іх трэба выбіраць свядома. Калі хост існуе, каб публікаваць гэтую службу, а яго зыходны трафік неістотны, выдзелены лакальны адрас з палітыкай толькі для WAN — разумная дамоўленасць, пры ўмове, што вы прымаеце ўвесь абсяг. Калі кваліфікавацца павінны толькі пэўныя ўваходныя злучэнні, выбар адраса занадта грубы, і перад ім павінен стаяць праект, які ўлічвае злучэнні.

Запішыце кантракт, на які вы абапіраецеся: публічнае адлюстраванне, адрас хоста, на які дастаўляецца запыт, і шлях, які павінен прайсці адказ. Уваходная служба, апублікаваная праз правайдэра VPN, — гэта іншы кантракт, чым служба, апублікаваная праз хатні роўтар, і выключэнне, скапіяванае з аднаго прыкладу, часта няправільнае для другога.

Захоўвайце палітыку ў кампаненце, які валодае маршрутызацыяй, а не ўстаўляйце каманду ў файл запуску. Парадак правілаў, прыборка пасля змены сеткі і паўтор пасля перазагрузкі — усё гэта мусіць перажыць, а няправераны файл запуску звычайна падводзіць у момант, калі вы не глядзіце. Скончыце вынікам прыёмкі, які можаце абараніць: адзін апублікаваны сайт адноўлены, і адзін незвязаны паток не зменены.

Падобныя артыкулы