Azure Point-to-Site VPN яагаад таны нийтийн IP-г өөрчлөхгүй вэ
Point-to-site туннель нь зөвхөн виртуал сүлжээний маршрутуудыг зөөдөг тул албадан туннель болон firewall-ийн SNAT гарцыг Azure руу шилжүүлэх хүртэл таны нийтийн IP локал хэвээр байна.
Би Windows зөөврийн компьютер дээр Azure VPN клиентийг холбож, хаягийн цуурай хуудсыг нээж, гэрийн чиглүүлэгчийн өгсөнтэй ижил нийтийн хаягийг харж байна. Энэ хооронд 10.20.0.4 дээрх jump box хариулж, хувийн endpoint-ийн нэр шийдэгдэж байгаа тул туннель эвдэрээгүй. Point-to-site гарц нь анхдагч тохиргоондоо хэлсэнчлэн яг ажиллаж байна: хувийн префиксүүдийг зөөж, бусад бүгдийг локал холбоос дээр үлдээнэ. Azure-д хамаарах гарцын хаяг авах нь чиглүүлэлтийн дизайны өөрчлөлт, засвар биш.
Гарц анхдагчаар юу зарладаг
Гарц нь виртуал сүлжээний хаягийн орон зайд зориулсан маршрутуудыг, мөн гарцын дамжуулалт зөвшөөрөгдсөн хос сүлжээнүүд болон site-to-site холболт эсвэл BGP-ээр сурсан локал префиксүүдийг түлхдэг. Тэр багцад 0.0.0.0/0 байхгүй. Таны үйлдлийн систем анхдагч маршрутаа Wi-Fi эсвэл Ethernet дээр хадгалдаг тул нийтийн API руу явж буй пакет туннельд огт ордоггүй.
Клиент туннелийн дотор авдаг хаяг нь point-to-site пулаас авсан хувийн түрээс юм. Энэ нь VNet-ийн нөөцүүдэд клиентийг таниулна; интернетийн харж чадах хаяг биш бөгөөд SaaS API руу явж буй гадагш хүсэлтийн эх сурвалж болж хэзээ ч харагдахгүй. Тэр түрээсийг тойрсон allowlist бичлэг ажиллах боломжгүй, нийлүүлэгчийн лог дээр гарч ирэхийг хэчнээн хүлээсэн ч.
Хуваасан туннель ба албадан туннель зэрэгцэн
| Split tunnel, the default | Forced tunneling | |
|---|---|---|
| Internet traffic exits through | local ISP or office router | firewall or appliance inside Azure |
| Source address the API sees | your home or office IP | the firewall public IP |
| Inspection and logging in Azure | none | policy rules plus flow logs |
| Ongoing cost | gateway only | gateway, firewall hours, data processing |
| What usually breaks | nothing on the egress path | DNS, on-premises routes, overlapping local ranges |
Алсын үйлчилгээний харж буй хаягийг зөвхөн хоёр дахь мөр өөрчилнө. Тэр хүснэгтийн бусад бүх зүйл нь гарцыг Azure дотор шалгах эсвэл орчуулах шаардлагатай үед хүлээн зөвшөөрөх зардал ба үйл ажиллагааны гадаргуу юм. Хэрэв хэн нэгэн танаас нийтийн IP-г өөрчлөхийг хүсвэл тэр бүхэл баруун баганыг хүсч байна, клиент дээрх жижиг засвар биш.
Ямар нэг зүйлийг дахин барихаас өмнө нэрлэх ёстой завсрын сонголт байна. VNet доторх proxy эсвэл гарцын VM нь түүн рүү чиглүүлж болох аппликейшнүүдэд хяналттай эх хаяг өгөх бөгөөд клиентийн анхдагч маршрутыг хөдөлгөхгүй. Энэ нь энгийн вэб үзлтийг локал байлгаж, Azure-с зөвхөн нэг API дуудлага ирэх шаардлагатай түншийг хангана. Шаардлага үнэхээр бүх урсгалд хамаарах үед энэ бүтэлгүйтдэг, учир нь proxy тохиргоог үл тоомсорлосон бүхэн локалаар гарч байна.
Туннелийг анхдагч маршрутыг зөөхийг албад
Виртуал сүлжээний гарц дээр клиентийн бүх интернэт урсгалыг туннель руу чиглүүлэх дэмжигдсэн арга нь point-to-site тохиргоонд өөр маршрутууд нэмэх юм. Хоёр хагас нь бүх IPv4 орон зайг хамарч, тус бүр нь локал анхдагч маршрутаас илүү тодорхой тул клиент юу ч устгахгүйгээр тэдгээрийг илүүд үзнэ:
Set-AzVirtualNetworkGateway -VirtualNetworkGateway GWOBJ -CustomRoute 0.0.0.0/1,128.0.0.0/1
Тэр мөр нь жишээ бөгөөд хуулахад бэлэн бүрэн зүйл биш: эхлээд Get-AzVirtualNetworkGateway-ээр гарцын объектыг авч GWOBJ-ийн оронд тавь, ажиллуулахын өмнө SKU болон байршуулалтын загвар өөр маршрутуудыг хүлээж авахыг батал. Ижил префиксүүд портал дээрх point-to-site тохиргооны хуудсанд харагдана, хэрэв гарцыг аль хэдийн скриптээр удирдахгүй бол тэдгээрийг тохируулах илүү аюулгүй газар нь тэр.
Эдгээр префиксийг өөрчлөх нь клиентийн багцыг хүчингүй болгоно. VPN клиентийн багцыг дахин татаж, дахин суулгана уу, учир нь маршрутууд профайл дотор явдаг. Хуучин профайлаараа дахин холбогдсон клиент хуучин маршрутын багцыг хадгалж, түүнд хэзээ ч хүрээгүй өөрчлөлтийг дибаг хийхэд нэг цаг алдаж болно.
Хамгаалагдсан виртуал WAN төвд ижил утга нь point-to-site гарцтай холбоотой төвийн маршрутын хүснэгт дэх анхдагч маршрут бөгөөд урсгалыг төв дэх Azure Firewall авна. Firewall нь интернэт рүү чиглэсэн холболтыг өөрийн нийтийн IP хаягууд руу хөрвүүлдэг бөгөөд шинэ гарцын хаяг яг энэ хөрвүүлэлтээс гардаг. Firewall хэд хэдэн нийтийн IP-тэй бол тэдгээрийн аль нь ч эх сурвалж болж харагдаж болно, тул allowlist бүгдийг агуулсан байх ёстой.
Дээрх хоёр дизайн хоёулаа IPv4. Хоёр /1 префикс нь IPv6-д юу ч хийхгүй, point-to-site-ийн IPv6 дэмжлэг нь тэгш байдлыг амлахаас өмнө хослолыг турших шаардлагатай болтол нарийн.
Маршрутыг шалга, дараа нь гарцыг
Багцыг дахин суулгаж, дахин холбогдсоны дараа клиент хоёр хагасыг үнэхээр суулгасан эсэхийг батал. Windows дээр Get-NetRoute -DestinationPrefix 0.0.0.0/1 болон 128.0.0.0/1-ийн ижил асуулга нь туннелийн интерфейсийг зааж, route print нь анхны анхдагч маршрутынхаа хажууд хоёуланг нь харуулна. Linux дээр ip route show хоёр префиксийг жагсаах ёстой; үгүй бол профайл тэдгээрийг хэзээ ч зөөгөөгүй.
Дараа нь клиентээс нийтийн хаягийг дахин шалгаж, ижил холболтын firewall-ийн логыг уншина уу. Эх сурвалж нь хөрвүүлсэн порттой firewall-ийн нийтийн IP байх ёстой. Хоёр маршрут байгаа ч клиент локалаар гарч байгаа бол пакетууд Azure-д хүрч, өөр замаар гарсан гэсэн үг: гарцын дэд сүлжээн дэх хэрэглэгчийн тодорхойлсон маршрут, өөрөө локал сүлжээ рүү албадан туннельд орсон firewall, эсвэл хөрвүүлэлтийн өмнө урсгалыг хаях бодлого.
Мөн сесс дотор нэг хувийн очих газрыг дахин туршиж үзээрэй. Өөрчлөлтийн дараа хариу өгөхөө болих jump host нь шинэ префиксүүд ямар нэг зүйлийг түлхэж гаргасан гэсэн ердийн шинж: өмнө нь зарлагдаж байсан илүү нарийн локал маршрут эсвэл одоо таны хувийн бүсүүдэд зориулсан дамжуулагчгүй resolver руу явж буй нэрийн шийдэл.
Хуваасан туннелийг хэзээ тайван орхих вэ
Зорилго нь зөвхөн хувийн API, хувийн endpoint эсвэл дотоод админ хуудас руу хүрэх бол анхдагч зан төлөв илүү хямд, илүү тайван. Албадан туннель нь firewall-ийн цаг, өгөгдөл боловсруулах төлбөр, илүү урт зам, мөн клиент бүрийн урсгал бүтэлгүйтэж болох бас нэг газар нэмнэ. Энэ нь таны санаа зовж байсан ганц очих газраас хамаагүй илүү урсгалыг барьдаг.
Шаардлага гарцын үүднээс хэлэгдсэн үед үүнд хандана уу: түнш тогтмол Azure хаяг харах ёстой, аюулгүй байдал холболтыг лог хийж шалгахыг хүсч байна, эсвэл өгөгдөл нэг хяналттай цэгээр гарах ёстой. Тэр үед ч дизайн хэрэглэгч бүрт хуваалцсан гарц өгдөг тул хэрэглэгч тус бүрийн хариуцлага нь эх хаягаас биш, аппликейшн дахь таних тэмдэгээс ирэх ёстой.
Өөрчлөлтийг хаахаас өмнө дөрвөн зүйлийг батал: суулгасан клиентийн багц шинэ, хоёр /1 маршрут туннелийн интерфейс дээр, хувийн очих газар хараахан хариулж байна, мөн алсын үйлчилгээний лог firewall-ийн хаягийг харуулж байна.