Сайт хоорондын VPN-д хоёр дахь дэд сүлжээ нэмэх: хоёр зам
Бодлогод суурилсан туннель хоёр талдаа тохирох сонгогч шаарддаг; маршрутад суурилсан нь маршрут шаарддаг. Зөв замыг сонгоод эхлээд буцах маршрутыг засаарай.
Ажиллаж буй сайт хоорондын туннельд хоёр дахь дэд сүлжээ нэмэх нь нэг загварт таван минут, нөгөөд нь бараг бүтэн үдээс хойш зарцуулдаг. Туннель таны нэрлэсэн угтварт маршрут суулгавал та маршрут нэмэхэд урсгал түүнийг дагана. Нэг тогтмол сонгогч хосын тухай хэлэлцэхэд, хоёр тал тохирох хос дээр санал нийлэх хүртэл шинэ угтвар хамгаалалтгүй үлддэг. Гурван зүйл шийднэ: тал бүрийн тохиргоо үнэхээр юуг дүрсэлж байгаа, хэлэлцсэн урсгал хамгийн бага тохирох хос хүртэл нарийсаж байгаа эсэх, шинэ мужын буцах замыг хэн эзэмших.
Төлөвийн шошгыг биш, цөмийг уншаарай
Холбогдсон гэж мэдээлсэн туннель дор хаяж нэг охин холбоо суулгасан боловч таны бодож байгаа нь байх албагүй. Linux дээр цөм юу хэрэгжиж байгааг харуулна: ip xfrm policy сонгогч хосуудыг жагсааж, swanctl --list-sas (эсвэл хуучин ipsec statusall) талууд юу хэлэлцсэнийг чиглэл бүрийн урсгалын сонгогчийн хамт харуулна. Шинэ угтвар аль алинд нь байхгүй бол тохиргооны файл юу ч гэсэн хамгаалалтгүй.
Үүнийг маршрутын хүснэгттэй харьцуулаарай. Маршрутад суурилсан зохион байгуулалтад туннелийн төхөөрөмж нь хамгаалагдсан угтварын дараагийн алхам. Бодлогод суурилсан зохион байгуулалтад алслагдсан дэд сүлжээнд тусдаа маршрут ихэвчлэн байхгүй, зөвхөн өгөгдмөл маршрут байдаг, учир нь урсгалыг хүснэгт биш бодлого сонгодог.
Бодлогод суурилсан: хоёр тал шинэ угтварыг жагсаах ёстой
strongSwan нэр томьёонд сонгогч охин тохиргооны local_ts ба remote_ts дотор, leftsubnet ба rightsubnet-ийн залгамжлагчид байрлана. Шинэ угтвар хоёр талд толин тусгал мэт харагдах ёстой: А сайт локал гэж нэрлэснийг Б сайт алслагдсан гэж нэрлэнэ. Зөрүү цэвэр алдаа ховор өгдөг. Талууд огтлолцол хүртэл нарийсаж, хуучин угтвар ажилласаар, зөвхөн шинэ нь чимээгүй бүтэлгүйтнэ.
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 тал бүрийн дамжуулалтыг мэдээлдэг бөгөөд тэг хүлээн авсан байттай гар барилт нь алслагдсан талын жагсаалт эсвэл түүний буцах маршрут руу заана.
Угтвар, талын сонгогч эсвэл маршрут, буцах замын шийдвэр, галт ханын бичлэгийг туннелийн үлдсэн бүртгэлтэй хамт тэмдэглэж дуусга. Дараа нь нэг гарцыг дахин ачаалж дахин турш: гараар нэмсэн маршрут алга болж, дараагийн хүн үүнийг дахин нээх шаардлагагүй.