کنترل درخواست های DNS توسط روتر سیسکو DNS Doctoring
کنترل درخواست های DNS توسط روتر سیسکو DNS Doctoring
من هیچ وقت و به هیچ وجه توصیه نمیکم که مثل اینها که فکر میکنند خیلی اعجاب انگیز است که یک روتر سیسکو بتواند DNS Server هم باشد ! چون از نطر من اصلا برای این کار بهینه نشده این یک فعالیت غیر معمول است و کار تمیزی نیست ! ولی اگر شما سرچ کنید Configure Cisco Router as DNS server مقادر انبوهی سایت میبینید که طوری مطلب را تعریف کرده اند که انگار روتر قرار است با شما بشیند و سیگار بکشد و درد و دل کند ….
من به شخصه معتقدم بهترین استفاده از این فیچر میتواند در هاست های local روی خود روتر باشد ، بدین ترتیب که شما هیچ Resolver ی برای روتر تعریف نکنید و از این کامند هم محض بی ربطی استفاده کنید no ip domain lookup !
بعد میتوانید هاست های مورد نیاز را دستی تعریف کرده و از شر لاشخورهایی که در عرض 2 روز ترافیک DNS خود را به سمت روتر شما سرازیر میکنند خلاص کنید ! من برای اثبات اینکه این فیچر در حالت Resolver بدرد نخور ترین امکانیست که طراح در یک روزی که به شدت مست بوده به ذهن نئشه اش خطور کرده و آنرا در IOS چپانده ، بر روی پلت فرم های مختلف ، این سرویس را run و ترافیک مثلا 8.8.8.8 را بر رویش سرازیر کردم و با ناباوری ، روتر 7206 VXR G2 و ISR 3945 کاملا بالای 85% لود داشتند ! پس به این نتیجه میرسیم که حتی به این مسئله فکر هم نکنید …
مسئله دیگر DNS Doctoring in Some way است ! بدین معنی که شما بتوانید در شبکه خود رفتار و پاسخ DNS Request ها را به نفع خود و یا بقیه کنترل کنید . کاری که در حال حاظر مخابرات ایران انجام میدهد !
شما تصور کنید که میخواهید ، مشترکین از هر DNS سرور Public روی اینترنت که استفاده کردند ، ترافیک DNS به سمت DNS Server مورد نظر شما روانه و پاسخ های مورد نظر شما دریافت شود ، برای مثال شما میخواهید همیشه مثلا فلان URL به آدرس فیلترینگ شما که مثلا 10.10.11.11 است ، Poiny کند ، راه حل چیست ؟
بعضی اقدام به بومی سازی یا Localize ممودن DNS سرور های مشهور مثل 8.8.8.8 4.2.2.4 192.9.9.3 , … می نمایند ، که این روش بسیار کودکانه و اشتباه است ، حال من چه پیشنهادی دارم ؟ به نظر بنده مردم را نباید محدود کرد ، بروند و ببینند که کجا را فتح میکنند ، ولی شما محدودیت میخواهید ، راهش این است :
روش کار به این صورت است که ما کا ترافیک DNS خروجی شبکه را TAG میکنیم و به سمت DNS سرور خودمان سرازیر میکنیم و در DNS Server خودمان هر بلایی که خواستیم ، سر Request ها میاوریم !
ابتدا تگ کردن ترافیک :
Aka-Core-Router(config)#ip acce e 110
Aka-Core-Router(config-ext-nacl)#per udp an an eq 53
Aka-Core-Router(config-ext-nacl)#per tcp an an eq 53
Aka-Core-Router(config-ext-nacl)#den
Aka-Core-Router(config-ext-nacl)#deny ip an
Aka-Core-Router(config-ext-nacl)#deny ip any an
Aka-Core-Router(config-ext-nacl)#deny ip any any
Aka-Core-Router(config-ext-nacl)#exit
route کردن ترافیک به DNS Server مورد نظر :
Aka-Core-Router(config)#route-map dns per 10
Aka-Core-Router(config-route-map)#match ip address 110
Aka-Core-Router(config-route-map)#set ip next-hop 217.218.127.127
Aka-Core-Router(config-route-map)#exit
Aka-Core-Router(config)#route-map dns per 20
Aka-Core-Router(config-route-map)#exit
با اعمال کردن این Route-Map به اینترفیس خروجی اصلی یا هر اینترفیس که مورد نظر ماست ، و کانفیگ DNS Server خود ، میتوانید کل کرافیک DNS را فارغ از اینکه کاربر از چه DNS سروری استفاده میکند ، به سمت DNS Server مورد نظر سرازیر نمود.
تست :
Before :
C:\Users\Aka>nslookup – 8.8.8.8
Default Server: google-public-dns-a.google.com
Address: 8.8.8.8
> yahoo.com
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
Name: yahoo.com
Addresses: 206.190.36.45
98.138.253.109
98.139.183.24
After :
C:\Users\Aka>nslookup – 8.8.8.8
Default Server: google-public-dns-a.google.com
Address: 8.8.8.8
> yahoo.com
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
Name: yahoo.com
Address: 10.10.11.11
C:\Users\Aka>nslookup – 4.2.2.4
Default Server: d.resolvers.level3.net
Address: 4.2.2.4
> yahoo.com
Server: d.resolvers.level3.net
Address: 4.2.2.4
Non-authoritative answer:
Name: yahoo.com
Address: 10.10.11.11
ملاحظه میکنید که پاسخ Request های ما به آنچه دوست داشتیم تغییر کرده و این بعنی زور !!
البته شما میتوانید به جای یک DNS Server خارجی ، ازخود روتر استفاده کنید ، که البته کمی کانفیگ متفاوت میشود ، ولی با توجه به توصیه های ابتدایی پست ، من به هیچ وجه توصیه نمیکنم .
نکته دیگری هم که ممکن است دوستان وارد و مهندس به من و این نوشتار وارد کنند شاید این باشد که این کار DNS Doctoring نیست ، باید عذض کنم که بنده هم عرض کردم که DNS Doctoring in some way ولی در کل منظور از DNS Doctoring ، ترجمه درخواست های DNS حالا مثلا توسط ASA سیسکو است . البته که این هم بضاعت ماست !