Хоёр загвар ижил урсгалыг ижил IPsec механизмаар хамгаалдаг бөгөөд аль пакет туннельд орохыг юу шийддэгээрээ ялгаатай. Бодлогод суурилсан холболтод хэлэлцээр хийсэн урсгалын сонгогчид тэр ажлыг хийдэг; маршрутад суурилсанд туннелийн интерфейс рүү заасан маршрут хийдэг. Хоёулыг хольсон үед туннель тогтсон гэж мэдээлдэг ч програмууд хаана ч хүрдэггүй танил дэмжлэгийн сэдэв үүсдэг. Энэ ялгаа нь сүлжээ нэмэх, маршрутжуулалтын протокол ажиллуулах эсвэл буруу гарцаар чимээгүй гарч буй замыг дибаг хийх үед хамгийн чухал.

Туннельд юу орохыг шийдэх хоёр арга

Бодлогод суурилсан VPN нь эх үүсвэр ба очих газрын префикст таарах аюулгүй байдлын бодлого бүтээж, дараа нь тохирох бүгдийг шифрлэдэг. Хамтрагч тохирох сонгогчдыг хэлэлцэх ёстой тул бодит хамрах хүрээ эцэстээ хоёр талын санал болгосны огтлолцол болдог. Тэр огтлолцолоос гадна юу ч хамгаалагдаагүй, маршрутжуулалтын хүснэгт юу гэсэн ч хамаагүй.

Маршрутад суурилсан VPN туннелийг төлөөлөх интерфейс үүсгэж маршрутжуулалтын хүснэгтэд урсгалыг тийш нь явуулахыг зөвшөөрдөг. IKE демон нь төлөв байдал болон интерфейс тус бүрийн бодлогыг суулгадаг хэвээр, маршрутууд шифрлэлтийг орлуулсан гэж шийдэх үед хүмүүсийн алгасдаг нарийн ширийн зүйл энэ юм. Хоёр загвар IPsec-ээр шифрлэдэг; зөвхөн сонголтын механизм өөр.

Доорх харьцуулалтыг онооны хүснэгт биш харин алдааны шинж тэмдгийн багц гэж уншина уу, учир нь аль ч багана дангаараа ялахгүй.

AspectPolicy-basedRoute-based
What selects trafficNegotiated selectorsA route into the tunnel interface
Adding a networkEdit selectors on both peersAdd a route, widen the selector once
Dynamic routingAwkward to run over the tunnelRuns over the interface directly
Typical failureTunnel up, host outside the selectorTunnel 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

Ажиллах хугацаанд туннелээс хамааралгүй удирдлагын зам баримтал. Гарцын өөрийн хандалт дибаг хийж буй холболтоор явахгүй бол буцаах нь илүү хялбар.

Холбоотой нийтлэлүүд