09-08-2006, 09:52
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
נכון ולא נכון
רשומת MX מחזירה את השם של השרת (הוסט, לא IP) שאמור לטפל בדואר עבור הוסט/דומיין מסויים.
לעתים, שרתי DNS הם מסוג recursive, כלומר, למרות שלא שאלו אותם, הם הולכים ומבררים לא רק מה הוסט ה MX שאמורים להתחבר אליו, אלא גם מה ה IP שלו (לדעתם!).
דוגמא: אם אני מחפש מי שרתי ה DNS של fresh.co.il, זה מה שאני אקבל:
קוד:
; <<>> DiG 9.2.5 <<>> @192.115.106.31 ns fresh.co.il
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54021
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;fresh.co.il. IN NS
;; ANSWER SECTION:
fresh.co.il. 258983 IN NS hurricane.fresh.co.il.
fresh.co.il. 258983 IN NS vortex.fresh.co.il.
;; Query time: 20 msec
;; SERVER: 192.115.106.31#53(192.115.106.31)
;; WHEN: Wed Aug 9 10:42:10 2006
;; MSG SIZE rcvd: 74
אתה רואה שלא כתובות כאן שום כתובות IP? רק השמות...
כנ"ל אם אני בודק מי רשומות ה MX של fresh.co.il :
קוד:
; <<>> DiG 9.2.5 <<>> @192.115.106.31 mx fresh.co.il
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12421
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;fresh.co.il. IN MX
;; ANSWER SECTION:
fresh.co.il. 2634 IN MX 0 fltr-in1.mail.dreamhost.com.
fresh.co.il. 2634 IN MX 0 fltr-in2.mail.dreamhost.com.
;; Query time: 37 msec
;; SERVER: 192.115.106.31#53(192.115.106.31)
;; WHEN: Wed Aug 9 10:42:55 2006
;; MSG SIZE rcvd: 97
כדי לדעת מה ה IP - המערכת תצטרך לקרוא לפונקציית המערכת שמבצעת resolve _שוב_ עם הכתובת שהיא קיבלה מהשאילתא - וכיוון שהפונקציה הזאת קודם כל אמורה להסתכל ב hosts, זה אמור לגרום לתשובה שתחזור להיות מה שדחפנו לשם...
לעתים, אבל, שרתי ה DNS הם אובר-חוכמים (אני משער שידה של מיקרוסופט מרחפת כאן, ואם לא, אז שרת ה DNS המעצבן BIND) - ולפעמים הם מנסים מה שלא ביקשו מהם. כלומר - מחזירים גם את ה IP. הנה למשל שאילתא שביצעתי על שרת DNS שאני יודע שרץ על חלונות:
קוד:
; <<>> DiG 9.2.5 <<>> @XXX.XXX.XXX.XXX ns fresh.co.il
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11941
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;fresh.co.il. IN NS
;; ANSWER SECTION:
fresh.co.il. 16614 IN NS hurricane.fresh.co.il.
fresh.co.il. 16614 IN NS vortex.fresh.co.il.
;; ADDITIONAL SECTION:
vortex.fresh.co.il. 1265 IN A 82.80.248.161
;; Query time: 31 msec
;; SERVER: XXX.XXX.XXX.XXX#53(XXX.XXX.XXX.XXX)
;; WHEN: Wed Aug 9 10:45:23 2006
;; MSG SIZE rcvd: 90
כאן, כמו שאתה רואה, חזר גם ה IP, למרות שלא ממש ביקשתי ממנו לדעת מה ה IP. השאילתא הייתה שאילתת NS ולא שאילתת A.
לסיכום, אם ככה פועל ה DNS שלך (כלומר, מחזיר מידע שלא מבקשים ממנו, ובכך "מרעיל" את המערכת בנתונים שלא בהכרח מעניינים אותה), נשמע שאין ברירה אלא להשתמש ב DNS מורעל בעצמו. אבל כאמור, יש לך כבר את ה DC שלך שאתה יכול לנצל למטרה זו - פשוט תגדיר שם MX - הוא לא אמור להשפיע על מייל שמגיע מבחוץ אם הוא לא ה DNS החיצוני שלך (ואם הוא כן, הגיע הזמן שהוא לא יהיה )
אפשרות נוספת היא להגדיר ל sendmail שלך שמייל עבור הדומיין שלך ילך לשרת אחר. לצערי, אני לא זוכר איך עושים את זה, כי לא נגעתי ב sendmail שנים (יש לי משום מה רתיעה מקובץ הקונפיגורציה שלו, לא יודע למה =) )
|