پرش به محتویات

آموزش IPv6؛ شب هفتم: Ubuntu Server و Netplan

در Ubuntu، تنظیم SLAAC و Dual Stack ثابت را با Netplan انجام می‌دهیم و با netplan try خطر قطع دسترسی سرور راه دور را کاهش می‌دهیم.

Netplan تنظیم را برای systemd-networkd یا NetworkManager تولید می‌کند. نخست فایل‌ها و Renderer فعلی را بررسی کنید:

ls -l /etc/netplan
sudo netplan get
ip -br link

YAML به Space نیاز دارد، نه Tab. نام enp1s0، آدرس‌ها، Gateway و DNS را جایگزین کنید و آدرس مستندسازی را با شبکهٔ واقعی ترکیب نکنید.

SLAAC و Route دریافتی از RA

فایلی مانند /etc/netplan/60-ipv6.yaml بسازید:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: true
      dhcp6: false
      accept-ra: true

dhcp6: false، SLAAC را غیرفعال نمی‌کند. accept-ra: true اجازهٔ دریافت RA را می‌دهد؛ خود RA نوع Address Autoconfiguration و احتمالاً DNS را تعیین می‌کند.

سرور Dual Stack با آدرس ثابت

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: false
      dhcp6: false
      accept-ra: false
      addresses:
        - 192.0.2.50/24
        - 2001:db8:1200:10::50/64
      routes:
        - to: default
          via: 192.0.2.1
        - to: default
          via: fe80::1
          on-link: true
      nameservers:
        addresses:
          - 192.0.2.53
          - 2001:db8:1200:10::53
        search: [example.net]

Netplan جدید به‌جای gateway6 منسوخ‌شده از Default Route استفاده می‌کند. Gateway از نوع Link-local در IPv6 رایج است و on-link: true ابهام Reachability را رفع می‌کند. اگر Provider یک Global Gateway مشخص کرده، دقیقاً همان را به‌کار ببرید.

اعتبارسنجی و Apply امن

sudo cp -a /etc/netplan /root/netplan-backup
sudo netplan generate
sudo netplan try
# Confirm interactively before its rollback timer expires.
sudo netplan apply

روی سرور راه دور، netplan try را از مسیری اجرا کنید که Console نیز در دسترس باشد. اگر فایل Secret دارد، Permission را محدود کنید:

sudo chmod 600 /etc/netplan/60-ipv6.yaml

بررسی و Rollback

ip -6 addr show dev enp1s0
ip -6 route
ip -6 route get 2606:4700:4700::1111
resolvectl status enp1s0
curl -6 --connect-timeout 5 https://example.com/

اگر cloud-init مالک شبکه باشد، ممکن است پس از Reboot فایل Netplan را دوباره بسازد. Metadata شبکهٔ Cloud را تغییر دهید یا Network Rendering آن را آگاهانه خاموش کنید؛ صرفاً با فایل تولیدشده نجنگید.

برای Rollback از Console، YAML پشتیبان را برگردانید و netplan generate && netplan apply اجرا کنید. هنگام نشست Remote هرگز تمام تنظیم شبکه را حذف نکنید.