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

آموزش IPv6؛ شب هشتم: پیکربندی شبکه در Debian

Debian ممکن است از ifupdown، systemd-networkd یا NetworkManager استفاده کند. پیش از ویرایش باید مالک Interface را پیدا و فقط یک مدیر شبکه را مسئول آن نگه داریم.

systemctl is-active NetworkManager systemd-networkd networking
nmcli device status 2>/dev/null || true
networkctl status enp1s0 2>/dev/null || true
grep -R "enp1s0" /etc/network/interfaces /etc/network/interfaces.d 2>/dev/null

مثال‌های اصلی از ifupdown کلاسیک استفاده می‌کنند که روی Serverها رایج است.

SLAAC با ifupdown

در /etc/network/interfaces.d/enp1s0:

allow-hotplug enp1s0
iface enp1s0 inet dhcp

iface enp1s0 inet6 auto

inet6 auto دریافت RA را فعال می‌کند. اگر IPv4 جای دیگری تنظیم شده، بخش inet dhcp را ننویسید.

Dual Stack ثابت با ifupdown

auto enp1s0
iface enp1s0 inet static
    address 192.0.2.60/24
    gateway 192.0.2.1

iface enp1s0 inet6 static
    address 2001:db8:1200:10::60/64
    gateway fe80::1

اگر ترکیب ifupdown و Provider، Gateway از نوع Link-local را درست Resolve نمی‌کند، از Hook صریح استفاده کنید:

    up ip -6 route replace default via fe80::1 dev enp1s0
    down ip -6 route del default via fe80::1 dev enp1s0 || true

gateway و Hook را هم‌زمان اضافه نکنید. طراحی‌های /128 Route‌شده ممکن است به Route از نوع On-link برای Gateway نیاز داشته باشند؛ مستند Provider مقدم است.

Apply با احتیاط

ifdown می‌تواند اتصال راه دور را قطع کند. با Console و در Maintenance Window:

sudo ifdown enp1s0 && sudo ifup enp1s0

اگر ifupdown2 نصب است، sudo ifreload -a تغییرها را آرام‌تر Reconcile می‌کند، اما آزمایش پس از Reboot همچنان ضروری است.

جایگزین systemd-networkd

برای Hostی که از قبل با networkd مدیریت می‌شود، در /etc/systemd/network/20-wired.network بنویسید:

[Match]
Name=enp1s0

[Network]
Address=2001:db8:1200:10::60/64
Gateway=fe80::1%enp1s0
DNS=2001:db8:1200:10::53
IPv6AcceptRA=no

مالکیت Interface را دوباره بررسی کنید و Restart را فقط با دسترسی امن انجام دهید. نتیجه را با networkctl status enp1s0، ip -6 route و resolvectl status بسنجید.

فایل /etc/resolv.conf ممکن است توسط resolvconf، NetworkManager یا systemd-resolved تولید شود. به‌جای Overwrite کردن، Symlink و Manager آن را بررسی کنید.