WireGuard AllowedIPs: рутата што NetworkManager никогаш не ја додаде
Валидна WireGuard конфигурација може да го заврши ракувањето и сепак да не испрати ништо. Споредете ја табелата на јадрото со AllowedIPs, потоа дајте ѝ еден сопственик на патеката на рутата.
Бројачот на ракување се освежува, интерфејсот ја задржува својата адреса, а ping кон другата страна не стигнува никаде. Оваа комбинација ги збунува луѓето, бидејќи работечкото ракување изгледа како доказ дека тунелот е подготвен. Но не е: тунелот може да биде целосно договорен и сепак да нема ниту една рута што насочува сообраќај во него, а тоа се две одделни работи што ги извршуваат два одделни делови од состојбата. Поправката целосно зависи од тоа кое од двете недостасува, затоа првиот чекор е да се открие тоа.
wg-quick ги извршува двете без да биде прашан. Вградената поддршка за WireGuard во NetworkManager исто така стандардно инсталира peer рути, што ги стеснува сомнителните на оневозможена опција, друга табела за рутирање или конфигурација увезена преку нешто друго.
Потврдете го тунелот пред да ја бркате рутата
wg show ја печати интерфејсот, peer-от, крајната точка и возраста на последното ракување, а ip addr show потврдува дека адресата е присутна. Неодамнешно ракување значи дека клучевите, крајната точка и UDP патеката работат. Сето расипано седи низводно од нив: рутирање, филтрирање или разрешување имиња.
Потоа прашајте го јадрото што би направило со вистинска дестинација наместо хипотетичка: ip route get 10.42.7.9. Одговорот ја именува излезната интерфејс и изворната адреса што пакетот би ја носел. Кога го именува физичкиот адаптер, пакетот никогаш не влегува во тунелот, колку и да изгледа здраво ракувањето.
AllowedIPs е филтер и список на рути
Префиксите во AllowedIPs извршуваат две работи. Тие избираат кој peer носи излезна дестинација и ја проверуваат изворната адреса на дојдовните пакети, што е границата на криптоклучното рутирање. Во wg-quick тие исто така управуваат со автоматска инсталација на рути, и токму тоа дополнително однесување е причината зошто истата конфигурација работи од терминал, а не од десктоп клиент.
Во случајот зад оваа статија, профилот беше увезен преку додаток од трета страна, а не преку вградената поддршка, и интерфејсот се појави без префиксната рута. Наведувањето на табелата тоа го покажува веднаш: ip route show содржи само поврзаната рута за адресата на интерфејсот и ништо за далечниот опсег.
Прашајте дали peer рутите воопшто се овозможени
Прочитајте го поставувањето пред да смените нешто: nmcli -f wireguard.peer-routes,ipv4.route-table connection show work-wg. Кога peer-routes покажува no, поддржаната поправка е nmcli connection modify work-wg wireguard.peer-routes yes, по што следи повторно поврзување. Додавањето статична рута наместо тоа работи до следното активирање и потоа тивко исчезнува. Тоа исчезнување е знакот: рутата што секое утро се враќа како мистерија не ја инсталира профилот.
Ако опцијата е веќе овозможена, проверете дали префиксот живее во друга табела со ip route show table all | grep 10. Рута во табела што не е главната не недостасува, таа едноставно е невидлива за пребарување што ја гледа само главната табела. Поправете го политичкото рутирање наместо да натрупувате дупликат запис врз него.
Додајте го префиксот на врската, не на системот што работи
Во уредувачот на врски, страницата WireGuard ги држи peer-от и неговите AllowedIPs, а страницата IPv4 држи дополнителни рути. Рутата додадена таму преживува повторни поврзувања бидејќи ѝ припаѓа на конфигурацијата. На командната линија еквивалентот е да додадете рута на врската во формата со празна порта, потоа да ја спуштите и подигнете врската за да се примени промената.
Изберете го најтесниот префикс што ги покрива потребните домаќини. Копирањето на примерот /8 од давателот може да проголта локални опсези што случајно се наоѓаат внатре, а настанатите дефекти изгледаат како расипан тунел, а не како премногу широка рута.
Разделеното тунелирање го одлучува списокот на префикси
Нема прекинувач за разделен тунел; списокот на префикси е одлуката. Peer со еден опсег за канцеларискиот LAN и еден за лабораториска мрежа ги испраќа точно тие дестинации низ тунелот и сето друго го остава на мира. Еден домаќин бара /32, а опсезите што се преклопуваат на две локации бараат префикси на домаќини додека некој не ја пренумерира подмрежата.
Изборот да не се испрати ништо низ тунелот ја води истата одлука до нејзината граница: минимален список ја држи врската подигната, додека обичниот сообраќај го следи својот вообичаен пат. Запишете ја намерата, зашто инаку следниот читател краткиот список ќе го смета за пропуст и услужливо ќе го прошири.
Еден сопственик за табелата со рути
wg-quick и NetworkManager и двата сметаат дека ги поседуваат рутите на интерфејсот. Увезете конфигурација напишана за wg-quick и потоа вклучете ја и услугата wg-quick, и ќе добиете дуплирани или спротивставени записи чие однесување зависи од тоа која работеше последна. Изберете еден сопственик и отстранете го другиот: ако NetworkManager ја управува врската, оневозможете ја единицата wg-quick за тој интерфејс и никогаш не додавајте втор профил за истиот уред.
Кога поделбата мора да следи физички адаптер наместо дестинација, преминавте на политичко рутирање, а политичкото рутирање исто така бара еден автор. Потврдете со повторување на ip route get, потоа со достигнување домаќин внатре во далечниот префикс со нешто што ја печати избраната изворна адреса. Проверете IPv6 и DNS одделно ако профилот носи било кое од двете.