OpenVPN-ийн зангилаа бүр дээр нэг үйлчилгээний IP: энэ юу хийдэггүй вэ
Зангилаа бүрт хувийн /32 нөөцөлж, клиент өөрөө сонгосон серверт хүрэх боломжтой болго. Хаяг нь гэмтлийн үед шилжихгүй, сессийг зөөхгүй, эрүүл зангилаа сонгохгүй.
Клиент хэд хэдэн OpenVPN серверийн аль нэгэнд холбогдоод, дараа нь тухайн зангилаа дээр ажилладаг жижиг үйлчилгээ хэрэгтэй болдог: төлөвийн хуудас, хэмжүүрийн төгсгөлийн цэг, нөөц агент. Зангилаа бүрт ижил хувийн үйлчилгээний хаяг өгснөөр клиентийн тохиргоо аль серверт бууснаас үл хамааран ижил болно. Энэ тав тух бодит бөгөөд үүнийг хэт өргөн уншихад ч амар: хуваалцсан хаяг таныг аль зангилаанд хүрснийг хэлнэ, ямар нэг зүйл илүүдэлтэй гэсэн үг биш.
Яагаад ижил хаяг зангилаа бүр дээр ажилладаг вэ
Зангилаа бүр хаягийг локалаар эзэмшиж, түүний өмнөөс хариу өгдөг тул одоогийн туннелээрээ түүнд хүрсэн клиент үйлчилгээг тухайн туннелийн нөгөө зах дээр авдаг. Зангилааны хооронд юу ч зохицуулагдахгүй, нэг зангилаанаас нөгөө рүү ямар ч урсгал дамждаггүй.
Хаяг бол орон нутгийн шошго, хуулбарлагдаагүй харин давтагдсан. Зангилаа бүр зөвхөн өөрийнхөө төлөө хариу өгдөг бөгөөд тэдгээрийн аль нь ч хаягийн урсгалыг өөр зангилааны нэрийн өмнөөс дамжуулдаггүй. Энэ нь нэг клиентийн тохиргоог хүчинтэй байлгаж, серверүүд бие даасан хэвээр үлддэг. Энэ нь мөн дизайнд зангилааны хооронд ямар ч зохицуулалт хэрэггүй байгаагийн шалтгаан юм.
Тиймээс ижил тохиргоо тэдгээрийн хооронд маршрутжуулалтын протоколгүйгээр сервер бүр дээр ажилладаг. Энэ нь мөн дизайн эрүүл мэндийн талаар юу ч хэлэхгүй байгаагийн шалтгаан юм: хаяг нь хостоос хамааралтай, үйлчилгээ ашигтай эсэхээс биш, тиймээс өвчтэй зангилаа дээр ч эрүүл зангилаа дээрхтэй яг адил байдаг.
Үүнийг туннельд биш, loopback-д онооно уу
Хаягийг loopback интерфэйс дээр тавих нь түүнийг аливаа туннелийн төхөөрөмжийн амьдрах хугацаанаас салгадаг тул дахин холбогдох эсвэл тохиргоо дахин ачаалагдах нь түүнийг устгахгүй. Хаяг хост байгаа цагт байна.
lo дээрх хаяг нь шүүлтүүр биш. Үйлчилгээ түүн дээр сонсох шаардлагатай хэвээр, мөн хостийн галт хана бодит ирж буй замыг үнэлсээр байна, тэр нь туннелийн интерфэйсээр ирдэг. Loopback гэдэг зөвхөн локал гэж үздэг хүн эцэстээ хууль ёсны клиентүүдийг хаах эсвэл өөрөө санаагүй зүйлийг ил гаргадаг.
Хуваарилалтыг hook-оос дахин нэмэхийн оронд хостийн сүлжээний тохиргоогоор байнгын болго. Суулгах hook нь туннель босоогүй зангилаа дээр ажиллахгүй, үйлчилгээний хаяг туннелийн идэвхээс хамаарах ёсгүй. Хаягийг таны түгээлт эзэмшдэг интерфэйсийн тохиргоонд хийж, дараа нь нэг удаа дахин ачаалж шалга. Дахин ачаалах нь дараагийн тохиргооны өөрчлөлтийг тэсвэрлэх цорын ганц сорил юм.
ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev loНэг маршрут түлхэж, нэг очих газрыг сана
Клиентэд хаягийн хувьд хостийн маршрут хэрэгтэй бөгөөд үүнийг түүний холбогдож буй сервер санал болгодог. Сервер бүр ижил очих газрыг санал болгодог тул клиент шилжихэд профайл өөрчлөгдөхгүй.
Үйлчилгээг буруутгахаас өмнө клиент юу суулгасныг шалга.
ip route get 10.250.0.1HTTP үйлчилгээний хувьд хаягт нэр, тухайн нэрэнд гэрчилгээ өг. Хуваалцсан IP нь таних тэмдэг биш бөгөөд TLS шалгалтыг арилгахгүй, нэг хувийн түлхүүрийг зангилаа бүрт хуулахыг зөвтгөхгүй. Хуваалцсан хаяг руу шийдэгддэг нэр нь гэрчилгээний түүхийг энгийн байлгаж, шаардлагатай бол зангилаа тус бүрийн таних тэмдгийг хадгалах боломж олгоно.
Хуваалцсан хаяг юу хийж чадахгүй вэ
Энэ нь гэмтлийн үед шилжилтийг хангахгүй. Сонгосон зангилаа үхвэл хаяг түүнтэй хамт үхэж, клиент өөр газар дахин холбогдох ёстой.
Энэ нь амьд TCP сессийг шилжүүлэхгүй, учир нь шинэ холболт хуучин холболтын талаар юу ч мэдэхгүй өөр хост дээр төгсдөг.
Энэ нь эрүүл зангилаа сонгохгүй, ачааллыг тэнцвэржүүлэхгүй, зангилааны хооронд өгөгдөл синхрончлохгүй. Эдгээр нь тус бүр өөрийн гэмтлийн горимтой тусдаа механизм бөгөөд хаягийн арга тэднийг хамардаг гэж дүр эсгэх нь энгийн дизайн тэсвэр тэвчээрийн талаар хүчингүй нэр хүнд олж авах зам юм. Хэрэв хоёр туннель зэрэг идэвхтэй бол очих газрын утга хоёрдмол болно, тиймээс нэг идэвхтэй туннелийн таамаглалыг тодорхой бариарай.
Үйлчилгээний таних тэмдгийг нэртэй нь хамт хадгал
Хаяг юу гэсэн үг болохыг бич: энэ нь клиент одоо холбогдсон зангилааны үйлчилгээнд хүрдэг. Тэр нэг өгүүлбэр энэ хэв маягийн татдаг ихэнх үл ойлголцлыг сэргийлдэг.
Дараа нь хэсгүүдийг хамт баримтжуул: хаяг, түүний амьдардаг интерфэйс, серверийн түлхэж буй маршрут, үйлчилгээний танилцуулж буй нэр, гэрчилгээ. Ирээдүйн уншигч шалгаж болох дөрвөн жижиг баримт, тэр тэдгээрийг шалгах дарааллаар.
Хэрэв шаардлага нь зангилааны локал үйлчилгээнд тогтвортой очих газар бол энэ хэв маяг тохирч, бараг юу ч зарцуулахгүй.
Хэрэв шаардлага нь хүртээмж бол нэг давхарга өгсөж: ачааллын тэнцвэржүүлэгч, эрүүл мэндийн шалгалттай үйлчилгээний нэр, эсвэл зангилааг хэрхэн солихыг аль хэдийн мэддэг оркестрчлолын систем.
Үүнийг эрт шийдэх нь хуваалцсан хаягийг өөрөө хэвээр нь, тохиромжтой шошго хэвээр нь үлдээж, хэзээ ч зохиогдоогүй ажлыг чимээгүй хүлээдэг бүрэлдэхүүн болгохгүй.