Два 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 за неговата сопствена адреса и огнениот ѕид подолу ќе има доверлив извор за совпаѓање, наместо опсег на ниво на група што секој член би можел да го бара.

Дупликатите опсези не се failover

Доделувањето на истиот префикс на два 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. Токму таа тројка го прави преклопувањето разгледувано подоцна и е далеку покорисна од екранска слика на конфигурацијата.

Поврзани статии