Маршрутка негизделген жана саясатка негизделген сайттар аралык 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
Иштеп жатканда туннелге көз каранды эмес башкаруу жолун сактаңыз. Дарбазанын өз жеткиликтүүлүгү оңдоп жаткан байланыш аркылуу жүрбөсө, артка кайтаруу жеңил.