אז מזה בכלל DNS ?? איך הוא עובד?? ולמה אני צריך אותו בכלל??
תתארו לעצמכם שאתם צריכים לגשת לשרת, מה אתם צריכים? את כתובת ה IP שלו, נכון!
אבל זה קצת מסובך לזכור כתובות IP ככה, פשוט יותר לזכור ולעבוד עם שמות מאשר כתובת IP . שימוש נפוץ זו זה שמות אתרי אינטרנט. (לגשת לאתר גוגל לדוגמא) לכן הומצא הפרוטוקול DNS!
הפרוטוקול DNS- Domain Name System – הוא פרוטוקול שמטרתו לתרגם שמות מחשב לכתובות IP ולהיפך.
על שרתי ה DNS נמצאות טבלאות המכילות שמות מחשב וכתובות IP. עובד בפורט 53 מסוג UDP.
תצורת עבודה של DNS הוא Client/Server – מחשבי הלקוח שולחים שאילתות DNS לשרת ה DNS ומקבלים את כתובת ה IP המתאימה. בכל דומיין חייב להיות לפחות שרת DNS אחד.
בכדי להשתמש במערכת DNS יש להגדיר את שרתי ה DNS אליהם יפנה המחשב לקבל שירות. ניתן להגדיר בכלי ה Ncpa.cpl (בכרטיס רשת).
אז איך זה עובד?
אם אני רוצה להגיע לאתר בשם: www.netme.co.il ,אז אני כותב בדפדפן שלי, בשורת ה URL, את כתובת האתר. המחשב לא יודע להתחבר לכתובת כזאת, כי לא מדובר פה בכתובת IP נומרית שהוא מסוגל להבין, אז הוא ניגש לשרת ה-DNS ,ומתשאל אותו לגבי הכתובת הזאת. שרת ה-DNS בודק ברשימה שלו לאיזה IP שייכת הכתובת שהוא נשאל לגביה, ומחזיר את כתובת ה-IP למחשב. אז הדפדפן שלי ניגש לכתובת ה-IP ושולח בקשת HTTP בכדי להשיג את המידע.
חשוב לציין שלושה עובדות אשר משפיעות מאוד על נושא האבטחה בפרוטוקול:
1. בכדי שהפרוטוקול ירוץ במהירות, פרוטוקול ה-DNS רץ על-גבי UDP כברירת מחדל, דבר שמצד אחד מזכה אותו במהירות, אך גם גורם לצרות כשמדובר באבטחה ואמינות.
2.בכדי לסדר יותר את עניין האמינות, שרת ה-DNS בוחר בפורט ראנדומאלי שממנו הוא שולח את המידע, ורק מהפורט הזה יהיה אפשר להחזיר לו את המידע, אך את המידע השולח יקבל, כברירת מחדל, בפורט 53.
3.בכל תשאול, שרת ה-DNS מחולל ID מיוחד, שרק בעזרת צירופו לתשובה, הוא יוכל לדעת כי אכן מדובר בשרת שאותו הוא תשאל.
במצבים ובהן שרת ה-DNS מבין כי אין ברשותו את המידע שביקשנו (כתובת הדומיין אינה נמצאת ברשימותיו) הוא מתשאל את שרת ה-DNS שמעליו, המכיל כתובות גלובליות יותר, ומבצע תשאול רקורסיבי עד שהוא מגיע לכתובת המדוייקת.
מוזמנים לבצע ipconfig/ flushdns
לפתוח Wireshark ולנסות לגלוש ל google.co,il ולראות את ביצוע השאילתה