Додавање друге подмреже у тунел између локација који ради траје пет минута у једном дизајну и скоро цело поподне у другом. Када тунел инсталира руте за префиксе које наведете, додате руту и саобраћај је прати. Када преговара један фиксни пар селектора, нови префикс остаје незаштићен док се обе стране не договоре о одговарајућем пару. Три ствари одлучују: шта конфигурација сваке стране заиста описује, да ли се преговарани саобраћај сужава на најмањи одговарајући пар и коме припада повратни пут за нови опсег.

Читајте кернел, не ознаку стања

Тунел који пријављује везу инсталирао је барем једну подређену асоцијацију, али не нужно ону коју мислите. На Linux-у кернел показује шта се примењује: ip xfrm policy наводи парове селектора, а swanctl --list-sas (или старији ipsec statusall) показује шта су стране преговарале, укључујући селекторе саобраћаја у сваком смеру. Ако нови префикс није ни у једном, незаштићен је, шта год каже конфигурациона датотека.

Упоредите са табелом рута. У поставци заснованој на рути тунелски уређај је следећи скок за заштићене префиксе. Поставка заснована на политици често нема посебну руту за удаљену подмрежу, само подразумевану руту, јер саобраћај бира политика, а не табела.

Засновано на политици: обе стране морају навести нови префикс

У терминима strongSwan селектор живи у local_ts и remote_ts унутар подређене конфигурације, наследницима leftsubnet и rightsubnet. Нови префикс мора да се појави на обе стране огледалски: што локација A зове локалним, локација B зове удаљеним. Несклад ретко даје чисту грешку. Стране се сужавају на пресек, стари префикс наставља да ради, а нови тихо пада.

swanctl --load-conns
swanctl --initiate --child <child-name>
swanctl --list-sas
ip xfrm policy

На pfSense или OPNsense то значи други унос Phase 2 који спаја нову локалну подмрежу са новом удаљеном, а затим примену. Задржите стари унос; замена премешта изворну подмрежу уместо да је дода. Ако постојећи Phase 2 већ покрива супермрежу као 0.0.0.0/0 или сажети опсег, не додајте ужи унос поред њега: селектори који се преклапају инсталирају супротстављене политике, а редослед процене одлучује победника.

IKEv1 чини сваки пар подмрежа сопственим Phase 2, а страна која узима један пар по размени одбацује остале. IKEv2 може носити неколико парова селектора у једној подређеној асоцијацији, али само ако их обе имплементације прихвате. Листа из swanctl --list-sas је истина; оно што сте откуцали је захтев.

Засновано на рути: рута је политика

XFRM интерфејс или VTI уређај носи саобраћај према табели рута. Усмерите нови префикс на уређај на обе локације и примењује се стање везано за трансформацију интерфејса. Нема пара селектора за синхронизацију, зато се овај дизајн боље скалира како се подмреже множе. strongSwan водич за прослеђивање детаљније обрађује страну кернела.

ip route add 192.168.60.0/24 dev xfrm0
ip route get 192.168.60.10

WireGuard иде даље. AllowedIPs је истовремено крипто листа дозвола и, преко wg-quick, унос у табели рута. Додајте префикс само на једној страни и добијате руковање, одлазне пакете и тишину, јер удаљена страна одбацује пакете чији извор није на њеној листи. Облик wg set замењује целу листу, зато поновите префиксе који су већ радили или ћете их одсећи:

wg set wg0 peer <PUBKEY> allowed-ips 192.168.10.0/24,192.168.60.0/24
ip route add 192.168.60.0/24 dev wg0

Та друга команда није опциона када сте користили wg set уместо wg-quick. Кернел одмах прихвата нову листу, али ништа јој не додаје руту, па локально створен саобраћај и даље излази кроз подразумевани гејтвеј. То је најчешћи разлог зашто нова WireGuard подмрежа ради са тунелског хоста, а не са лаптопа.

Повратни пут пада чешће од тунела

Хостови на новој удаљеној подмрежи морају да шаљу одговоре назад кроз VPN гејтвеј. Када тај гејтвеј није њихов подразумевани рутер, одговор иде на LAN рутер, који га одбацује или прослеђује на интернет са приватном изворном адресом. Тестирајте са хоста на удаљеној страни, не са гејтвеја: ip route get 10.30.20.15 на Linux-у или Find-NetRoute -RemoteIPAddress 10.30.20.15 у PowerShell-у показује следећи скок који хост заиста користи. Ако одговор није крајња тачка тунела, додајте тамо статичну руту за нови префикс.

Изворни NAT на локацији којој недостаје повратна рута је легитимна алтернатива и начин на који многа hub-and-spoke постављања избегавају да дирају сваки сервер. Примените га и на нови префикс на гејтвеју на страни одредишта:

iptables -t nat -A POSTROUTING -s 10.30.20.0/24 -d 192.168.60.0/24 -j MASQUERADE

Цена је стварна. Удаљени дневници престају да приказују појединачне изворне адресе, а правила заштитног зида везана за изворну подмрежу стапају се у једно правило за гејтвеј. Изаберите то намерно, не зато што је рута недостајала.

Заштитни зидови су друга половина повратног пута. Уређаји засновани на зонама не шире зону постојећег тунелског интерфејса на нову подмрежу аутоматски, а правило написано за стари префикс неће се поклопити. Додајте нову подмрежу у зону или у пар правила у оба смера пре него што оптужите IPsec.

Одлучите са три питања, па проверите саобраћајем

Кратка верзија: наводи ли конфигурација стране префиксе (засновано на политици) или се саобраћај рутира у интерфејс (засновано на рути)? Наводе ли оба краја нови префикс? Постоји ли пут назад од нове подмреже до изворног опсега?

Tunnel styleWhere the prefix goesWhat breaks if you skip it
Policy-based IPsecSelector pair on both peersOld subnets work, the new one fails with no clear error
Route-based XFRM or VTIRoute into the device on both sitesPackets routed but not transformed, or the state never matches
WireGuardAllowedIPs on both peers plus a routeHandshake succeeds, replies are dropped
Overlapping supernetAdjust the existing entry insteadA shadowed policy wins or loses by evaluation order

Провера је место где се већина промена затвара прерано. Пинг са гејтвеја доказује мало, јер гејтвеј шаље са себе и често се поклапа са другим правилом него хост. Пингујте са хоста на новој подмрежи, затим покрените апликацију која је изазвала промену и гледајте бројаче, не икону стања.

tcpdump -ni any host 192.168.60.10 and (esp or udp port 4500)
ip xfrm state
wg show

На тунелу заснованом на политици бројачи ip xfrm state треба да расту у оба смера; равни бројачи значе да је пакет рутиран, али није изабран. На WireGuard-у wg show приказује пренос по страни, а руковање са нула примљених бајтова указује на листу удаљене стране или њену повратну руту.

Завршите уписивањем префикса, селектора или руте стране, одлуке о повратном путу и уноса у заштитни зид заједно са остатком инвентара тунела. Затим рестартујте један гејтвеј и тестирајте поново: рута додата ручно нестаје и следећа особа не би требало то поново да открива.

Повезани чланци