Сайттар арасындағы VPN-ге екінші қосалқы желіні қосу: екі жол
Саясатқа негізделген туннельдер екі жақта сәйкес селекторларды қажет етеді; маршрутқа негізделгендер маршрутты қажет етеді. Дұрыс жолды таңдап, алдымен қайтару маршрутын түзетіңіз.
Жұмыс істеп тұрған сайттар арасындағы туннельге екінші қосалқы желіні қосу бір жобада бес минут, екіншісінде бүкіл түстен кейінгі уақытты алады. Туннель атаған префикстерге маршруттар орнатса, маршрут қосып, трафик соған жүреді. Бір бекітілген селектор жұбы туралы келіссе, жаңа префикс екі жақ сәйкес жұпқа келіскенше қорғалмай қалады. Үш нәрсе шешеді: әр жақ конфигурациясы шын мәнінде нені сипаттайды, келісілген трафик ең кіші сәйкес жұпқа тарыла ма және жаңа диапазонның қайтару жолы кімдікі.
Күйдің белгісін емес, ядроны оқыңыз
Қосылған деп хабарлаған туннель кемінде бір еншілес ассоциация орнатқан, бірақ сіз ойлаған жұп емес болуы мүмкін. 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-quick орнына wg set қолдансаңыз міндетті. Ядро жаңа тізімді бірден қабылдайды, бірақ оған ешкім маршрут қоспайды, сондықтан жергілікті жасалған трафик әдепкі шлюз арқылы шыға береді. Жаңа WireGuard қосалқы желісінің туннель хостынан жұмыс істеп, ноутбуктен істемеуінің ең жиі себебі осы.
Қайтару жолы туннельден жиі істен шығады
Жаңа алыс қосалқы желідегі хосттар жауаптарды VPN шлюзі арқылы қайтаруы керек. Сол шлюз олардың әдепкі маршрутизаторы болмаса, жауап LAN маршрутизаторына кетеді, ол оны тастайды немесе жеке бастапқы адреспен интернетке жібереді. Шлюзден емес, алыс жақтағы хосттан сынаңыз: Linux-та ip route get 10.30.20.15 немесе PowerShell-да Find-NetRoute -RemoteIPAddress 10.30.20.15 хост шын мәнінде қолданатын келесі хопты көрсетеді. Жауап туннельдің соңғы нүктесі болмаса, сол жерде жаңа префикс үшін статикалық маршрут қосыңыз.
Қайтару маршруты жоқ сайтта бастапқы 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 style | Where the prefix goes | What breaks if you skip it |
|---|---|---|
| Policy-based IPsec | Selector pair on both peers | Old subnets work, the new one fails with no clear error |
| Route-based XFRM or VTI | Route into the device on both sites | Packets routed but not transformed, or the state never matches |
| WireGuard | AllowedIPs on both peers plus a route | Handshake succeeds, replies are dropped |
| Overlapping supernet | Adjust the existing entry instead | A shadowed policy wins or loses by evaluation order |
Тексеру — көптеген өзгерістер тым ерте жабылатын жер. Шлюзден ping аз дәлелдейді, өйткені шлюз өзінен шығады және хосттан басқа саясатқа жиі сәйкес келеді. Жаңа қосалқы желідегі хосттан ping жасаңыз, содан кейін өзгеріске себеп болған қолданбаны іске қосып, күй белгішесін емес, есептегіштерді қараңыз.
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 әр жақтың берілісін көрсетеді, ал нөл қабылданған байтпен қол алысу алыс жақтың тізіміне немесе оның қайтару маршрутына меңзейді.
Префиксті, жақтың селекторын немесе маршрутын, қайтару жолының шешімін және брандмауэр жазбасын туннельдің қалған тізілімімен бірге жазып бітіріңіз. Содан кейін бір шлюзді қайта жүктеп, қайта сынаңыз: қолмен қосылған маршрут жоғалады, ал келесі адам оны қайта ашуға тиіс емес.