6.4 תהליך הDNS הרצאה
תהליך ה-DNS בלינוקס¶
הDNS (Domain Name System) הוא מערכת ניהול שמות דומיינים ברשת האינטרנט, המאפשרת לתרגם שמות דומיינים כמו google.com לכתובת IP שניתן לגשת אליה. בתהליך ה-DNS, כאשר אנו מנסים לגשת לאתר כלשהו באמצעות שם דומיין, המחשב מבצע סדרת פניות לשרתים שונים כדי לקבל את כתובת ה-IP המתאימה.
במערכות לינוקס, תהליך ה-DNS מתבצע באמצעות תוכנה שנקראת resolver, אשר אחראית לשלוח בקשות DNS לשרת DNS ולתרגם את שמות הדומיינים.
כיצד תהליך ה-DNS פועל?¶
-
חיפוש בקובץ
/etc/hosts
ברגע שערכת ה-DNS מבקשת להמיר שם דומיין לכתובת IP, המערכת בודקת קודם כל אם יש רשומה עבור שם הדומיין בקובץ/etc/hosts. בקובץ זה ניתן להוסיף רשומות של שמות דומיינים וכתובת ה-IP המתאימה להם. -
פנייה לשרת DNS
אם לא נמצא שם הדומיין בקובץ/etc/hosts, המערכת פונה לשרת DNS באמצעות הפנייה לשרת DNS מוגדר. השרת אחראי לשלוח את הבקשה לשרתים אחרים אם הוא לא יכול למצוא את המידע בעצמו. -
הCache DNS
כדי למנוע פניות חוזרות לשרתים חיצוניים ולשפר את ביצועי המערכת, המחשב שומר תוצאות של חיפושים קודמים ב-DNS cache.
פקודות nslookup ו-dig¶
פקודת nslookup¶
הפקודה nslookup (Name Server Lookup) מאפשרת לשלוח בקשות DNS ידניות, ולהציג את כתובת ה-IP של שם הדומיין, או את שם הדומיין של כתובת IP.
- חיפוש עבור דומיין:
- חיפוש עבור כתובת IP:
- הצגת פרטי שרת ה-DNS שבו השתמשה הבקשה:
פקודת dig¶
הפקודה dig (Domain Information Groper) היא כלי מתקדם יותר לניהול DNS. dig מספקת הרבה יותר מידע ומאפשרת לשלוח סוגים שונים של בקשות לשרת ה-DNS.
- חיפוש עבור דומיין:
- הצגת רק כתובת ה-IP:
- הצגת מידע נוסף, כמו שרתי DNS המשויכים לדומיין:
- הגדרת שרת DNS אחר לבקשה:
שינוי שרת DNS¶
לינוקס משתמשת בקובץ /etc/resolv.conf כדי להגדיר את שרת ה-DNS שממנו ייעשו החיפושים. במערכת מבוססת דביאן (כגון אובונטו), ניתן לשנות את השרתים על ידי עריכת הקובץ כך:
- עריכת הקובץ:
- הוספת או שינוי שרת DNS: לדוגמה, כדי להגדיר את השרת של גוגל:
לאחר מכן יש לשמור את הקובץ.
הערה: במערכות מסוימות, קובץ זה עשוי להתעדכן אוטומטית על ידי תוכנות ניהול רשת, לכן יש לקחת זאת בחשבון.
הוספת DNS Suffix¶
כדי להוסיף DNS suffix (חלק נוסף של שם דומיין שמתווסף לשם הדומיין בעת חיפוש), יש לערוך את קובץ הקונפיגורציה /etc/resolv.conf ולהוסיף את האפשרות search.
- עריכת הקובץ:
- הוספת DNS Suffix: לדוגמה, אם נרצה להוסיף את ה-suffix "example.com" לכל חיפוש DNS, נוסיף את השורה:
קובץ /etc/hosts¶
הקובץ /etc/hosts בלינוקס הוא קובץ טקסט פשוט שבו אפשר להוסיף קשרים בין כתובות IP לשמות דומיינים. השימוש בקובץ זה עוזר למנוע פניות לשרת DNS עבור שמות דומיינים ידועים, ובכך לשפר ביצועים ולמנוע בעיות של זמינות.
דוגמה לקובץ /etc/hosts:
כדי להוסיף רשומה חדשה לקובץ, יש לפתוח אותו עם עורך טקסט (כמו nano) ולהוסיף את כתובת ה-IP ושם הדומיין המתאים.
ניקוי DNS Cache¶
על מנת לנקות את ה-DNS cache במערכת לינוקס, יש להשתמש בפקודות שמפסיקות את שירות ה-DNS cache. במערכות מבוססות systemd, אפשר לבצע את הניקוי כך:
- ניקוי DNS cache ב-
systemd:
- ניקוי DNS cache ב-
nscd(אם מותקן):
- ניקוי DNS cache ב-
dnsmasq(אם מותקן):
ניקוי ה-DNS cache יכול להיות מועיל כשיש שינויים ב-DNS שנעשו לאחרונה, או כשיש צורך לתקן בעיות חיבור.
סיכום¶
- תהליך ה-DNS בלינוקס מבצע המרה של שמות דומיינים לכתובת IP, ומבצע את הבקשה לשרת DNS אם אין כתובת כזו במערכת המקומית.
- פקודות
nslookupו-digמספקות כלים לאבחון חיפושי DNS ולבדיקה של מידע DNS. - ניתן לשנות את שרת ה-DNS על ידי עדכון קובץ
/etc/resolv.conf. - DNS Suffix יכול להתווסף בקובץ
/etc/resolv.confכדי להקל על חיפושי דומיינים. - קובץ
/etc/hostsמאפשר לקבוע קשרים בין כתובות IP לשמות דומיינים באופן מקומי. - ניקוי ה-DNS cache מסייע בפתרון בעיות חיבור כאשר יש צורך לעדכן או לנקות את הנתונים הישנים.