מושגים בסיסיים בניתובים ל\בתוך שרת
-
אין ברירה, אשאל שאלות של מתחיל
אני מריץ נוד שמקים שרת
var http = require('http'); server.listen(8080, "0.0.0.0", function(){})
זה אומר שנוד נרשם במע' ההפעלה שכל קריאה שנכנסת מבחוץ (כרטיס הרשת) שיעודה פורט 8080 (ע"י כתיבה מפורשת, או ניחוש לפי הפרוטוקול) תשודר לתהליך הנוד.
עד לכאן הבנתי נכון?נסיתי להקים שרת חדש (= האזנה חדשה) לאותו פורט אך ב-IP שונה ועלתה לי הודעת שגיאה שזה דורס תהליך קיים.
אך פורט אחר עם אותו IP כן התקבל.משמע שהניתוב הפנימי מבוצע רק ע"י הפורט, אז למה משמש כתובת ה-IP?
שאלה נוספת "לוקל הוסט" הוא סכ"ה משתנה המכיל כתובת IP פנימי מוסכם?
-
@אהרן אמר במושגים בסיים בניתבים ל\בתוך שרת:
אני מריץ נוד שמקים שרת
var http = require('http'); server.listen(8080, "0.0.0.0", function(){})
זה אומר שנוד נרשם במע' ההפעלה שכל קריאה שנכנסת מבחוץ (כרטיס הרשת) שיעודה פורט 8080 (ע"י כתיבה מפורשת, או ניחוש לפי הפרוטוקול) תשודר לתהליך הנוד.
עד לכאן הבנתי נכון?אכן נרשם במערכת ההפעלה שהאפליקציה הזו צריכה לקבל כל בקשה, לאו דוקא חיצונית, שמופנית לפורט זה. אם היית כותב IP מסויים זה היה מגביל את האזנה לIP מקור מסויים, אבל ארבעה אפסים משמעותם any - לא משנה איזה מקור.
משמע שהניתוב הפנימי מבוצע רק ע"י הפורט, אז למה משמש כתובת ה-IP?
הכתובת של נמען דואר מורכבת מארץ עיר רחוב מספר ודירה. מי ששולח לשכן שלו באותו בניין נדרש לציין הכל כרגיל. מספר הדירה משמש לזהות בתוך אותו בניין איזה דייר. זה בדיוק תפקיד הפורט. שר הפרטים עשויים לזהות את הבניין מבין כל בנייני תבל וזה תפקיד הIP החיצוני.
אבל בניגוד למודל של הדואר, באינטרנט יש אופציה לשלוח לשכן (פורט) באותו המחשב בלי להכיר את כתובתו החיצונית של המחשב, וזה ע"י כתובות loopback - המחשב מנתב אותם חזרה לעצמו. הכתובות האלה הם המרחב של 127.0.0.0/8.
המילה localhost היא דומיין בדיוק כמו google.com שמתורגמת לכתובת אייפי. רק שבניגוד אליה המחשב לא שואל שירות DNS מה כתובתה הפיזית אלא מתרגם אותה על דעת עצמו ל127.0.0.1.לעניין הנוגע איליך, מבחינת אבטחה מקובל ששירותים פנימיים חסומים החוצה בשתי שכבות: א. האזנה מאוגדת לכתובת פנימית (במקום ארבעה אפסים שים 127.0.0.1), ב. הפרוט סגור בחומת אש של מערכת ההפעלה.