Два peer пералічваюць дыяпазоны, якія сутыкаюцца, і трафік трапляе не да таго. Нічога не пашкоджана: WireGuard выбірае peer, супастаўляючы прызначэнне з наладжанымі дыяпазонамі, і перамагае самае дакладнае супадзенне. Перш чым нешта пашыраць, вырашыце, які peer павінен валодаць якім прэфіксам.

Найдаўжэйшы прэфікс перамагае ў WireGuard

Кожны запіс peer нясе набор прэфіксаў прызначэння. Калі пакет накіроўваецца ў інтэрфейс, рэалізацыя шукае запіс з самым дакладным адпаведным прэфіксам — тое ж правіла, што прымяняе табліца маршрутызацыі. Таму /24 перамагае /16, які яго змяшчае, і больш вузкі peer атрымлівае трафік.

Налады road-warrior выкарыстоўваюць гэта наўмысна. Адзін peer валодае шырокім дыяпазонам для пляцоўкі, а асобныя хасты выдзяляюцца запісамі /32, што належаць іншым peer. Схема працуе таму, што выдзеленыя часткі больш дакладныя, а не таму, што парадак правільны.

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

Аперацыйная сістэма спачатку выбірае інтэрфейс

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

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

Уваходныя пакеты правяраюцца па крыніцы

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

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

Вузкае валоданне крыніцай ператварае гэта ў перавагу. Дайце кожнаму peer /32 для яго ўласнага адраса, і файрвол ніжэй атрымае надзейную крыніцу для супастаўлення, а не агульны для групы дыяпазон, на які мог бы прэтэндаваць любы ўдзельнік.

Дублікаты дыяпазонаў — не адмоваўстойлівасць

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

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

Праверце выбар перад праўкай

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

wg show wg0 allowed-ips
ip route get 10.66.8.20
wg show wg0
ip rule show

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

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

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