برنامه نویسی

رونمایی از رمز و راز مدیریت شبکه در لینوکس

برای پیمایش موفقیت آمیز هزارتوی پیکربندی شبکه در یک محیط لینوکس، ابتدا باید مطمئن شویم که سیستم ما به درستی آماده شده است. این مرحله آماده سازی شامل به روز نگه داشتن نرم افزار و تأیید وجود ابزارهای ضروری شبکه است. در اینجا نحوه انجام آن آمده است:

  1. sudo apt update: این دستور فهرست محلی بسته های نرم افزاری ما را تازه می کند و راه را برای دسترسی به جدیدترین نسخه ها هموار می کند.

  2. sudo apt upgrade -y: اجرای این دستور منجر به ارتقای تمامی نرم افزارهای نصب شده روی سیستم ما می شود. پرچم ‘-y’ به طور خودکار هر درخواستی را که ممکن است در طول فرآیند ایجاد شود تأیید می کند.

  3. sudo apt install iproute2: این دستور نصب “iproute2” را تنظیم می کند، مجموعه ای از ابزارهای ضروری برای مدیریت شبکه TCP/IP و کنترل ترافیک در لینوکس.

  4. sudo apt install net-tools: با اجرای این دستور، “net-tools” را به سیستم خود وارد می کنیم. این بسته دستوراتی مانند «ifconfig» را ارائه می‌کند که در پیکربندی رابط‌های شبکه مؤثر هستند.

با تکمیل این مراحل مقدماتی، ما پایه ای محکم ایجاد کرده ایم که از حمله بعدی ما به کاوش و دستکاری شبکه پشتیبانی می کند.

تسلط بر پیکربندی شبکه

تصویر

مفاهیم کلی

ساخت پل شبکه ما

اولین سفارش ما ایجاد یک پل شبکه جدید است که نام آن را ‘v-bridge’ می گذاریم. دستورات بعدی به ‘v-bridge’ جان می دهد، آن را در حالت فعال (UP) قرار می دهد و یک آدرس IP به آن اختصاص می دهد:

ip link add dev v-bridge type bridge
ip link set v-bridge up
ip addr add 192.168.0.1/24 dev v-bridge
ip addr show dev v-bridge
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پل را بررسی کنید

حک کردن فضای نام شبکه

در مرحله بعد، ما توجه خود را به سمت ایجاد سه فضای نام شبکه مجزا که به طور مناسب “قرمز”، “سبز” و “آبی” نامیده می شوند، معطوف می کنیم:

ip netns add red
ip netns add green
ip netns add blue
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ما می توانیم ایجاد موفقیت آمیز فضای نام خود را با اجرا تأیید کنیم ip netns list.

ساخت واسط های اترنت مجازی

گام بعدی ما شامل ایجاد جفت های اترنت مجازی (veth) است. این جفت‌ها به‌عنوان یک مجرا عمل می‌کنند و امکان ارتباط یکپارچه شبکه بین دو نقطه پایانی را فراهم می‌کنند:

ip link add veth-red-ns type veth peer name veth-red-br
ip link add veth-green-ns type veth peer name veth-green-br
ip link add veth-blue-ns type veth peer name veth-blue-br
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اتصال رابط های اترنت مجازی

سپس رابط‌های veth تازه‌سازی شده ما به فضاهای نام شبکه مربوطه و ‘v-bridge’ اصلی ما مرتبط می‌شوند:

ip link set dev veth-red-ns netns red
ip link set dev veth-green-ns netns green
ip link set dev veth-blue-ns netns blue
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و

ip link set dev veth-red-br master v-bridge
ip link set dev veth-green-br master v-bridge
ip link set dev veth-blue-br master v-bridge
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای فعال سازی این رابط ها و آماده سازی آن ها برای ارتباط شبکه ای، موارد زیر را اجرا می کنیم:

ip link set dev veth-red-br up
ip link set dev veth-green-br up
ip link set dev veth-blue-br up
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و

ip netns exec red ip link set dev veth-red-ns up


ip netns exec green ip link set dev veth-green-ns up
ip netns exec blue ip link set dev veth-blue-ns up
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تخصیص آدرس های IP و مسیرهای پیش فرض در فضاهای نام

اکنون به فضاهای نام شبکه می پردازیم تا آدرس های IP و مسیرهای پیش فرض را برای رابط های veth خود پیکربندی کنیم:

ip netns exec red ip address add 192.168.0.2/24 dev veth-red-ns
ip netns exec red ip route add default via 192.168.0.1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و دستورات مشابه برای فضای نام “سبز” و “آبی”.

ما اکنون فضاهای نام شبکه خود را پیکربندی کرده ایم، زمینه را برای ارتباطات شبکه و ایجاد یک دروازه مشترک (192.168.0.1/24) برای ترافیک خروجی ایجاد کرده ایم.

همانطور که در زیر نشان داده شده است، می توانیم ارتباط بین فضای نامی را با پینگ کردن یک فضای نام از فضای نام دیگر تأیید کنیم:

ip netns exec red ping -c 2 192.168.0.4
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پینگ فضاهای نام

فعال کردن اتصال به اینترنت

فعال سازی IP Forwarding

ما این مرحله را با فعال کردن ارسال IP در سیستم خود شروع می کنیم که با تنظیم پارامتر sysctl ‘net.ipv4.ip_forward’ روی 1 انجام می شود: sysctl -w net.ipv4.ip_forward=1.

پیکربندی NAT و قوانین فایروال

در مرحله بعد، از iptables برای پیکربندی NAT استفاده می کنیم. این به فضاهای نام شبکه ما اجازه می دهد تا از طریق رابط “enp0s2” به اینترنت دسترسی داشته باشند: iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s2 -j MASQUERADE.

عکس فوری زیر یک نگاه اجمالی به فرآیند پیکربندی NAT ارائه می دهد:

NAT را پیکربندی کنید

ما می توانیم اتصال اینترنت را با شروع یک پینگ از هر فضای نام شبکه به یک آدرس IP خارجی تأیید کنیم. یک مثال در زیر آمده است: ip netns exec red ping -c 2 8.8.8.8.

پینگ موفقیت آمیز به یک IP خارجی در زیر نمایش داده می شود:

پینگ کنید

در نتیجه

در این راهنمای دقیق، پیچیدگی‌های مدیریت پیکربندی شبکه در یک محیط لینوکس را بررسی کرده‌ایم. ما به ایجاد فضاهای نام شبکه و جفت‌های اترنت مجازی، اتصال آنها از طریق پل شبکه، اختصاص آدرس‌های IP و مسیرهای پیش‌فرض در فضاهای نام، و برقراری ارتباط بین فضاهای نام پرداخته‌ایم. علاوه بر این، ما فعال کردن حمل و نقل IP، پیکربندی NAT و تنظیم قانون فایروال را پوشش داده ایم تا امکان دسترسی به اینترنت به فضای نام شبکه ما را فراهم کند.

اگر می خواهید عمیق تر در این موضوعات غوطه ور شوید یا به دنبال شبکه های حرفه ای باشید، من همیشه آماده بحث های تحریک کننده هستم. در لینکدین با من در ارتباط باشید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا