آموزش 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ها را با این فرمان ببینید:
Privacy Address را بدون دلیل بهصورت Global خاموش نکنید؛ رفتار را متناسب با نقش و Interface در Network Manager فعال تنظیم کنید.
الگوی امن تغییر از راه دور¶
- Console مربوط به Provider یا VM را باز کنید.
- فایل فعلی و خروجی فرمانها را ذخیره کنید.
- اگر Platform قابلیت Rollback خودکار دارد، آن را زمانبندی کنید.
- تغییر را Apply کنید و نشست SSH فعلی را باز نگه دارید.
- از نشست دوم Route، DNS و دسترسی سرویس را آزمایش کنید.
- در Maintenance Window، Reboot و آزمایشها را تکرار کنید.
تغییر sysctl -w موقت است. مقدار Persistent معمولاً زیر /etc/sysctl.d/ قرار میگیرد، اما Forwarding فقط روی Router لازم است:
با فعال شدن Forwarding، Linux معمولاً RA را مانند Host نمیپذیرد. اگر WAN Router باید همچنان RA بگیرد، پس از بررسی مدل امنیتی برای همان Interface مقدار accept_ra=2 را تنظیم کنید.