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

آموزش IPv6؛ شب ششم: عملیات IPv6 در Linux

پیش از Persist کردن تنظیمات، انتخاب Route و آدرس مبدأ را می‌بینیم، وابستگی‌ها را جداگانه آزمایش می‌کنیم و یک الگوی امن برای تغییر شبکهٔ سرور راه دور می‌سازیم.

پیش از تغییر، وضعیت را ببینید

ip -br -6 address
ip -6 address show dev enp1s0
ip -6 route show table all
ip -6 route get 2606:4700:4700::1111
ip -6 neighbor show
sysctl net.ipv6.conf.all.disable_ipv6
sysctl net.ipv6.conf.all.forwarding
sysctl net.ipv6.conf.enp1s0.accept_ra

ip route get، Route انتخاب‌شده، آدرس مبدأ، Interface و Next Hop را نشان می‌دهد و از نگاه کردن صرف به جدول Route اطلاعات بیشتری می‌دهد.

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

# Local stack and gateway
ping -6 -c 3 ::1
ping -6 -c 3 'fe80::1%enp1s0'

# Internet by address, then by name
ping -6 -c 3 2606:4700:4700::1111
getent ahosts example.com
ping -6 -c 3 example.com

# Path and DNS
tracepath6 example.com
resolvectl query example.com

# Service listeners and packets
ss -lntup
sudo tcpdump -ni any 'ip6 and host 2001:db8:1200:10::80'

ممکن است مقصد عمومی Ping را ببندد؛ شکست Ping به‌تنهایی قطعی IPv6 را ثابت نمی‌کند. یک Endpoint از نوع TCP را نیز با curl -6 -v https://example.com/ آزمایش کنید.

آدرس و Route موقت

sudo ip -6 addr add 2001:db8:1200:10::50/64 dev enp1s0
sudo ip -6 route replace default via fe80::1 dev enp1s0 metric 500
sudo ip -6 addr del 2001:db8:1200:10::50/64 dev enp1s0

این فرمان‌ها فقط State فعلی Kernel را تغییر می‌دهند. تنظیم Persistent باید در Netplan، ifupdown، systemd-networkd یا NetworkManager باشد، نه یک Shell Script زمان Boot.

آدرس مبدأ و Privacy

برای DNS و ACL، سرور به آدرس ثابت و صریح نیاز دارد. Clientها معمولاً آدرس Stable Opaque و Temporary Privacy دارند. آدرس Temporary را در DNS منتشر نکنید. Flag و Lifetimeها را با این فرمان ببینید:

ip -6 address show dev enp1s0

Privacy Address را بدون دلیل به‌صورت Global خاموش نکنید؛ رفتار را متناسب با نقش و Interface در Network Manager فعال تنظیم کنید.

الگوی امن تغییر از راه دور

  1. Console مربوط به Provider یا VM را باز کنید.
  2. فایل فعلی و خروجی فرمان‌ها را ذخیره کنید.
  3. اگر Platform قابلیت Rollback خودکار دارد، آن را زمان‌بندی کنید.
  4. تغییر را Apply کنید و نشست SSH فعلی را باز نگه دارید.
  5. از نشست دوم Route، DNS و دسترسی سرویس را آزمایش کنید.
  6. در Maintenance Window، Reboot و آزمایش‌ها را تکرار کنید.

تغییر sysctl -w موقت است. مقدار Persistent معمولاً زیر /etc/sysctl.d/ قرار می‌گیرد، اما Forwarding فقط روی Router لازم است:

net.ipv6.conf.all.forwarding=1

با فعال شدن Forwarding، Linux معمولاً RA را مانند Host نمی‌پذیرد. اگر WAN Router باید همچنان RA بگیرد، پس از بررسی مدل امنیتی برای همان Interface مقدار accept_ra=2 را تنظیم کنید.