كتابة توثيق الشبكات وتقارير الحوادث
كتابة توثيق الشبكات وتقارير الحوادث
أفضل مهندسي الشبكات يكتبون توثيقاً يسمح لأي شخص في الفريق بتنفيذ إجراء في الساعة 3 صباحاً بدون طرح أسئلة. يغطي هذا الدرس كتابة كتب التشغيل ومراجعات ما بعد الحوادث وطلبات التغيير وخطط عناوين IP وإجراءات التصعيد وتقارير تحليل السبب الجذري — كلها باللغة الإنجليزية الواضحة بالمبني للمعلوم التي يتطلبها التوثيق المهني.
المبني للمعلوم في التوثيق التقني
قبل الغوص في القوالب، افهم القاعدة الأهم في كتابة توثيق الشبكات: استخدم المبني للمعلوم (active voice).
| المبني للمجهول (تجنّبه) | المبني للمعلوم (استخدمه) |
|---|---|
| "The interface should be shut down by the engineer." | "Shut down the interface." (أغلق الواجهة.) |
| "The configuration was applied to the router." | "Apply the configuration to the router." (طبّق الإعدادات على الراوتر.) |
| "It was determined that the root cause was a misconfiguration." | "We determined that a misconfiguration caused the outage." (حددنا أن خطأ في الإعدادات سبب الانقطاع.) |
| "The ticket should be escalated if the issue is not resolved." | "Escalate the ticket if the issue is not resolved within 30 minutes." (صعّد التذكرة إذا لم تُحل المشكلة خلال 30 دقيقة.) |
لماذا يهم المبني للمعلوم: خلال حادث في الساعة 3 صباحاً، المهندس الذي يقرأ كتاب التشغيل يحتاج أن يعرف فوراً من يفعل ماذا. المبني للمجهول يُخفي الفاعل ويخلق غموضاً. المبني للمعلوم مباشر وواضح وأسرع في القراءة.
كتابة كتب التشغيل (Runbooks)
كتاب التشغيل (runbook) هو إجراء خطوة بخطوة لمهمة تشغيلية محددة. كتب التشغيل الجيدة هي العمود الفقري لعمليات الشبكة الموثوقة.
هيكل كتاب التشغيل
كل كتاب تشغيل يجب أن يتبع هذا التنسيق:
Title: [Procedure Name] (اسم الإجراء)
Last Updated: [Date] (آخر تحديث)
Author: [Name] (المؤلف)
Reviewed By: [Name] (مُراجع من قبل)
Applies To: [Devices/Systems] (ينطبق على)
## Purpose (الغرض)
[جملة واحدة تصف ما يُنجزه كتاب التشغيل]
## Prerequisites (المتطلبات المسبقة)
- [ ] Access to [systems/devices] (الوصول إلى [الأنظمة/الأجهزة])
- [ ] Credentials for [accounts] (بيانات اعتماد لـ [الحسابات])
- [ ] Change ticket [number] approved (تذكرة تغيير [الرقم] مُعتمدة)
## Procedure (الإجراء)
### Step 1: [Action] (الخطوة 1: [الإجراء])
[تعليمات واضحة بالمبني للمعلوم]
**Verification:** (التحقق:)
[أمر للتحقق من نجاح الخطوة]
**Expected output:** (المخرج المتوقع:)
[ما يجب أن يراه المهندس]
## Rollback Procedure (إجراء التراجع)
[خطوات التراجع عن التغيير إذا حدث خطأ]
## Troubleshooting (استكشاف الأخطاء)
| Symptom (العرض) | Likely Cause (السبب المحتمل) | Action (الإجراء) |
|-----------------|---------------------------|-----------------|
مثال كتاب تشغيل: إضافة نظير BGP
Title: Add New BGP Peer to Core Router
(إضافة نظير BGP جديد للراوتر الأساسي)
## Purpose (الغرض)
إضافة نظير eBGP جديد للراوترات الأساسية للاتصال
بمزود عبور جديد.
## Prerequisites (المتطلبات المسبقة)
- [ ] وصول SSH إلى core-rtr-01 و core-rtr-02
- [ ] تذكرة التغيير CHG-8842 معتمدة من CAB
- [ ] عنوان IP النظير و ASN وقائمة البادئات مستلمة من المزود
- [ ] نافذة الصيانة مؤكدة: السبت 02:00-04:00 UTC
## Procedure (الإجراء)
### Step 1: Verify current BGP state
### الخطوة 1: تحقق من حالة BGP الحالية
سجّل الدخول إلى core-rtr-01 وتأكد أن النظراء الحاليين سليمون.
show bgp summary
**Expected output:** جميع النظراء الحاليين يجب أن يُظهروا
حالة "Established" مع عدد بادئات مُستلمة غير صفري.
### Step 2: Add the prefix list
### الخطوة 2: أضف قائمة البادئات
طبّق قائمة البادئات لتصفية المسارات من النظير الجديد.
configure terminal
ip prefix-list TRANSIT-PROVIDER-2 seq 10 permit 0.0.0.0/0 le 24
ip prefix-list TRANSIT-PROVIDER-2 seq 20 deny 0.0.0.0/0 le 32
commit
**Verification:** (التحقق:)
show running-config | include prefix-list TRANSIT-PROVIDER-2
### Step 3: Configure the BGP neighbor
### الخطوة 3: إعداد نظير BGP
أضف نظير eBGP الجديد تحت عملية BGP.
configure terminal
router bgp 65001
neighbor 198.51.100.1
remote-as 64999
description "Transit Provider 2 - Primary"
address-family ipv4 unicast
route-policy TRANSIT-PROVIDER-2-IN in
route-policy TRANSIT-PROVIDER-2-OUT out
commit
**Verification:** (التحقق:)
show bgp neighbor 198.51.100.1
**Expected output:** الحالة يجب أن تنتقل إلى "Established"
خلال 60 ثانية.
## Rollback Procedure (إجراء التراجع)
احذف نظير BGP وقائمة البادئات:
configure terminal
router bgp 65001
no neighbor 198.51.100.1
no ip prefix-list TRANSIT-PROVIDER-2
commit
قواعد كتابة كتب التشغيل الأساسية
- إجراء واحد لكل خطوة. لا تجمع أوامر متعددة في خطوة واحدة.
- تضمين تحقق بعد كل خطوة. المهندس يجب أن يتمكن من تأكيد نجاح كل خطوة قبل المتابعة.
- إظهار المخرج المتوقع. صِف كيف يبدو النجاح حتى يعرف المهندس إذا كان هناك خطأ.
- اكتب خطوات التراجع أولاً. قبل كتابة الإجراء، اكتب كيفية التراجع عنه.
- استخدم صيغة الأمر. "Configure the interface" — وليس "You should configure the interface" أو "The interface should be configured."
نموذج مراجعة ما بعد الحادث (PIR) / التشريح
مراجعة ما بعد الحادث (Post-Incident Review) وتُسمى أيضاً التشريح (postmortem) توثّق ما حدث ولماذا وكيف نمنع تكراره.
# Post-Incident Review: [Incident Title]
# مراجعة ما بعد الحادث: [عنوان الحادث]
**Incident ID:** INC-[number] (معرف الحادث)
**Severity:** P1 / P2 / P3 (الخطورة)
**Date:** [Date] (التاريخ)
**Duration:** [Start] to [End] ([total]) (المدة)
**Author:** [Name] (المؤلف)
## Executive Summary (الملخص التنفيذي)
[2-3 جمل: ما حدث، ما كان التأثير، كيف تم حله]
## Timeline (UTC) (الجدول الزمني)
| Time (الوقت) | Event (الحدث) |
|-------------|--------------|
| 03:12 | تنبيهات المراقبة تعمل لفقدان حزم على وصلة WAN |
| 03:16 | مركز العمليات يُقر بالتنبيه ويبدأ التحقيق |
| 03:22 | فتح مكالمة جسر، تعيين قائد الحادث |
## Impact (التأثير)
- **Users affected:** [عدد] (المستخدمون المتأثرون)
- **Services affected:** [قائمة] (الخدمات المتأثرة)
- **Revenue impact:** [تقدير] (تأثير الإيرادات)
## Root Cause (السبب الجذري)
[وصف واضح ومحدد لما سبب الحادث بالمبني للمعلوم]
## Action Items (بنود العمل)
| ID | Action (الإجراء) | Owner (المسؤول) | Due Date (تاريخ الاستحقاق) | Status (الحالة) |
|----|-----------------|----------------|--------------------------|----------------|
نصائح كتابة مراجعة ما بعد الحادث
- نبرة بلا لوم. اكتب "The monitoring gap allowed the issue to persist" — وليس "John failed to notice the alert."
- جداول زمنية محددة. استخدم طوابع زمنية UTC دقيقة، وليس "shortly after" أو "a while later."
- بنود قابلة للتنفيذ. كل بند عمل يجب أن يكون له مسؤول وتاريخ استحقاق.
- اربط بالمنع. كل بند عمل يجب أن يمنع أو يُخفف مباشرة من تكرار الحادث.
نموذج طلب تغيير الشبكة
قبل إجراء التغييرات، غالباً تحتاج تقديم طلب تغيير رسمي لموافقة CAB.
# Network Change Request (طلب تغيير الشبكة)
**Change ID:** CHG-[number] (معرف التغيير)
**Requestor:** [Name] (مقدم الطلب)
**Requested Window:** [Date, Start - End UTC] (النافذة المطلوبة)
## Change Description (وصف التغيير)
[فقرة واحدة: ما تُغيّره ولماذا]
## Business Justification (المبرر التجاري)
[لماذا هذا التغيير مطلوب — اربطه بنتائج الأعمال]
## Risk Assessment (تقييم المخاطر)
- **Impact:** Low / Medium / High (التأثير)
- **Likelihood of failure:** Low / Medium / High (احتمالية الفشل)
## Rollback Plan (خطة التراجع)
[إجراء خطوة بخطوة للتراجع عن التغيير]
توثيق خطة عناوين IP
خطة عناوين IP الموثقة جيداً تمنع التعارضات وتُسرّع استكشاف الأخطاء.
# IP Address Plan — [Site/Environment]
# خطة عناوين IP — [الموقع/البيئة]
## Allocation Summary (ملخص التخصيص)
| VLAN ID | Name (الاسم) | Subnet (الشبكة الفرعية) | Gateway (البوابة) | DHCP Range (نطاق DHCP) | Purpose (الغرض) |
|---------|-------------|----------------------|------------------|---------------------|----------------|
| 10 | Management | 10.1.10.0/24 | 10.1.10.1 | 10.1.10.100-.200 | إدارة أجهزة الشبكة |
| 20 | Servers | 10.1.20.0/24 | 10.1.20.1 | Static only | خوادم الإنتاج |
| 30 | Users | 10.1.30.0/22 | 10.1.30.1 | 10.1.30.50-.254 | أجهزة المستخدمين |
## Static Assignments (التخصيصات الثابتة)
| IP Address | Hostname | Device Type (نوع الجهاز) | Location (الموقع) |
|------------|----------|------------------------|------------------|
| 10.1.10.1 | core-rtr-01 | Core router (راوتر أساسي) | DC Rack A3 |
| 10.1.10.2 | core-rtr-02 | Core router (راوتر أساسي) | DC Rack B3 |
كتابة إجراءات التصعيد الواضحة
إجراءات التصعيد تُجيب على السؤال: "من أتصل به، ومتى، وكيف؟"
# Escalation Procedure — Network Incidents
# إجراء التصعيد — حوادث الشبكة
## P1 — Critical (حرج — انقطاع كامل)
| Elapsed Time (الوقت المنقضي) | Action (الإجراء) | Contact (التواصل) |
|---------------------------|-----------------|------------------|
| 0 دقيقة | افتح مكالمة جسر، نبّه المهندس المناوب | PagerDuty: network-oncall |
| 15 دقيقة | صعّد إلى مدير هندسة الشبكات | [الاسم]، [الهاتف] |
| 30 دقيقة | صعّد إلى مدير البنية التحتية | [الاسم]، [الهاتف] |
| 60 دقيقة | صعّد إلى نائب رئيس الهندسة | [الاسم]، [الهاتف] |
قواعد كتابة إجراءات التصعيد
- تضمين طرق اتصال دقيقة — ليس فقط الأسماء، بل أرقام الهواتف وخدمات PagerDuty وقنوات Slack.
- تحديد عتبات زمنية — "Escalate after 15 minutes" واضح؛ "Escalate if needed" ليس كذلك.
- تغطية تصعيد المورد — تضمين أرقام TAC ومعرفات العقود.
- التحديث ربع سنوياً — معلومات الاتصال تتغير بشكل متكرر.
هيكل تقرير تحليل السبب الجذري (RCA)
تقرير RCA هو وثيقة رسمية تذهب أعمق من مراجعة ما بعد الحادث. غالباً ما يكون مطلوباً للحوادث المواجهة للعملاء أو لأغراض الامتثال.
# Root Cause Analysis Report
# تقرير تحليل السبب الجذري
**Incident:** [Title] (الحادث: [العنوان])
**RCA Author:** [Name] (مؤلف RCA: [الاسم])
## 1. Incident Summary (ملخص الحادث)
[وصف موجز للحادث والمدة والتأثير]
## 2. Root Cause (السبب الجذري)
[السبب التقني الوحيد والمحدد. كن دقيقاً.]
## 3. Contributing Factors (العوامل المساهمة)
[عوامل أخرى جعلت الحادث أسوأ أو أخّرت الحل]
## 4. Corrective Actions (الإجراءات التصحيحية)
| Priority (الأولوية) | Action (الإجراء) | Owner (المسؤول) | Due Date (تاريخ الاستحقاق) |
|-------------------|-----------------|----------------|--------------------------|
## 5. Prevention (المنع)
[كيف تمنع هذه الإجراءات التصحيحية تكرار الحادث]
نصائح كتابة تقرير RCA
- سبب جذري واحد. إذا كان لديك عدة أسباب، اختر الأساسي وأدرج الباقي كعوامل مساهمة.
- كن محدداً. "Configuration error" (خطأ إعدادات) ليس سبباً جذرياً. "A typo in the BGP route-map (permit 10 instead of permit 20) caused the default route to be filtered" هو سبب جذري.
- ركّز على الأنظمة لا الأشخاص. "The monitoring system did not alert on certificate expiry" — وليس "The engineer forgot to renew the certificate."
- كل إجراء تصحيحي يحتاج تاريخ استحقاق ومسؤول. الإجراءات بدون مسؤولين لا تُنجز.
تهانينا على إكمال دورة الإنجليزية لمهندسي الشبكات! خذ الاختبار النهائي لاختبار معرفتك.
:::