كيف يقوم الروتر بتمرير الـBroadcast ؟
موضوعي اليوم خاص للمبتدئين والذي طالما سُئلت عنه لاننا كما نعلم أصبحت معظم الشبكات الداخلية تعتمد على الـ DHCP لأعطاء الأجهزة التى تعمل على الشبكة المعلومات اللازمة للأتصال بالشبكة وأقصد بالمعلومات أي الايبي والماسك والـ Gatewayوأخيرا الـ DNS وللحصول على هذه المعلومات من سيرفر DHCP يجب أن يتوفر عندناDHCP Client مثبت على النظام ولكي يتصل مع السيرفر يقوم بأرسال Broadcast على الشبكة لكي يحدد مكان السيرفر وبالتالي الحصول على مايريده ,لكن بشرط واحد ان تكون الاجهزة والسيرفر موجودة على شبكة واحدة لكن ماذا سوف يحدث لو كانت الشبكة تحوي عدة فروع ولكل فرع له شبكة مختلفة وعنوان مختلف ؟ هل سوف نقوم بوضع سيرفر للـ DHCP على كل فرع ؟ الجواب طبعا لا ,لاننا ببساطة نستطيع ان نضع سيرفر واحد نصل كل الفروع عليه للحصول على المعلومات اللازمة وطبعا وجود عدة فروع هذا يعني وجود روترات بينها والروترات كما هو معروف عنها انها لاتقوم بتمريرالـ Broadcast اذا كيف سوف يمر طلب العميل الى السيرفر الرئيسي وهو موضوعنا اليوم كيف أسمح للروتر بتمرير الـBroadcast ؟ ولكي نبدأ موضوعنا سوف أستعين بهذه الصورة
كما نرى فرعين منفصلين ولكل فرع له شبكته الخاصة والاثنان مرتبطان بالفرع الرئيسي الذي يحوي سيرفر الـ DHCP ولكي نسمح بمرور الـ Broadcast عبر الروتر قامت سيسكو بعمل خأصية جميلة تدعىIP helper address تقوم هذه الخاصية بتحويل الـBroadcastالقادم من أحد البورتات الى عنوان انت تقوم بأعداده على شكل Unicast وبكلام آخر عندما يقوم الـPC1 بأطلاق Broadcastلكي يستطيع ان يحدد مكان السيرفر يصل هذا الـ Broadcast إلى الروتر ويقوم الروتر بتمريره على شكل Unicast يصل الى سيرفر الـ DHCPويقوم السيرفر بعدها بالرد على الطلب وايصال المعلومات المطلوبة الىPC1 أما عن طريقة إعداده فهي في غاية السهولة ولا تتطلب منك إلا أمرا واحد تقوم بإدخاله الى كلInterface متصل مع احد الفروع التى تريد التواصل مع سيرفر الـDHCP وذلك من خلال الأمر التالي
Router>en
Router#configure terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip helper-address (ip dhcp server
Router>en
Router#configure terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip helper-address (ip dhcp server
Router#configure terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip helper-address (ip dhcp server
ومابين القوسين أضع ايبي السيرفر الخاص بي ال DHCP طبعا هذا ليس كل شيء في موضوعنا لاني عندما قررت أن أكتب هذا الموضوع لم يكن هذا هدفي الوحيد هدفي الرئيسي هو أيضاح امر في غاية الاهمية وهو IP forward-protocol udpالذي يستخدم مع الـIP helper-address فعندما نستخدم الـ IP helper-address فقط على الانترفيس المرتبط مع أحد الشبكات نحن في هذه الحالة نسمح لكل أنواع الـ Broadcastبالعبور وهي by defaultموضحة بالجدول التالي Name Udp port Time Protocol 37 TACACS 49 DNS 53 BOOTP Client 67 BOOTP Server 68 TFTP 69 NetBios 137 NetBios Datagram 138
أما عندا إضافتنا للأمر IP forward-protocol udp فنحن في هذه الحالة نسمح لبورتات محدده بالعبور فقط وبالتالي نحن نسمح لأنواع معينه من الـ Broadcast,وفي المثال القادم انا سوف اسمح للـ DHCP فقط بالعبور ولنقوم بهذاالأمر سوف أنفذ الخطوات التالية
Name | Udp port |
Time Protocol | 37 |
TACACS | 49 |
DNS | 53 |
BOOTP Client | 67 |
BOOTP Server | 68 |
TFTP | 69 |
NetBios | 137 |
NetBios Datagram | 138 |
Router(config)# configure terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip helper-address (ip dhcp server
Router(config-if)#exit
Router(config)#no ip forward-protocol udp 37
Router(config)#no ip forward-protocol udp 49
Router(config)#no ip forward-protocol udp 53
Router(config)#no ip forward-protocol udp 69
Router(config)#no ip forward-protocol udp 137
Router(config)#no ip forward-protocol udp 138
Router(config)# configure terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip helper-address (ip dhcp server
Router(config-if)#exit
Router(config)#no ip forward-protocol udp 37
Router(config)#no ip forward-protocol udp 49
Router(config)#no ip forward-protocol udp 53
Router(config)#no ip forward-protocol udp 69
Router(config)#no ip forward-protocol udp 137
Router(config)#no ip forward-protocol udp 138
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip helper-address (ip dhcp server
Router(config-if)#exit
Router(config)#no ip forward-protocol udp 37
Router(config)#no ip forward-protocol udp 49
Router(config)#no ip forward-protocol udp 53
Router(config)#no ip forward-protocol udp 69
Router(config)#no ip forward-protocol udp 137
Router(config)#no ip forward-protocol udp 138