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

آموزش IPv6؛ شب شانزدهم: عیب‌یابی، Hardening و پروژهٔ پایانی

در شب آخر، به‌جای حدس زدن از نشانه تا لایهٔ خراب پیش می‌رویم، Failure تزریق می‌کنیم و کل شبکهٔ Dual Stack را از Snapshot تمیز بازسازی و اعتبارسنجی می‌کنیم.

تشخیص بر اساس نشانه

Client آدرس Global ندارد

RA را Capture، Prefix Lifetime و Flag مربوط به Autonomous را بررسی و VLAN، مقدار advertise=yes در RouterOS و RA رقیب را پیدا کنید:

sudo tcpdump -ni enp1s0 -vv icmp6
ip -6 address show dev enp1s0

Client دارای GUA است، اما اینترنت ندارد

ip -6 route show default
ip -6 route get 2606:4700:4700::1111
ping -6 -c 3 'fe80::1%enp1s0'

Forwarding در RouterOS، Default Route، Counterهای Firewall و Route برگشت Prefix در ISP را بررسی کنید. اگر NAT66 مشکل را ظاهراً حل کرد، این نشانهٔ خرابی Return Routing یا Provisioning است؛ نه اثبات نیاز به NAT.

آدرس کار می‌کند، نام نه

resolvectl status
dig AAAA example.com
dig @2606:4700:4700::1111 AAAA example.com

میان دسترسی‌پذیری Resolver، Record مفقود، خطای DNSSEC و پاسخ اشتباه تفاوت بگذارید.

Packet کوچک کار می‌کند، HTTPS یا Download متوقف می‌شود

به MTU و PMTUD شک کنید. عبور ICMPv6 از نوع Packet Too Big را End-to-end مجاز و Overhead مربوط به Tunnel یا PPPoE را بررسی کنید:

tracepath6 example.com
sudo tcpdump -ni enp1s0 'icmp6 or tcp port 443'

با بستن ICMPv6 یا کاهش دائمی MTU همهٔ Hostها صورت مسئله را پاک نکنید؛ Link یا Filter خراب را پیدا کنید.

سرویس Local کار می‌کند، اما External نه

از بیرون به داخل حرکت کنید: پاسخ Authoritative مربوط به AAAA، Route و Filter Provider، Counter فوروارد RouterOS، Capture روی NIC سرور، Host Firewall، Socket در حال Listen و Log مربوط به Daemon. دیدن Packet در یک لایه، همهٔ لایه‌های پیش از آن را تبرئه می‌کند.

پروژهٔ پایانی

از Snapshot تمیز این توپولوژی را Deploy کنید:

                  ISP IPv4 + delegated/routed IPv6
                                |
                    [RouterOS v7: default deny]
                       /                    \
             users /64 + ULA          servers /64 + ULA
                  |                         |
           SLAAC clients       web01 HTTPS + mail/DNS test

چک‌لیست پذیرش:

  • Router دارای Link-local، GUA مورد نظر و یک Route معتبر ::/0 است.
  • هر LAN یک GUA /64 یکتا دارد و ULA فقط با دلیل طراحی وجود دارد.
  • Client آدرس، Default Router، MTU و DNS مورد نظر را یاد می‌گیرد.
  • IPv4 و IPv6 خروجی مستقل از هم کار می‌کنند.
  • Input مربوط به Router از WAN بسته است، جز نیازهای عملیاتی صریح.
  • Forward ناخواسته بسته است، جز Ruleهای مستند سرویس.
  • ICMPv6 و PMTUD کار می‌کنند.
  • Web دارای A، AAAA، TLS و Monitoring مستقل v4/v6 است.
  • Mail، در صورت فعال بودن، PTR، Forward DNS و Policy احراز هویت هماهنگ دارد.
  • NAT66 وجود ندارد یا استثنا و برنامهٔ حذف آن مستند است.
  • Reboot یا Reconnect، PD را Renew و Policy را خودکار بازسازی می‌کند.
  • Scan بیرونی فقط Portهای مورد انتظار را می‌بیند.
  • Backup، Diagram، IPAM، آزمایش و مراحل Rollback ذخیره شده‌اند.

تمرین تزریق خرابی

در Lab دورریختنی، هر بار فقط یک خطا بسازید:

  1. Default Route مربوط به Client را حذف کنید.
  2. AAAA اشتباه منتشر کنید.
  3. Rule مجاز HTTPS را پایین‌تر از Default Drop ببرید.
  4. پیام Packet Too Big را در مسیر آزمایشی ببندید.
  5. یک /64 را به دو LAN Route‌شده بدهید.

نشانه را پیش‌بینی، مشاهده و لایهٔ خراب را اثبات کنید؛ سپس از Baseline ثبت‌شده برگردید. Fault Injection را هرگز روی Production اجرا نکنید.

عادت‌های Production

  • RouterOS و Linux را طبق برنامهٔ آزمایش‌شده Patch و Release Noteها را مرور کنید.
  • پیش از تغییر Backup بگیرید و Restore را هم آزمایش کنید.
  • برای از دست رفتن Prefix/Route، تغییر RA، DNS Drift، خرابی هر Family، انقضای Certificate، Dropهای Firewall و مشکل Renewal در DHCPv6-PD Alert بسازید.
  • هرجا DNS مناسب است، Address Literal در تنظیم Application ننویسید.
  • برای Exceptionهای Firewall، Comment، مالک، Ticket/دلیل و تاریخ انقضا نگه دارید.
  • پس از Renumbering، قطع‌و‌وصل برق یا اتصال دوبارهٔ CPE همه‌چیز را دوباره بسنجید.

وقتی بدون حدس زدن مسیر را عیب‌یابی و شبکه را فقط از روی مستندات دوباره می‌سازید، این دوره تمام شده است.