محتوای آموزشی وبلاگ نتآرام
یک IP اضافه برای سرور اختصاصی ایران گرفتهاید، اما پس از واردکردن آن سرویس از بیرون در دسترس نیست. IP ممکن است به شبکه اصلی bridge شده باشد یا ارائهدهنده یک subnet را به IP اصلی سرور route کرده باشد. این دو مدل تنظیم یکسان ندارند. واردکردن gateway دوم یا subnet mask حدسی میتواند مسیر فعلی و حتی دسترسی مدیریتی را خراب کند.
در این راهنما یک سناریوی مشخص را آموزش میدهیم: ارائهدهنده تأیید کرده یک IPv4 اضافه به خود میزبان لینوکس route میشود و اجازه داده آن را به شکل
/32 روی رابط اصلی میزبان تنظیم کنید. برای ماشین مجازی پشت bridge، آدرسدهی IPv6، شبکه دارای virtual MAC یا مدل متفاوت ارائهدهنده، به طراحی جداگانه نیاز دارید. آدرسهای متن، نمونه و غیرقابل استفاده در اینترنت واقعیاند.۱. اطلاعات ارائهدهنده و کنسول را آماده کنید
IP اصلی سرور، رابط شبکه، IP یا subnet اضافه، روش تحویل، gateway فعلی، مجوز استفاده از هر آدرس و زمان فعالشدن route را از ارائهدهنده بگیرید. بپرسید IP جدید باید روی خود میزبان قرار گیرد یا به یک ماشین مجازی اختصاص یابد. برای بعضی subnetها نشانی شبکه و broadcast قابل استفاده نیستند و قواعد ارائهدهنده تفاوت دارند؛ یک آدرس را فقط بعد از تأیید انتخاب کنید.
کنسول iDRAC، iLO یا دسترسی خارج از شبکه را پیش از ویرایش آماده و تنظیم فعلی را ثبت کنید. یک IP نباید همزمان به دو میزبان داده شود. اگر برنامه یا فایروال به IP اصلی وابسته است، اثر تغییر را با مالک سرویس هماهنگ کنید. از تعریف مسیر پیشفرض جدید یا روشنکردن forwarding بدون نیاز مشخص خودداری کنید.
۲. کارت و مسیر فعلی را پیدا کنید
در ترمینال لینوکس اجرا کنید:
کد / دستورip -br address
ip -4 route show
ip rule show
دستور اول نام رابط و آدرسهای آن را نشان میدهد. در دومی خط
default، gateway و رابط خروجی فعلی را ببینید. سومی قواعد مسیریابی را فهرست میکند؛ وجود جدول یا قاعده خاص به معنی آن است که نمونه ساده این راهنما شاید کافی نباشد. اگر چند رابط یا چند مسیر خروجی دارید، طراحی پاسخ برای IP جدید را از مدیر شبکه بگیرید.برای نمونههای بعد فرض میکنیم رابط اصلی
ens3 است و آدرس مجاز اضافی 198.51.100.10 به این سرور route شده است. این اعداد صرفاً برای توضیحاند. پیش از اجرای فرمان، نبود همان IP روی رابط یا جای دیگر را با ip -4 address show تأیید کنید.۳. یک بار IP را موقت اضافه و مسیر را بررسی کنید
فقط در سناریوی تأییدشده بالا و با جایگزینکردن آدرس و رابط واقعی:
کد / دستورsudo ip address add 198.51.100.10/32 dev ens3
ip -4 address show dev ens3
ip -4 route get 1.1.1.1 from 198.51.100.10
فرمان اول IP نمونه را تا تغییر تنظیم یا راهاندازی مجدد اضافه میکند. دومی باید آدرس اضافه را روی رابط نشان دهد. سومی از کرنل میپرسد برای مقصد نمونه با مبدأ IP اضافه چه مسیری انتخاب میکند؛ این پرسش لزوماً بستهای به اینترنت نمیفرستد و پاسخ موفق آن ثابت نمیکند route ارائهدهنده یا فایروال بیرونی درست است. مقصد مجاز و واقعی را جایگزین کنید. اگر خطای
File exists گرفتید، پیش از هر اقدام بررسی کنید آدرس قبلاً کجا تعریف شده است.در یک شبکه routed، ارائهدهنده باید مسیر ورودی آدرس را به سرور شما تحویل دهد. صرف اضافهکردن IP در لینوکس این route بیرونی را ایجاد نمیکند. بعضی ارائهدهندگان تحویل IP منفرد و subnet را متفاوت انجام میدهند؛ نمونه مستند Hetzner فقط برای طراحی همان شبکه معتبر است، نه تضمین تنظیم همه ارائهدهندگان.
۴. ورودی و خروجی را جداگانه آزمایش کنید
از یک سیستم مجاز خارج از سرور به سرویس مورد نظر روی IP جدید وصل شوید. برای وب HTTPS، اگر دامنه و گواهی برای آن سرویس از قبل تنظیم شدهاند، نمونه زیر همان نام دامنه را به IP آزمایشی وصل میکند:
کد / دستورcurl --resolve test.example.com:443:198.51.100.10 https://test.example.com/
این فرمان را روی سیستم آزمایش بیرونی اجرا کنید و نام، IP و پورت واقعی را جایگزین کنید. نام باید با گواهی معتبر و virtual host سرویس همخوان باشد. اگر اتصال شکست خورد، بررسی کنید برنامه روی IP جدید یا همه آدرسهای مورد نظر گوش میدهد:
کد / دستورsudo ss -lntp
این فرمان را روی سرور اجرا کنید. فایروال میزبان و قوانین شبکه ارائهدهنده نیز باید فقط برای پورت و مبدأ مجاز اجازه بدهند. ping ممکن است عمداً بسته باشد؛ شکست آن بهتنهایی ثابت نمیکند سرویس TCP از کار افتاده است.
برای خروجی با مبدأ IP جدید، به یک مقصد آزمایشی تحت کنترل خودتان وصل شوید و IP مبدأ ثبتشده در مقصد را مقایسه کنید. بهعنوان نمونه در کلاینت curl سازگار میتوان
curl --interface 198.51.100.10 https://test.example.com/ را با آدرس و مقصد واقعی آزمایش کرد. موفقیت این کار درستی همه مسیرهای ورودی یا routing policy را تضمین نمیکند.۵. پس از آزمون، تنظیم را پایدار کنید
اگر سرور اوبونتو با Netplan و تنظیم ثابت مدیریت میشود، فایل مسئول رابط را شناسایی و از آن یک نسخه پشتیبان با نام جدید خارج از
کد / دستور/etc/netplan نگه دارید. در همان بخش addresses رابط، IP تأییدشده را با /32 به فهرست آدرسهای موجود اضافه کنید؛ IP اصلی، DNS و مسیر پیشفرض موجود را حفظ کنید. شکل نمونه فقط برای نشاندادن محل آدرس است و جایگزین فایل کامل شما نیست:addresses:
- 192.0.2.10/24
- 198.51.100.10/32
هر دو نشانی مثالاند. اگر تنظیمها از چند فایل ادغام میشوند یا cloud-init آنها را میسازد، ابتدا مالک تنظیم را پیدا کنید. با فاصلهگذاری درست،
sudo netplan generate را اجرا و پیامهای خطا و هشدار را بخوانید. سپس با کنسول آماده، sudo netplan try --timeout 120 را اجرا کنید و اتصال IP اصلی و جدید را از بیرون در زمان شمارش آزمایش کنید. فقط پس از موفقیت، تنظیم را تأیید کنید. بازگشت خودکار در بعضی شرایط محدودیت دارد؛ وضعیت فایل و شبکه را از کنسول بررسی کنید. راهنمای رسمی netplan try این نکته را توضیح میدهد.اگر از NetworkManager، systemd-networkd یا ابزار ارائهدهنده استفاده میکنید، IP را در تنظیم پایدار همان ابزار اضافه کنید؛ ساخت فایل Netplan تازه برای سیستمی که از آن استفاده نمیکند کافی نیست. از تعریف دوباره همان آدرس در چند ابزار جلوگیری کنید.
۶. اگر IP هنوز کار نمیکند
ابتدا مشخص کنید بسته ورودی واقعاً به سرور میرسد یا نه؛ با capture محدود و مجاز روی رابط، فایروال و مسیر برگشت را با مدیر شبکه بررسی کنید. اگر بسته میرسد اما پاسخ از مسیر اشتباه خارج میشود، قواعد source routing و تنظیم
rp_filter ممکن است در یک شبکه چندمسیره مؤثر باشند. تغییر یا خاموشکردن سراسری آنها بدون تحلیل، محافظت شبکه را کاهش میدهد؛ مستند کرنل درباره rp_filter گزینهها را توضیح میدهد.اگر میخواهید فقط افزودن موقت همین آزمون را برگردانید و مطمئنید آدرس از قبل یا در تنظیم پایدار وجود نداشته، با
sudo ip address del 198.51.100.10/32 dev ens3 و جایگزینی مقادیر واقعی همان آدرس را حذف کنید. سپس IP اصلی و سرویسها را بررسی کنید. پس از تنظیم پایدار نیز در پنجره مناسب یک ریبوت آزمایشی و اتصال ورودی و خروجی را تکرار کنید؛ دیدن IP در خروجی بهتنهایی پایان عیبیابی نیست.اشتراکگذاری:
لینکدینتلگرامایکس
مقاله قبلی
مقاله بعدی
دیدگاهها (۰)
دیدگاههای تاییدشده و پاسخهای تیم نتآرام
