Мессеж гарч буй газраас эхэл. Клиент холбогдож, туннель босч, дараа нь лог нь Linux-ийн маршрут нэмэх команд File exists-тай бүтэлгүйтсэн гэж мэдээлнэ. Тэр өгүүлбэрт сертификат, түлхүүр эсвэл тохиргооны файлын тухай юу ч байхгүй, гэхдээ үгс тэгж сануулдаг. Цөм өөрийн маршрутын хүснэгтийг дүрсэлж байгаа бөгөөд та суулгахыг хүссэн префиксэд аль хэдийн бичлэг бий.

Клиентийн өөрийн дарааллыг дага: юу хүссэн, хүснэгтэд аль хэдийн юу байсан, тэр бичлэгийг тэнд хэн тавьсан, зөвхөн дараа нь юу өөрчлөх вэ. Алхам бүр нэг боломжит эзэмшигчийг хасдаг.

Клиент үнэндээ юу хүсч байсан

Алдааны өмнө клиент нэмэхээр зэхэж буй маршрутаа бүртгэнэ, ихэвчлэн очих газар, сүлжээний маск, гарц, заримдаа метрик эсвэл хүснэгт хэлбэрээр. Тэр мөр нь хүсэлт. Дараах алдаа нь цөмийн хариулт бөгөөд хоёуланг нь зэрэгцүүлэн унших хэрэгтэй.

journalctl -u openvpn-client@office -b --no-pager | grep -nE 'route|File exists'
openvpn --config /etc/openvpn/client/office.ovpn --verb 4 --log /tmp/ovpn.log

Маршрутын туслахын тэгээс ялгаатай гарцын төлөв нь доорх текстээс бага мэдээлэл өгдөг, учир нь өөр өөр цөмийн хариултууд тэгээс ялгаатай төлөв үүсгэдэг. Яг мессежийг хадгал; одоо байгаа бичлэг болон хүрэх боломжгүй гарцын ялгаа нь дараагийн аль хэсгүүд хамаарахыг тодорхойлно.

Одоо байгаа маршрутыг унш, зөвхөн хаягийг биш

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

ip -4 route show table all | grep -F '10.40.'
ip -4 route show match 10.40.0.0/16
ip -4 route get 10.40.0.5

Сүүлийн команд эхний хоёроос өөр асуултад хариулна: юу байгаа биш, харин цөм тэр очих газарт яг одоо аль бичлэгийг сонгох вэ. Хоёр үзэл бодол хоёулаа ашигтай бөгөөд дүгнэлт хийхээс өмнө харьцуулах нь зүйтэй хэмжээгээр олон удаа зөрдөг. Тэдний хоорондын зөрүү нь сонирхолтой тохиолдол, дугуйруулалтын алдаа биш.

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

Префиксийн байж болох дөрвөн эзэмшигч

Холбогдсон маршрутууд нь олгогдсон хаягаас үүсдэг бөгөөд тэр хаяг байх бүрт систем тэдгээрийг дахин үүсгэдэг. DHCP клиент эсвэл холболтын менежер маршрутуудыг өөрийн амьдралын мөчлөгийн хэсэг болгон суулгадаг. Өөр VPN клиент ижил префиксийг аль хэдийн зөөж байж болно. Мөн локал дэгээ эсвэл скрипт өөр юу ч мэдэхгүй нэгийг нэмж болно.

Эзэмшигч бүр өөр засвар шаарддаг. Холбогдсон маршрут нь таны устгах зүйл биш; түүнийг авах нь туннель ашиглах боломжтой болохоос өмнө локал хандалтыг эвдэж болзошгүй бөгөөд цөм түүнийг буцааж тавина. Менежерийн эзэмшлийн маршрутыг тэр менежерээр дамжуулан өөрчлөх ёстой, дараагийн дахин холболт цуцалдаг гарын ip route del-аар биш.

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

block-local өөр асуултад хариулна

Профайл бүх урсгалыг туннелээр явуулах үед клиент локал сүлжээнд юу болохыг шийдэх ёстой. block-local туг локал LAN-ыг туннелээр чиглүүлж, LAN гарцын баримтжуулсан үл хамаарах зүйлийг хадгалах замаар тэр шийдвэрийг өөрчилдөг; энэ нь хүртээмжид харагдах үр дагавартай урсгалын бодлогын сонголт юм.

Энэ нь маршрут нэмэх яагаад одоо байгаа бичлэгийн алдаа буцаасныг тайлбарлахгүй бөгөөд үүнийг бүх нийтийн засвар гэж үзэх нь бодит зөрчилдөөнийг бодлогын өөрчлөлтийн ард нуудаг. Профайл зассны дараа локал нөөц хүртээмжгүй болбол энэ туг хамгийн түрүүнд шалгах зүйлсийн нэг; харин маршрут нэмэх нь бүтэлгүйтвэл энэ нь хариулт биш.

Үүнийг аль очих газрууд локал үлдэх тухай зориуд гаргасан, бичиж тэмдэглэсэн шийдвэр гэж үз. Лог сэтгэл түгшээмээр харагдах үед туршиж үзэх унтраалга биш.

Циклийг хаа: давхардлыг эх сурвалжид нь устга

Аль эзэмшигч бичлэгийг барьж байгааг мэдсэний дараа заавар тодорхойлогдсон газарт нь давхардсан зааврыг устга. Энэ нь профайл дахь route мөр, серверээс ирсэн push, эсвэл цаашид ажиллуулах шаардлагагүй дэгээ байж болно.

ip -4 route show match 10.40.0.0/16
ip -4 route get 10.40.0.5
journalctl -u openvpn-client@office -b --no-pager | tail -n 15

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

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

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