VPN гарцыг дахин эхлүүлсний дараа ч IPv4 дамжуулалт тогтвортой байлга
ip_forward-ийг клиентийн пакетуудыг зөөдөг нэрийн орон зайд тогтоож, тохиргоонд нэг эзэмшигч өгч, зөвхөн файл засварлахын оронд дахин эхлүүлэлтийг давж гардгийг нотол.
Гарц руу ping хийх нь ажиллаж, түүний ард байгаа юунд ч хүрэх нь ажиллахгүй байгаа нь туннелийн бус, дамжуулалтын асуудлын хэлбэр юм. Гарц руу локал хүргэлт нь туннель босч, хаягийн хуваарилалт ажилласныг нотолдог; энэ нь цөм нэг интерфейсээс нөгөө рүү пакет дамжуулах эсэх талаар юу ч хэлэхгүй. Аливаа sysctl-д хүрэхээс өмнө, машин энэ урсгалыг чиглүүлэхэд зориулагдсан гэдгийг батал мөн клиент рүү харсан интерфейсийг агуулж буй сүлжээний контекстийг ол. Дараа нь утгыг тэндээс унш, хамгийн сүүлд уншсан гарын авлага санамсаргүй харсан газраас биш.
Гарц руу хүрэх нь дамжуулалттай ижил биш
Цөмийн дотор хоёр тусдаа шийдвэр гардаг. Локал хаяг руу хүргэх нь пакетийн аяллыг дуусгадаг; дамжуулалт түүнийг өөр интерфейсээр дахин гадагш илгээдэг бөгөөд энэ хоёр дахь шийдвэрийг сүлжээний нэрийн орон зай тус бүрээр удирддаг. Гарц бүрэн хүртээмжтэй байхад дамжуулалт унтарсан байж болох бөгөөд ping-ийн мөрөөс тэр хоёр алдаа ижил харагдана.
Клиентийн пакет аль интерфейс рүү ирж, цаашдын зам аль интерфейсээр гарч байгааг бичиж аваарай. Хоёулаа нэг нэрийн орон зайд хамаарах бөгөөд чухал тохиргоо тэр орон зайд байна.
Пакетууд үнэхээр байгаа газарт утгыг унш
Хост нэрийн орон зайд чиглүүлдэг гарц дээр нэг команд асуултад хариулна: sysctl net.ipv4.ip_forward. Орж ирэх болон цаашдын зам нэрлэсэн нэрийн орон зайд амьдардаг бол тэр орон зайгаас асуу: ip netns exec vpn-gw sysctl net.ipv4.ip_forward. Хост утга нь нэрийн орон зайн утгын орлуулагч биш бөгөөд хост дээрх нэг гэдэг нь юуны ч нотолгоо биш.
Чиглүүлэлтийн контекст бүрт ip netns-д өгч болох шошго байдаггүй. Контейнер ажиллуулах орчин, үйлчилгээнүүд найрсаг нэрээр хэзээ ч бүртгэгддэггүй нэрийн орон зайг үүсгэдэг бөгөөд тэдгээрт ажиллуулах орчны шалгалтын хэрэгслийг ашигладаг. vpn-gw-ийг жинхэнэ нэрээр эсвэл мөн контекстэд хүрдэг орчны механизмаар сольж, хост түвшинд таамаглахаа болино уу.
Тохиргоонд нэг эзэмшигч өг
Уламжлалт systemd хост гарц дээр тогтвортой хэлбэр нь администраторын сонгосон нэртэй drop-in файл, жишээлбэл /etc/sysctl.d/60-vpn-forwarding.conf, дотор нь net.ipv4.ip_forward = 1 байна. Файлыг бичээд, дараа нь амьд төлөв ч өөрчлөгдөхийн тулд яг тэр файлыг ачаал: sudo sysctl -p /etc/sysctl.d/60-vpn-forwarding.conf, дараа нь буцааж уншина. Файлын нэр бол жишээ, нөөцөлсөн VPN зам биш бөгөөд эхний тоо чухал, учир нь дараа эрэмбэлэгдсэн файлууд ялдаг.
Дээд зэрэг нь тогтвортой байдал чимээгүй эвдэрдэг газар юм. Түгээлтийн ачаалагч болон өөрийн drop-in-ийг хоёуланг нь шалга, учир нь procps sysctl --system төгсгөлд /etc/sysctl.conf-ийг ч уншдаг бол systemd-ийн sysctl.d дараалал огт өөр дараалал юм. Хожуу хуваарилалт ижил түлхүүрийг шууд буцааж тавьж, файл чинь зөв, харин бодит утга буруу үлдэж болно. Тэр маргааныг ялахын тулд одоо байгаа администраторын файлыг дарж бичиж болохгүй; эзэмшигчийг олж, тэнд нь өөрчил.
Ачаалсны дараа үүссэн нэрийн орон зайг хост drop-in огт удирддаггүй. Түүний тохиргоо нь түүнийг үүсгэдэг зүйлд хамаарна, тэр нь контейнер ажиллуулах орчин эсвэл нэрийн орон зайг бэлтгэх нэгж байж болно. Асуултаас зайлсхийхийн тулд контейнерт өргөн хост эрхийг өгөх нь зөв эзэмшигчийг тодорхойлоход арван минут зарцуулснаас дор хэлцэл юм.
Унтраалга юу өндөртэйг эргүүлэхээс өмнө мэд
ip_forward нь хор хөнөөлгүй логик утга биш. Цөмийн баримт бичиг үүнийг өөрчлөхөд бусад хэд хэдэн IPv4 параметрийг хост эсвэл чиглүүлэгчийн анхдагч утгад буцаадаг гэж тэмдэглэдэг тул оношилгооны эргүүлэлт өөр газар хийсэн тохируулгыг хаяж, түүнийг хэзээ ч дурдахгүй байж болно. Үүнийг хайхрамжгүй ажиллуулж болох шалгалт биш, гаж нөлөө бүхий тохиргооны өөрчлөлт гэж үз.
Энэ нь клиент хост руу хүрч чадах бүрт унтрааж асаахыг мөн үгүйсгэнэ. Утга аль хэдийн нэг бол алдаа замын өөр газарт байгаа бөгөөд ижил түлхүүрийг гурав дахь удаа дахин бичих нь түүнийг хөдөлгөхгүй.
Тогтвортой байдлыг нотол, дараа нь замын үлдсэн хэсгийг турш
Утгыг дөрвөн мөчид буцааж унш: өөрчлөлтийн дараа шууд, VPN интерфейс гарч ирсний дараа, дахин холбогдсоны дараа, төлөвлөсөн дахин эхлүүлэлтийн дараа. Эдгээр цэгийн аль нэгэнд буцаж ухардаг утга хоёр дахь эзэмшигчтэй байна, дахин нэг удаагийн бичилт үүнийг зөвхөн дараагийн дахин ачаалалт хүртэл нуудаг.
Дамжуулалт идэвхтэй байсан ч шалгах гурван зүйл үлдэнэ. Клиентэд очих газар руу чиглэл хэрэгтэй, гарцад цаашдын чиглэл ба түүнийг ашиглах зөвшөөрөл хэрэгтэй, очих газарт клиентийн туннелийн хаяг руу буцах зам хэрэгтэй. Хувийн чиглүүлсэн LAN автоматаар NAT шаарддаггүй тул гурвын аль нь дутууг мэдэхээс өмнө masquerading нэмэхгүй, мөн гарцаас биш, зорьсон клиентээс турш, учир нь гарц дээр үүссэн хүсэлт таны саяхан идэвхжүүлсэн дамжуулалтын замд хэзээ ч хүрдэггүй. IPv6 нь өөрийн дамжуулалт, чиглүүлэлтийн бодлоготой тул ажиллаж буй IPv4 шалгалт түүний талаар юу ч хэлэхгүй.
Runbook-д drop-in-ийн зам, нэрийн орон зайн эзэмшигч, буцааж унших командыг хамт хадгал. Дараа нь үүнийг авсан хүн утгыг уншиж, хэний эзэмшилд байгааг харж, асуудал тогтвортой байдал уу эсвэл замын үлдсэн хэсэг үү гэдгийг нэг минутын дотор шийдэж чаддаг байх ёстой.