Маршрутқа негізделген және саясатқа негізделген сайттар арасындағы VPN: айырмашылығы неде
Саясатқа негізделген IPsec трафикті селектормен таңдайды; маршрутқа негізделген оны туннель интерфейсі арқылы жібереді. Екеуіне де әлі файрвол ережелері мен қайтару маршруты қажет.
Екі жоба да бірдей трафикті бірдей IPsec механизмімен қорғайды және қай пакеттің туннельге кіретінін не шешетінімен ерекшеленеді. Саясатқа негізделген қосылымда бұл жұмысты келісілген трафик селекторлары атқарады; маршрутқа негізделген қосылымда туннель интерфейсіне сілтейтін маршрут атқарады. Екеуін шатастыру туннель өзін орнатылды деп хабарлайтын, ал қолданба ешнәрсеге жетпейтін таныс қолдау тақырыбын тудырады. Айырмашылық желі қосқанда, маршруттау протоколын іске қосқанда немесе дұрыс емес шығыстан үнсіз кететін жолды жөндегенде ерекше маңызды.
Туннельге не кіретінін шешудің екі жолы
Саясатқа негізделген VPN дереккөз бен тағайындалу префикстеріне сәйкес келетін қауіпсіздік саясатын құрады, содан кейін сәйкес келгеннің бәрін шифрлайды. Серіктес үйлесімді селекторларды келісуі керек, сондықтан тиімді ауқым екі тарап ұсынғанның қиылысы болып қалады. Сол қиылыстан тыс ешнәрсе қорғалмаған, маршруттау кестесі не десе де.
Маршрутқа негізделген VPN туннельді білдіретін интерфейс жасайды және маршруттау кестесіне трафикті соған жіберуге мүмкіндік береді. IKE демоны әлі де күйді және әр интерфейстің саясатын орнатады, және бұл маршруттар шифрлауды алмастырды деп шешкенде назардан тыс қалатын бөлшек. Екі жоба да IPsec-пен шифрлайды; тек таңдау механизмі өзгеше.
Төмендегі салыстыруды ұпай кестесі емес, ақау белгілерінің жиынтығы ретінде оқыңыз, өйткені ешбір баған өздігінен жеңбейді.
| Aspect | Policy-based | Route-based |
|---|---|---|
| What selects traffic | Negotiated selectors | A route into the tunnel interface |
| Adding a network | Edit selectors on both peers | Add a route, widen the selector once |
| Dynamic routing | Awkward to run over the tunnel | Runs over the interface directly |
| Typical failure | Tunnel up, host outside the selector | Tunnel up, no route or wrong source |
Саясатқа негізделген: селектор — шарт
Селекторлар келісіледі, жай ғана бапталмайды. Бір жақта 10.10.0.0/16, екінші жақта 10.10.1.0/24 ұсыныңыз, сонда бірлестік келіссөз тоқтаған нәрсені қамтиды, ал қалған барлық хост сыртта қалады.
Орнатылған күйді конфигурация файлының орнына оқыңыз. Linux серіктесінде ядроның өз кестелері негізгі шындық болып табылады және келіссөзден не аман қалғанын көрсетеді. Дұрыс префикстерді атап, бірақ сәйкес күйі жоқ саясат бірлестіктің ешқашан көтерілмегенін білдіреді. Қате префикс үшін саясатпен жұпталған күй — қарама-қарсы мәселе және ол сау көрінетін туннельді тудырады, ал бір ішкі желі ешнәрсеге жете алмайды.
sudo ip xfrm state
sudo ip xfrm policy
sudo swanctl --list-sas
Екі шығысты да қорғап отырған деп ойлайтын префикстеріңізбен салыстырыңыз. Сол бір салыстыру жұмыс істеп тұрған туннель мен қолжетімсіз сервер туралы хабарламалардың көбін шешеді. Ол сондай-ақ қай серіктесті өзгерту керектігін көрсетеді, өйткені сәйкессіздік әдетте тек бір бағытта көрінеді.
Маршрутқа негізделген: интерфейс — шарт
XFRM интерфейсі туннельге ат пен сәйкестік береді, ал трафик оған маршруттау кестесі солай дейтіндіктен жетеді. Бірнеше алыс префикс содан кейін селектор мәселесі емес, маршруттау мәселесіне айналады және маршруттау протоколы оларды жариялай алады. Бұл нақты пайда, шифрлау емес.
Интерфейс саясат қажеттілігін жоймайды. Демон интерфейс сәйкестігіне байланған ережелерді әр интерфейс үшін орнатады, сондықтан қате интерфейске келген пакет бәрібір сәтсіз аяқталады. Серіктес қабылдамайтын дереккөз мекенжайы да, тіпті мінсіз маршрутпен де сәтсіз аяқталады. Маршрутқа негізделген дегеніміз кіруді маршрут шешеді деген сөз, саясат жойылды деген емес.
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip route add 10.20.0.0/16 dev xfrm0
ip -s link show xfrm0
ip route get 10.20.5.10
Маршрут орнына келген соң интерфейс санауыштарын бақылаңыз. Маршрут бар, бірақ санауыштар нөлде тұрса, туннельге ешнәрсе сәйкестендірілмейді, бұл әдетте жоқ маршрутты емес, жоқ күйді көрсетеді.
Екі жоба шын мәнінде қай жерде ажырайды
Желі қосу — қай модель сізге сәйкес екенін тексерудің ең таза жолы. Маршрутқа негізделген жоба бір маршрут қосады және селекторды ең көбі бір рет кеңейтеді, ал саясатқа негізделген жоба екі серіктестегі префикс жұптарын өңдеп, қайта келіседі. Екі тұрақты ішкі желі бұл өңдеуді тривиалды етеді, жиырмасы оны жобаға айналдырады.
Ешбір модель файрволды алмастырмайды, және салыстырулар әдетте осы нүктеге дейін тоқтайды. Кең селектор немесе кең маршрут ненің шифрланатынын шешеді, ненің рұқсат етілгенін емес.
MTU мінез-құлқы да практикада өзгеше. Инкапсуляция пайдалы жүктемені азайтады, ал маршрутқа негізделген интерфейс өз MTU-ын алып жүреді, сондықтан екі қақпада да MSS-ті қысу кішкентай жауаптар келіп, үлкендері жоғалатын қара құрдым симптомын болдырмайды. Саясатқа негізделген туннельдер сол қабырғаға екінші жақтан тап болады, өйткені селектор пакет өлшемі туралы ештеңе айтпайды. Қысуды серіктесті кінәлаудың орнына әдейі орнатыңыз.
Қайтару жолын жоғалтпай көшу
Бірдеңені өзгертудің алдында бар префикс жұптарын жазып алыңыз, содан кейін бір қолданба жолын жылжытып, оны басынан аяғына дейін бақылаңыз. Орнатылған туннель — жіберетін туннель емес, және айырмашылық жауап бағытында көрінеді.
Серіктестер қосылғанда, бірақ LAN хосттары қосыла алмаса, қайтару маршрутын және алыс хост қолданатын дереккөз мекенжайын тексеріңіз. Екі интерфейсті хост қате интерфейстен жауап беруі мүмкін, және ешбір селектор өзгерісі оны түзетпейді. Алгоритмдерді өңдеудің алдында екі ұшынан да трафикті ұстаңыз.
ip route get 10.20.5.10
sudo tcpdump -ni any host 10.20.5.10 and icmp
sudo swanctl --list-conns
Жұмыс кезінде туннельге тәуелді емес басқару жолын ұстаңыз. Қақпаның өз қатынасы жөндеп жатқан қосылыммен жүрмесе, кері қайтару оңайырақ.