Netplan basic tutorials

  • پیش گفتار
  • مقدمه
  • واژگان
  • پیکربندی عمومی
  • تخصیص آدرس IP توسط خادم DHCP
  • تخصیص آدرس IP توسط خادم DHCP ویندوزی
  • تنظیم آدرس IP به صورت دستی
  • تنظیم چندین آدرس IP به صورت دستی
  • تنظیم آدرس IP برای چندین کارت شبکه
  • استفاده از چندین gateway
  • بررسی تنظیمات bonding
  • بررسی تنظیمات bridges
  • اتصال VLAN به کارت شبکه
  • اتصال مستقیم به gateway
  • اتصال دست نوشته توسط ابزار networkd-dispatcher

  • پیش گفتار

    • مخاطب این مستند تمامی عزیزانی است که به صورت مستقیم در پیکربندی توزیع‌های مختلف سیستم عامل گنو-لینوکس فعالیت می‌کنند.
    • پیش نیاز مطالعه‌ی این مستند حداقل آشنایی با دوره‌ی LPIC-1 و مباحث شبکه می‌باشد.

  • مقدمه

    • netplan راه‌کاری برای رهایی از شیوه‌های مختلف تنظیمات کارت شبکه‌ی توزیع‌های مختلف می‌باشد.
    • در همین راستا، پرونده‌های تنظیمات netplan به زبان Yaml نگارش می‌شوند.
    • تنظیمات نگارش شده توسط مفسر متناسب با توزیع و سیستم عامل، در سطح کرنل اجرا و پیاده‌سازی می‌شوند.
    • netplan توسط شرکت chronicle توسعه داده شده است.
    • تمامی موارد گفته شده در این مستند در سیستم عامل گنو-لینوکس توزیع Ubuntu 18.04 بررسی و آزمایش شده است.

  • واژگان

    • لغات انگلیسی استفاده شده در متن مستند، ترجمه و تمامی لغات به صورت پر رنگ مشخص شده است.
    • همچنین لیست لغات ترجمه شده به شرح زیر است :
      • خادم = Server
      • پرونده = File
      • کارت شبکه = Network Interface
      • پوشه = Directory
      • توزیع = Distribution
      • بسته‌ها = Packets
      • مسیریاب = Router
      • مقاصد = Destinations
      • دست نوشته = script

  • پیکربندی عمومی

    • به منظور ساخت پرونده‌ای برای درج تنظیمات، ابتدا وارد پوشه‌ی زیر شوید :

    • به صورت پیش‌فرض یک پرونده با نام 01-netcfg.yaml در مسیر بالا قرار دارد که فاقد تنظیمات خاصی است.
    • پیشنهاد می‌شود یک پرونده متناسب با کارت شبکه‌‌ای که قصد تنظیمات آن را دارید، ایجاد کنید.
    • به عنوان مثال :

    • در نهایت کافیست پرونده‌ی ساخته شده را با یک ویرایشگر (مثلا nano) باز کنید.

    • نکته: می‌توان از ساخت پرونده‌ای جدید صرف نظر کرد و از همان پرونده‌ی پیش‌فرض (01-netcfg.yaml) استفاده نمود.

  • تخصیص آدرس IP توسط خادم DHCP

    • به منظور دریافت تنظیمات مربوط به شبکه (آدرس IP ، subnet ، DNS ، gateway و …) از طریق خادم DHCP ، پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • مقدار کلید dhcp4 می‌تواند به چهار صورت زیر در نظر گرفته شود :
      • true : به منظور تایید
      • yes : به منظور تایید
      • false : به منظور عدم تایید
      • no : به منظور عدم تایید
    • به منظور عدم دریافت تنظیمات مربوط به آدرس IPv6 می‌توان از مقدار no یا false برای کلید dhcp6 استفاده کرد.
    • به عنوان مثال :

    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • تخصیص آدرس IP توسط خادم DHCP ویندوزی

    • به منظور دریافت تنظیمات مربوط به شبکه (آدرس IP ، subnet ، DNS ، gateway و …) از طریق خادم DHCP ویندوزی، پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • تنظیم آدرس IP به صورت دستی

    • به منظور اعمال تنظیمات مربوط به شبکه (آدرس IP ، subnet ، DNS ، gateway و …) به صورت دستی، پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • با توجه به ساختار زبان Yaml ، مقدار کلید addresses را به شکل زیر نیز می‌توان وارد کرد :

    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • تنظیم چندین آدرس IP به صورت دستی

    • یکی از قابلیت‌های خوب راه کار netplan ، امکان در نظر گرفتن چندین آدرس IP برای یک کارت شبکه می‌باشد.
    • به عنوان مثال می‌توان دو آدرس IP مجزا را برای یک کارت شبکه در نظر گرفت. برای این منظور پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • تنظیمات بالا باعث می‌شود تا آدرس 172.16.0.1 و 172.16.0.2 برای کارت شبکه‌ی ens160 در نظر گرفته شود.
    • بدین صورت که امکان اتصال به هر دوی این آدرس‌ها امکان‌پذیر خواهد بود.
    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.
    • خروجی تغییرات و تنظیمات اعمال شده، توسط دستور ip a قابل رویت خواهد بود. برای این منظور :

    • همان طور که در خروجی دستور بالا مشاهده می‌کنید، دو آدرس IP برای کارت شبکه‌ی ens160 در نظر گرفته شده است.

  • تنظیم آدرس IP برای چندین کارت شبکه

    • بر روی بسیاری از خادم‌های عملیاتی چندین کارت شبکه موجود است. تنظیم هر یک از این کارت‌ها را می‌توان در پرونده‌هایی جدا از هم انجام داد.
    • همچنین می‌توان تنظیمات مربوط به تمام کارت‌ها را در یک پرونده انجام داد.
    • برای این منظور پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • تنظیمات بالا باعث می‌شود تا دو آدرس 192.168.88.73 و 192.168.88.74 برای کارت شبکه‌ی ens192 و دو آدرس 172.16.0.1 و 172.16.0.2 برای کارت شبکه‌ی ens160 در نظر گرفته شود.
    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • استفاده از چندین gateway

    • فرضا ممکن است درون یک شبکه دو gateway وجود داشته باشد. یکی از gateway ها اصلی و برای مسیریابی اصلی در نظر گرفته شده و یکی دیگر برای اتصال به شبکه‌ای دیگر
    • در این حالت نیاز است تا دو gateway برای کارت شبکه در نظر گرفته شود.
    • برای این منظور پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • همان طور که در کد بالا مشخص شده است، برای اتصال به شبکه‌ی 192.168.100.0/24 از مسیریاب با آدرس 172.16.0.100 استفاده شده است.
    • یعنی در صورتی که قصد اتصال به یک سیستم با آدرس 192.168.100.200 را داشته باشیم، بسته‌ها به سمت مسیریاب 172.16.0.100 هدایت می‌شوند.
    • همچنین برای باقی مقاصد (یعنی 0.0.0.0/24) پکت‌ها به سمت مسیریاب 172.16.0.251 سوق داده می‌شوند.
    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • بررسی تنظیمات bonding

    • با استفاده از قابلیت bonding می‌توان چند کارت شبکه را در یک گروه قرار داد تا در صورتی که هر یک از کارت‌های شبکه از مدار خارج شدند، ارتباط با شبکه قطع نشود.
    • این عمل را می‌توان مثل Raid در نظر گرفت.
    • به عنوان مثال فرض کنید دو کارت شبکه بر روی خادم موجود بوده و هر دوی این کارت‌ها به یک مسیریاب یا یک سویچ متصل شده‌اند.
    • با استفاده از قابلیت bonding می‌توان این دو کارت شبکه را در یک گروه قرار داد و یک آدرس IP برای این گروه در نظر گرفت تا در صورتی که به هر دلیلی یکی از کارت‌های شبکه از مدار خارج شد، دیگری بدون هیچ وقفه‌ای اتصال با شبکه را برقرار کند.
    • برای این منظور ابتدا پرونده‌ی 01-netcfg.yaml را به شکل زیر ویرایش کنید :

    •  سپس پرونده‌ی 02-bondings.yaml را به شکل زیر ویرایش کنید :

    • لطفا توجه فرمایید که نام‌های ens160 و ens192 فرضی بوده و باید متناسب با نام‌های موجود در خادم تغییر یابند.
    • لطفا توجه فرمایید که آدرس‌های IP فرضی بوده و باید متناسب با شبکه‌ تغییر یابند.
    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.
    • در نهایت می‌توان خروجی تغییرات را در دستور ifconfig مشاهده نمود :

    • همان طور که مشاهده می‌کنید یک کارت با نام bond0 در خادم ایجاد شده است.
    • برای بررسی بیشتر می‌توان به صورت زیر عمل کرد :

    • لطفا به مقادیر Link Failure Count برای کارت‌های ens192 و ens160 دقت کنید.
    • لطفا به دو مقدار Up Delay و Down Delay توجه کنید.
    • نکته: حتما یک بار اتصال کارت‌ها را قطع و سپس وصل کنید.

  • بررسی تنظیمات bridges

    • یکی از فواید ایجاد یک کارت شبکه به صورت bridge این است که می‌توان از آن کارت به صورت مستقیم در کانتینرهای LXD و … استفاده نمود.
    • برای این منظور ابتدا پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • اتصال VLAN به کارت شبکه

    • به منظور اختصاص vlan ID به یک کارت شبکه، ابتدا پرونده‌ی تنظیمات را به شکل زیر ویرایش کنید :

    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • اتصال مستقیم به gateway

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

    • در نهایت کافیست پرونده‌ی تنظیمات را ذخیره و دستور زیر را به منظور اعمال تنظیمات وارد کنید :

    • در صورتی که دستور بالا به صورت موفقیت آمیز اجرا شود، خروجی‌ای نمایش داده نمی‌شود.

  • اتصال دست نوشته توسط ابزار networkd-dispatcher

    • به منظور استفاده از دست نوشته‌های نگارش شده برای ابزارهای ethtool و ip می‌توان از سرویس networkd-dispatcher استفاده نمود.
    • همان طور که می‌دانید تنظیمات شبکه در توزیع Ubuntu 18.04 نسبت به گذشته تغییر یافته است.
    • به عنوان مثال کدهای زیر را در نظر بگیرید :

    • برای استفاده از کدهای بالا حتما نیاز می‌باشد که آن‌ها به صورت دست نوشته تهیه کنید. برای این منظور کافیست پرونده‌ای با نامی دلخواه در مسیر زیر ایجاد کنید :

    • نکته: انتخاب سطح دسترسی اجرا برای دست نوشته ضروری می‌باشد. برای این منظور :

    • در نهایت کدها را به صورت زیر وارد کنید :


  • منابع