מהי הפקודה servidor DNS throw route 209.250.251.37/32 mtu 0 table 55555?
הפקודה המוצגת בשאלה אינה תואמת לאף תחביר תקני המוכר במערכות הפעלה נפוצות כגון לינוקס, חלונות או נתבים מבוססי IOS. השילוב של המילים servidor DNS throw route יחד עם MTU 0 וטבלה מספרית 55555 מעיד על כך שמדובר בפקודה היברידית שאינה ניתנת לביצוע ישיר. במערכות לינוקס, למשל, פקודת ip route מאפשרת הגדרת מסלולי רשת, אך המונח throw route אינו קיים כתחביר תקני. המונח throw עצמו משמש כסוג פעולה מיוחדת בפקודת ip route, אך הוא אינו מופיע בצירוף המילה route. כמו כן, ערך MTU 0 הוא בלתי אפשרי פיזית, שכן כל ממשק רשת חייב ערך MTU מינימלי של 68 בתים לפחות, ולמעשה ערך 0 יגרום לכשל מוחלט בשידור מנות.
בנוסף, המונח servidor DNS מרמז על הגדרת שרת DNS, אך הגדרת DNS אינה מתבצעת באמצעות פקודת ניתוב. בלינוקס, שרתי DNS מוגדרים בקובץ /etc/resolv.conf או באמצעות כלי רשת כמו NetworkManager. בנתבים, הגדרת DNS נעשית בתצורת הממשק או בפקודות ייעודיות כגון ip name-server. לכן הפקודה כולה נראית כשילוב שגוי של מונחים ממערכות שונות, ואין לה תיעוד או תמיכה במקורות מהימנים. מטרת מאמר זה היא לפרק את הפקודה למרכיביה, להסביר כל רכיב, ולהראות מדוע אין לראות בה פקודה תקנית, תוך הצגת הדרך הנכונה להגדיר DNS וניתוב במערכות לינוקס.

פירוק הפקודה למרכיביה העיקריים
הפקודה מחולקת למספר חלקים: servidor DNS, throw route, 209.250.251.37/32, mtu 0, table 55555. כל חלק מייצג מושג שונה, אך השילוב יוצר אי-התאמה. המונח servidor DNS הוא ככל הנראה שיבוש של המילה הספרדית "servidor" שפירושה שרת. בלינוקס, המונח throw route מופיע בהקשר של פקודת ip route, אך כפעולה מיוחדת המציינת זריקת מנה (throw) – כלומר, מסלול שנועד לגרום לכשל מבוקר בניסיון ניתוב. למשל, ip route add throw 10.0.0.0/8 יגרום לכל מנה ליעד בטווח זה להיזרק ולא לנתב הלאה. אך התוספת של המילה route אחרי throw אינה תקינה, וגם השימוש בכתובת ספציפית /32 יחד עם throw איננו מקובל בהקשר של DNS.
תיעוד ip-route הרשמי מגדיר בבירור שפעולת throw היא חלק ממערכת הניתוב, ואינה קשורה להגדרת DNS. כמו כן, הכתובת 209.250.251.37/32 היא כתובת יחידה (סימון /32), מה שאומר שמדובר במסלול לכתובת ספציפית אחת. כאשר משתמשים ב-throw עם כתובת יחידה, הכוונה היא לחסום ניתוב לאותה כתובת. עם זאת, הגדרת DNS אינה דורשת חסימה, אלא הפוך – גישה לשרת DNS. לכן השימוש ב-throw בהקשר זה סותר את מטרת הגדרת שרת DNS.

ערך MTU 0 מופיע גם בפקודה, אבל כאמור, MTU של 0 אינו חוקי באף פרוטוקול רשת. RFC 1122 קובע שערך MTU מינימלי לממשק IP הוא 68, ולמעשה במערכות לינוקס, ניסיון להגדיר ערך MTU 0 יגרור שגיאה או יתעלם מהפקודה. לכן חלק זה של הפקודה מרמז על טעות נוספת. לבסוף, table 55555 מציין טבלת ניתוב מותאמת אישית בלינוקס. מערכות לינוקס תומכות בטבלאות ניתוב נוספות מעבר לטבלאות המוגדרות כברירת מחדל (local, main, default). מספר 55555 הוא מזהה חוקי לטבלה מותאמת אישית, אך הגדרת DNS אינה קשורה לטבלת ניתוב. שרתי DNS מוגדרים במישור היישום, לא בשכבת הרשת.
השוואה בין הפקודה הלא-תקנית לפקודות תקניות
כדי להבהיר את הפער, נציג טבלה המשווה בין כל חלק בפקודה הלא-תקנית לבין הפקודות התקניות המתאימות במערכות לינוקס.

| רכיב בפקודה הלא-תקנית | משמעות בפקודה תקנית | הערה והקשר נכון |
|---|---|---|
| servidor DNS | אין מקבילה בפקודת ניתוב | הגדרת DNS מתבצעת ב-/etc/resolv.conf, עם שורה כמו nameserver 209.250.251.37 |
| throw route | ip route add throw | throw הוא סוג מסלול, לא מילת מפתח עם route. פקודה תקינה: ip route add throw 209.250.251.37/32 |
| mtu 0 | ip link set dev eth0 mtu <ערך> | MTU 0 יגרום לשגיאה. ערך מינימלי הוא 68, ערך טיפוסי 1500 |
| table 55555 | ip route add ... table 55555 | טבלה מותאמת אישית היא חוקית, אך אינה קשורה ל-DNS. יש להגדיר DNS בנפרד |
הטבלה מראה שכל רכיב בפקודה הלא-תקנית הוא ערבוב של תחומים שונים: ניתוב, הגדרות ממשק, ו-DNS. לא קיימת פקודה אחת שמשלבת את כולם. מי שמנסה להגדיר DNS דרך ניתוב עושה טעות יסודית. הדרך הנכונה לקבוע שרת DNS במערכת לינוקס היא לערוך את הקובץ /etc/resolv.conf ולהוסיף שורה כגון nameserver 209.250.251.37. במידה ורוצים להשתמש בטבלת ניתוב מותאמת, יש להגדיר את המסלולים המתאימים בנפרד, ולהשתמש בכלים כמו ip rule כדי לקשר בין תעבורה לטבלה מסוימת. עם זאת, השימוש ב-throw במקרה של שרת DNS נוגד כל היגיון, שכן throw נועד לזרוק מנות, לא לאפשר גישה.
הטעויות הנפוצות בהגדרת DNS ו-MTU
כדאי להכיר כמה טעויות נפוצות שמשתמשים עלולים לעשות כשהם מנסים להגדיר שרת DNS או לשנות MTU. להלן רשימה קצרה של שגיאות אופייניות:

- שימוש ב-ip route להגדרת DNS: DNS מוגדר בשכבת היישום, לא בשכבת הרשת. פקודת ip route משפיעה על ניתוב מנות, לא על רזולוציית שמות.
- הגדרת MTU לערך 0 או לערך נמוך מ-68: ערך MTU חייב להיות לפחות 68, אך בדרך כלל 1500. MTU 0 יגרום לכשל מוחלט בתקשורת.
- הוספת throw route לכתובת שרת DNS: throw יגרום לחסימת התעבורה לשרת, ולכן לא תתאפשר גישה לשרת DNS. אם רוצים לאפשר גישה, יש להשתמש במסלול רגיל (unicast).
- בלבול בין טבלת ניתוב להגדרות DNS: טבלת ניתוב שולטת על נתיבי תעבורה, אך אינה משפיעה על השרת שאליו פונים לפתרון שמות. גם אם משנים טבלה, עדיין צריך להגדיר DNS בנפרד.
- הקלדת פקודות בצורה לא מדויקת: מערכות לינוקס רגישות מאוד לתחביר. פקודה כמו servidor DNS throw route אינה מוכרת כלל, ותיתכן טעות הקלדה או העתקה ממקור לא מהימן.
מומלץ תמיד לבדוק פקודות מול התיעוד הרשמי. בלינוקס, הפקודה man ip route תספק את כל התחביר האפשרי. כמו כן, תיעוד DNS של סיסקו יכול לעזור להבין את ההקשר הנכון להגדרת DNS בתשתיות רשת. העובדה שאין שום מקור מהימן שתומך בפקודה המוצגת מעידה על כך שהיא כנראה נוצרה בטעות או כתרגיל בדיוני.
כיצד להגדיר כראוי שרת DNS בלינוקס
הגדרת שרת DNS בלינוקס פשוטה. ברוב ההפצות, הקובץ /etc/resolv.conf הוא הממשק המרכזי. לדוגמה, כדי להגדיר את השרת 209.250.251.37, יש לכתוב בקובץ: nameserver 209.250.251.37. במידה ורוצים להשתמש במספר שרתים, ניתן להוסיף שורות nameserver נוספות. בנוסף, מערכות מודרניות רבות משתמשות ב-NetworkManager או ב-systemd-resolved, המנהלות את ה-resolv.conf באופן דינמי. במקרים כאלו, יש להשתמש בכלים כמו nmcli או להגדיר את שרתי ה-DNS בקובץ התצורה של הממשק (לדוגמה, /etc/network/interfaces או /etc/netplan/*.yaml).

בנתבי סיסקו או מערכות דומות, הפקודה להגדרת DNS היא ip name-server 209.250.251.37 (במצב תצורה גלובלי). אין שום קשר לפקודת ip route. אם רוצים לשלב ניתוב מותאם אישית, למשל כדי לנתב תעבורה מסוימת דרך טבלה אחרת, יש להשתמש ב-ip rule ובפקודות ip route add ... table <מספר>. עם זאת, השרת DNS עצמו יישאר מוגדר בנפרד. כדאי לזכור שהגדרת DNS אינה משפיעה על ניתוב, אלא רק על תרגום שמות דומיין לכתובות IP.
הסבר על throw route ו-MTU 0 בהקשר של רשתות
פעולת throw במערכת ניתוב לינוקס היא מנגנון לדחיית מנות בכוונה. כאשר מסלול מוגדר עם throw, כל מנה שתואם למסלול תסומן כבלתי ניתנת לניתוב ותיזרק (ברוב המקרים תישלח הודעת ICMP unreachable ללקוח). זה שימושי לחסימת רשתות מסוימות או לניפוי שגיאות. אבל שימוש ב-throw עבור שרת DNS ימנע לחלוטין את הגישה לשרת, ולכן אין משמעות לשלב throw בהגדרת DNS. הכתובת 209.250.251.37/32 היא מסלול לכתובת יחידה, וכאשר הוא מוגדר כ-throw, כל ניסיון להגיע לכתובת 209.250.251.37 ייכשל.
MTU (Maximum Transmission Unit) קובע את גודל המנה המרבי שניתן לשדר בממשק. ערך MTU 0 הוא לא חוקי לפי כל התקנים. RFC 791 (IP) ו-RFC 1122 קובעים שערך MTU חייב להיות לפחות 68 בתים, ואם הממשק מקבל ערך 0, התוצאה היא מנות לא תקינות. במערכות לינוקס, ניסיון להגדיר MTU 0 יתן שגיאה כמו "mtu 0: Invalid argument". לכן כל פקודה הכוללת mtu 0 היא פקודה שגויה. טבלאות ניתוב, כמו table 55555, מאפשרות להפריד תעבורה לפי כללים, אך הן אינן קשורות לערך MTU או ל-DNS.
סיכום ומסקנות
הפקודה servidor DNS throw route 209.250.251.37/32 mtu 0 table 55555 אינה פקודה תקנית בשום מערכת הפעלה ידועה. שילוב המונחים מעיד על אי הבנה בסיסית של הבדלי שכבות ברשת: DNS שייך לשכבת היישום, בעוד MTU, טבלאות ניתוב ו-throw שייכים לשכבת הרשת. לכן, לא קיים תיעוד




