ثلاث خدمات أساسيّة تَجعل الإنترنت قابلاً للاستخدام : DHCP يُوزّع عَناوين IP تلقائيّاً على الأجهزة المُتّصلة بالشّبكة، DNS يُترجم الأسماء (مثل cisco.com) إلى عَناوين IP، وNAT/PAT يُتيح لعدّة أجهزة بِعَناوين خاصّة الوصول إلى الإنترنت عبر عُنوان عامّ واحد. كلّ هذه الخدمات تُعَدّ بسهولة على مُوجّه سيسكو، ولهذا تَظهر بِشكل دائم في امتحان CCNA 200-301 (قسم خدمات IP، 10%). هذا الدّرس يُغطّي الإعداد العمليّ لكلّ خدمة، مع أوامر show للتّحقّق ومُعالجة الأخطاء الشّائعة.
المتطلّبات
- Cisco Packet Tracer أو مَختبر مماثل
- إلمام بِأوامر IOS الأساسيّة وعَناوين IP
- فهم تَكوين الواجهات والـ VLAN (انظر VLAN، Trunk 802.1Q)
- الوقت المُقدّر : 75 دقيقة
الخطوة 1 — DHCP على مُوجّه سيسكو
يَعمل DHCP على مَنوال طلب-عَرض (DORA : Discover, Offer, Request, Acknowledge). يَطلب الجهاز عُنواناً، يُرسل DHCP Server عَرضاً، يَقبل الجهاز، يَستلم التّأكيد مع باراميترات كاملة (IP، subnet mask، gateway، DNS).
# على R1 (سَيَكون DHCP Server)
R1(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.20
# نَستثني العَناوين الأولى للأجهزة الثّابتة (المُوجّه، الطّابعة، الخادم)
R1(config)#ip dhcp pool LAN_USERS
R1(dhcp-config)#network 192.168.1.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.1.1
R1(dhcp-config)#dns-server 8.8.8.8 1.1.1.1
R1(dhcp-config)#domain-name itskillscenter.io/
R1(dhcp-config)#lease 7
R1(dhcp-config)#exit
# تَحقّق
R1#show ip dhcp pool
R1#show ip dhcp binding
# IP address Client-ID/Hardware address Lease expiration
# 192.168.1.21 0100.1234.5678.90 Mar 26 2026 02:30 AM
R1#show ip dhcp conflict
الـ lease 7 يُحدّد مدّة الإيجار بـ 7 أيّام (الافتراضي هو 24 ساعة). الجهاز يُحاول تَجديد بعد نِصف المدّة (3.5 يوماً) قبل الانتهاء. لِحركة المرور القَصيرة (مَطار، فندق، wifi عامّ)، اِضبط lease لساعة أو أقلّ.
الخطوة 2 — DHCP Relay مع ip helper-address
إذا كان DHCP Server في شبكة مُختلفة عن العميل (سيناريو شائع في الشّركات : Server المركزيّ، عملاء في عشرات الـ VLAN)، الـ DHCP Discover لا يَعبر المُوجّه طبيعيّاً (broadcast). الحلّ : ip helper-address على الواجهة المُتّصلة بالعملاء.
# سيناريو : DHCP Server على 192.168.100.10
# العملاء على VLAN 10 (192.168.10.0/24)
# المُوجّه R1 يَخدم VLAN 10
R1(config)#interface gigabitEthernet 0/0.10
R1(config-subif)#encapsulation dot1q 10
R1(config-subif)#ip address 192.168.10.1 255.255.255.0
R1(config-subif)#ip helper-address 192.168.100.10
# الآن، DHCP Discover من العملاء على VLAN 10 يُعاد توجيهه
# إلى 192.168.100.10 كـ unicast، الـ Server يَرد، المُوجّه يُمرّر
يُمكن إضافة عدّة ip helper-address على نفس الواجهة لتَكرار DHCP (redundancy). الـ helper يُعيد توجيه أيضاً TFTP، NTP، DNS الـ broadcasts افتراضيّاً، يُمكن تَخصيص ذلك بـ ip forward-protocol.
الخطوة 3 — تَكوين العميل DHCP
# على واجهة المُوجّه (إذا كان عميلاً)
R2(config)#interface gigabitEthernet 0/1
R2(config-if)#ip address dhcp
R2(config-if)#no shutdown
# تَحقّق
R2#show ip interface gigabitEthernet 0/1
# GigabitEthernet0/1 is up, line protocol is up
# Internet address is 192.168.1.21/24 (provided by DHCP)
# Broadcast address is 255.255.255.255
# تَحديث الإيجار يَدويّاً
R2#release dhcp gigabitEthernet 0/1
R2#renew dhcp gigabitEthernet 0/1
الخطوة 4 — DNS على مُوجّه سيسكو
المُوجّه يَستطيع التّصرّف كعميل DNS (لتَرجمة الأسماء التي تَكتبها في CLI، مثل ping cisco.com) وكخادم DNS بسيط للشّبكة الدّاخليّة.
# على R1 — العميل DNS
R1(config)#ip name-server 8.8.8.8 1.1.1.1
R1(config)#ip domain-lookup
R1(config)#ip domain-name itskillscenter.io/
# تَحقّق
R1#ping cisco.com
# Translating "cisco.com"...domain server (8.8.8.8) [OK]
# Type escape sequence to abort.
# Sending 5, 100-byte ICMP Echos to 72.163.4.185, timeout is 2 seconds:
# !!!!!
# تَعطيل DNS lookup (مفيد إذا أَخطأت في طَلب)
R1(config)#no ip domain-lookup
# الآن إذا أَخطأت في كتابة أمر، لا يَنتظر DNS resolution
نَصيحة : دائماً no ip domain-lookup على مُوجّهات معامل CCNA. سَبب : إذا أَخطأت في كتابة أمر، IOS يَعتبره hostname ويُحاول تَرجمته عبر DNS، مما يُجمّد جلسة CLI لـ 30 ثانية. أزعَج للغاية في الامتحان.
الخطوة 5 — DNS مُسجَّل محلّيّاً (مَفيد للمعامل)
# تَسجيل أسماء يَدويّاً على المُوجّه (host table محلّي)
R1(config)#ip host R2 10.0.12.2
R1(config)#ip host R3 10.0.23.2
R1(config)#ip host SERVER 192.168.100.10
# تَحقّق
R1#show hosts
# Host Port Flags Age Type Address(es)
# R2 (perm, OK) 0 IP 10.0.12.2
# R3 (perm, OK) 0 IP 10.0.23.2
# SERVER (perm, OK) 0 IP 192.168.100.10
# الآن يُمكنك :
R1#ping R3
# لا حاجة لـ DNS خارجي
الخطوة 6 — NAT الثّابت (Static NAT)
NAT (Network Address Translation) يَترجم عَناوين IP بيْن شَبكتيْن. Static NAT : ترجمة 1-إلى-1 ثابتة. مفيد لخادم داخلي يَجب الوصول إليه من الإنترنت بعُنوان عامّ ثابت.
# سيناريو : خادم Web داخلي 192.168.1.10
# يَجب أن يَكون قابلاً للوصول من الإنترنت على 200.1.1.10
R1(config)#interface gigabitEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#ip nat inside # الواجهة الدّاخليّة
R1(config-if)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 200.1.1.1 255.255.255.0
R1(config-if)#ip nat outside # الواجهة الخارجيّة (نحو ISP)
R1(config-if)#exit
R1(config)#ip nat inside source static 192.168.1.10 200.1.1.10
# تَحقّق
R1#show ip nat translations
# Pro Inside global Inside local Outside local Outside global
# --- 200.1.1.10 192.168.1.10 --- ---
# الزّبائن على الإنترنت يَستطيعون الآن طَلب http://200.1.1.10
# المُوجّه يُترجم الوجهة إلى 192.168.1.10 ويُمرّر الطّلب للخادم
الخطوة 7 — Dynamic NAT (مَجموعة عَناوين)
Dynamic NAT : ترجمة من شبكة داخليّة (مع عدد كبير من الأجهزة) إلى مَجموعة من العَناوين العامّة. كلّ جهاز داخلي يَحصل على عنوان عامّ مؤقّت من المَجموعة لمدّة الجلسة.
# سيناريو : شبكة داخليّة 192.168.1.0/24
# مَجموعة عَناوين عامّة 200.1.1.10-200.1.1.20
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)#ip nat pool MY_POOL 200.1.1.10 200.1.1.20 netmask 255.255.255.0
R1(config)#ip nat inside source list 1 pool MY_POOL
# تَحقّق بَعد بَعض الحركة
R1#show ip nat translations
# Pro Inside global Inside local Outside local Outside global
# --- 200.1.1.10 192.168.1.10 --- ---
# --- 200.1.1.11 192.168.1.20 --- ---
القَيد الرّئيسي للـ Dynamic NAT : عند نفاد العَناوين في الـ pool، الأجهزة الجديدة لا تَستطيع الخروج. للشّبكات الكبيرة، نَستخدم PAT.
الخطوة 8 — PAT أو NAT Overload (الأكثر استخداماً)
PAT (Port Address Translation) أو NAT Overload : كلّ الأجهزة الدّاخليّة تَخرج بنفس العُنوان العامّ، لكنّ المُوجّه يُمَيّز بَيْنها بأرقام المنافذ. هذا ما يَستخدمه معظم الراوترات المنزليّة وكثير من شَركات الإنترنت.
# سيناريو : شبكة 192.168.1.0/24 تَخرج عبر عُنوان واحد 200.1.1.1
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)#ip nat inside source list 1 interface gigabitEthernet 0/1 overload
# الكلمة المفتاحيّة overload هي PAT
# تَحقّق
R1#show ip nat translations
# Pro Inside global Inside local Outside local Outside global
# tcp 200.1.1.1:1024 192.168.1.10:50101 8.8.4.4:443 8.8.4.4:443
# tcp 200.1.1.1:1025 192.168.1.20:50102 1.1.1.1:443 1.1.1.1:443
# المنافذ المؤقّتة (1024+) تُسمح بِتمييز الأجهزة الدّاخليّة
PAT يَدعم نَظريّاً 65 ألف ربط متزامن لكلّ عُنوان عامّ (عدد المنافذ المُحتمل). عمليّاً، 30-40 ألف بِسبب القيود الأخرى. يَكفي لـ شبكة عاديّة بـ 1000+ مُستخدم.
الأخطاء الشّائعة
| الخطأ | السّبب | الحلّ |
|---|---|---|
| العملاء لا يَستلمون IP من DHCP | نسيان no shutdown على واجهة المُوجّه |
تَحقّق من حالة الواجهة، أعِد تَفعيلها |
| DHCP relay لا يَعمل | غياب ip helper-address |
اِضبط helper-address على كلّ واجهة LAN |
| NAT لا يَترجم | نَسيان ip nat inside/outside |
كلّ واجهة يَجب أن تَكون مَوسومة inside أو outside |
| PAT يَنفد رغم 65k منافذ | عَدَم انتهاء صلاحيّة المداخل القديمة | clear ip nat translation * أو ضَبط timeout |
| الزّبائن يَنالون gateway خاطئ | قاعدة default-router في pool خاطئة |
تَحقّق من عُنوان واجهة LAN على المُوجّه |
| المُوجّه يَنتظر 30 ثانية على أمر خاطئ | DNS lookup مُفعّل | no ip domain-lookup |
أسئلة شائعة
الفرق بيْن NAT و PAT ؟
NAT : ترجمة 1-إلى-1 (عُنوان لكلّ جهاز). PAT : ترجمة 1-إلى-عدّة بِاستخدام المنافذ (عُنوان واحد لكثير من الأجهزة). PAT أكثر شيوعاً.
هل DHCP يَعمل عبر VLAN ؟
لا مُباشَرةً. تَحتاج إلى DHCP Relay (ip helper-address) على كلّ sub-interface أو SVI من المُوجّه/Layer 3 switch.
لماذا لا أَستطيع ping من الدّاخل إلى عنوان NAT العامّ ؟
NAT hairpin معطّل افتراضيّاً. الحلّ : split-horizon DNS (DNS مختلف داخلياً وخارجيّاً) أو تَفعيل hairpin على المُوجّه.
أيّ أفضل، DHCP على المُوجّه أم على Windows Server ؟
المُوجّه أبسط للشّبكات الصّغيرة. Windows Server / Linux DHCP أفضل للشّبكات الكبيرة (إدارة مركزيّة، تَكامل مع Active Directory، حجوزات بِالـ MAC).
هل CCNA يَختبر IPv6 NAT ؟
IPv6 لا يَحتاج NAT بِشكل عامّ (مساحة عَناوين هائلة). لكنّ NAT64 و DNS64 يَظهران في CCNP. CCNA يَركّز على NAT/PAT لـ IPv4.
للتّعمّق
بعد إتقان خَدمات IP، الخطوة المنطقيّة هي تَأمين الموزّعات ضدّ الهجمات بـ أمن الطّبقة الثّانية. للنّظرة الشّاملة، انظر الدّليل الرّئيسي CCNA.