می دانیم روترها بستههای Broadcast را از خود عبور نمیدهند و Route نمیکنند. اگر روتر یا سوئیچی که در حالت لایه ۳ باشد، فریمی دریافت کند که مقصد بسته در لایه دو برادکست، یعنی FF:FF:FF:FF:FF:FF باشد و در لایه سوم مقصد بسته ۲۵۵.۲۵۵.۲۵۵.۲۵۵ باشد، آن بسته را در لایههای بالاتر بررسی میکند. اگر در لایههای بالاتر متوجه شود که مقصد و هدف بسته خودش است، جواب بسته را میدهد. (مثلا DHCP Discover، مقصد این بسته در لایه دو و سه برادکست است ولی در لایه چهارم از پروتکل UDP و لایه هفتم DHCP استفاده میکند. اگر روتری این بسته را دریافت کند بعد از تحلیل بسته در لایه دوم و سوم متوجه نمیشود که آیا مقصد این بسته خودش است یا خیر. پس مجبور است بسته را در لایه بالاتر تحلیل کند. اگر بر روی روتر سرویس DHCP فعال باشد یعنی بر روی پورت UDP 67 به اصطلاح Listen کند بسته را در لایه هفتم بررسی میکند و خود را مقصد بسته میداند و جواب بسته را ارسال میکند)
حال اگر بر روی روتر سرویس DHCP فعال نباشد، روتر بعد از تحلیل بسته در لایههای دوم و سوم، نمیداند که مقصد بسته خودش است یا خیر و مجبور است در لایه چهارم بررسی کند. چون روتر سرویس DHCP نمیدهد و روی پورت ۶۷ از UDP سرویس نمیدهد، بسته را در لایه چهارم رها کرده و Drop میکند.
نکته: یکی از حملات خطرناکی که باعث اختلال در شبکه و از کار افتادن سرویسها میشود، Broadcast Storm است. Attacker فریمهای برادکست را با سرعت بالا در شبکه پخش میکند. سوئیچ این بستهها را علاوه بر flood کردن بر روی تمامی پورتها، تحلیل نیز میکند و تمامی دستگاههای داخل یک Broadcast Domain مجبور به تحلیل این بستهها هستند. قسمت خطرناکتر آنجاست که بستههای Broadcast را در دستگاههای شبکه، مستقیم CPU تحلیل میکند. زیرا اکثر بستههای برادکست جزو قسمت Control Plane میباشند.
DHCP Discover و ARP Request دو نوع ترافیک از جنس برادکست میباشد که معروف است. البته بستههای ARP هدر IP ندارند و فقط در لایه دو برادکست میباشند.
UDP Relay یا IP Helper چیست؟
شما به کمک این ویژگی میتوانید در اینترفیسهای روتر یا سوئیچ لایه سه، بستههای از جنس UDP که مقصد آنها Broadcast میباشند را Unicast کنید.
به شکل زیر توجه کنید:
فرض کنید که یکی از کامپیوتر ها به سوئیچ درخواست DHCP ارسال کند. چون مقصد این فریم در لایه دوم برادکست است، سوئیچ آن را بر روی همه پورت های خود ارسال می کند و روتر آن را دریافت می کند. چون مقصد بسته در لایه دوم و سوم برادکست است، روتر آن را در لایه چهارم بررسی می کند. چون روتر سرویس DHCP نمی دهد بسته را دور می ریزد و هیچ گاه کامپیوتر ها نمی توانند از DHCP Server تنظیمات TCP/IP را دریافت کنند.
این مشکل از آنجایی سرچشمه گرفت که DHCP Server و کامپیوتر های در دو Broadcast Domain جدا هستند و روتر نمی تواند بسته های برادکست را بین دو Broadcast Domain مسیریابی کند.
این مشکل قابل حل است و فقط کافی است روی اینترفیسی از روتر که در Broadcast Domain کامپیوتر های است بسته های DHCP را Unicast کنیم سمت سرور DHCP که این کار معروف به UDP Relay می باشد.
برای انجام تنظیمات UDP Relay در سوئیچ های Cisco Small Business یک مثال شرح می دهیم.
به شکل زیر دقت کنید:
می دانیم DNS پروتکل لایه هفتی می باشد که در لایه چهارم از UDP با پورت ۵۳ استفاده میکند و معمولا مقصد بسته های آن در لایه دو و سه Unicast می باشد.
ولی در مثال ما آدرس DNS سرور در PC-1 و PC-2 به صورت ۲۵۵.۲۵۵.۲۵۵.۲۵۵ می باشد. یعنی PC-1 و PC-2 درخواست های Query DNS خود را به مقصد برادکست ۲۵۵.۲۵۵.۲۵۵.۲۵۵ ارسال می کند و سوئیچ Catalyst 2960 آن بسته ها را بر روی تمامی پورت های عضو VLAN 10 ارسال می کند.
حال که بسته DNS به سوئیچ SG300 رسید، سوئیچ که در حالت L3 می باشد بسته را در لایه دو و سه بررسی می کند و متوجه نمی شود که آیا مقصد بسته خودش است یا خیر. پس مجبور است بسته را در لایه چهارم که UDP است بررسی کند. چون SG300 در شبکه DNS Server نیست، نمی تواند سرویس DNS دهد و بسته را در لایه ۴ دور می ریزد.
مشکل کجاست؟
درخواست های DNS کامپیوتر ها از نوع UDP و برادکست است و به خاطر برادکست بودن آن ها SG300 آن ها را دور میریزد.
راه حل:
باید در SG300 قابلیت UDP Relay را پیاده سازی کنیم تا بسته های DNS کامپیوتر ها را Unicast کند سمت DNS Server شبکه با آدرس ۱۹۲.۱۶۸.۲۰.۱۰۰.
به صفحه Web از سوئیچ SG300 متصل شوید و در قسمت IP Configuration گزینه UDP Relay/IP Helper را انتخاب کنید.
روی گزینه Add کلیک کنید.
Source IP Interface: آدرس IP ای که بر روی آن پورت بسته های برادکست دریافت می شود را مشخص کنید (در مثال ما GE 10 با آدرس ۱۹۲.۱۶۸.۱۰.۱ می باشد)
UDP Destination Port: کدام ترافیک های UDP را Unicast کند.(در مثال ما DNS یا Domain می باشد که پورت آن UDP 53 می باشد)
Destination IP Address: آدرس سرور و Unicast را مشخص می کنید.(در مثال ما آدرس DNS Server برابر با ۱۹۲.۱۶۸.۲۰.۱۰۰ می باشد)
نکته: فقط ترافیک های UDP که برادکست هستند را با IP Helper یا UDP Relay می توانید Unicast کنید.
نکته: در سوئیچ های اسمال بیزینس برای Unicast کردن ترافیک های DHCP از قسمت UDP Relay استفاده نمیکنید. در قسمت DHCP Relay به صورت مجزا استثنا باید انجام شود که در مقاله دیگری به آن می پردازیم.
در شکل زیر ساختار بسته DNS را قبل از UDP Relay می بینید:
بعد از این که SG300 بسته را Unicast به سمت سرور ارسال کرد ( After UDP Relay)
نکته: بعد از Unicast کردن ترافیک به سمت سرور، سرور در جواب بستهها را به مقصد کامپیوترها ارسال می کند. زیرا سوئیچ هنگام UDP Relay کردن، آدرس مبدا ترافیک را عوض نکرده است.