בעייה בשליחת packets גדולים מה MTU - רשתות ואינטרנט - HWzone פורומים
עבור לתוכן
  • צור חשבון

בעייה בשליחת packets גדולים מה MTU


Psibeast

Recommended Posts

שלום לכולכם.

יש לי בעיה קשה למדי, שתזדקק למישהו שבאמת מבין לעומק במבנה פאקטים של TCP ו Firewalls.

רכשתי לאחרונה אלחוטי של חברת D-Link. הדגם הוא DI-614+.

התקנתי אותו בהצלחה, יצרתי שיתוף אינטרנט ברשת הביתית שלי, אפילו הצלחתי לפתוח את הפורטים בכדי ש Emule יקבל high ID.

יש רק בעיה אחת: אני לא מצליח לשלוח אי-מיילים בעיקר, אבל גם דברים אחרים שהם מעל לכמה שורות. כרגע הנחת העבודה שלי (למרות שלא ידעתי איך לבדוק אותה בדיוק) היא שהגודל הקריטי שקובע אם הוא יצליח לשלוח או לא הוא ה MTU, מה שגורם לי לחשוד שהבעייה מקורה בניסיון ל fragmentation של הפאקט. התיאוריה הזאת יושבת טוב עם העובדה שהבעייה לא באה לידי ביטוי בגלישה רגילה (פאקטים של Ack הם בדר"כ קטנים מה MTU), ושאין בעיה לשלוח אי מיילים של כמה מילים (מה שאומר שאין איזו חסימה עקרונית על הפורט או משהו כזה).

(אגב, לצורך שליחת ההודעה הזאת התנתקתי מה ואני מחובר ישירות למודם, אחרת הוא לא היה שולח את זה).

זכור לי שבעיה דומה קרתה בעבר עם מחשב אחר ברשת הביתית שלי כאשר ניסיתי להתקין את Zone Alarm. אז לא הצלחתי לפתור את הבעיה גם כן, אבל למזלי יכולתי פשוט להסיר את Zone Alarm והבעיה נפתרה. עכשיו אני לא מסוגל לעשות זאת, אני חייב את ה מכיוון שכעת יש לנו מחשב נייד והוא חייב את החיבור האלחוטי לרשת.

ניסיתי אפילו להכניס את המחשב שלי ל DMZ, וכלום לא הועיל. אני לא יכול לבטל את ה Firewall, אין אופציה כזאת ב .

הצצה ב Log של ה Firewall ברגע שהבעיה קורית מגלה כמה Dropped Packets, בינהן ICMP מה IP החיצוני שלי (מה שקיבלתי מה ISP, לא ה 192.168.0.100 שזה ה IP הפנימי שלי) מפורט 3 אל אותו IP בפורט 4. זה נראה לי נורא מוזר.

בקיצור, אני צריך מישהו שממש מבין באיזה packets צריכים לעבור ברגע שיש fragmentation ושיודע מספיק על firewalls בכדי לעזור לי לקנפג אותו לא לחסום את זה.

תודה מראש לכל המגיבים.

קישור לתוכן
שתף באתרים אחרים

אתה יכול לעשות כמה בדיקות מאוד פשוטות כדי לדעת בדיוק מה הבעיה.

ping www.yahoo.com : כדי לראות שיש חיבור (פקטות ה- ICMP עם payload של 64 בתים)

ping www.yahoo.com -l 3000 -t : כדי לראות שפקטות גדולות יכולות לעבור (MTU של ethernet הוא 1500~ מה שאומר שפרגמנטציה תתבצע)

ping www.yahoo.com -l 800 -f: פינגים בגודל לא קטן (800 בתים) אבל עם Dont Fragment דלוק.

אם אתה רואה שיש לך packet loss או שהבדיקה הזו עוברת בסדר וגלישה רגילה לא (לא נשמע הגיוני אבל יתכן), באמת יש לך בעיה בנתב או בכרטיס הרשת האלחוטי שכנראה מקורה בקונפיגורציה. במקרה הזה עשה את הדברים הבאים:

א) תקרא את ה- manuals של כרטיס הרשת האלחוטי והנתב וחפש משהו על fragmented IP packets ו- ignore Dont Fragment flag. קשה לי להאמין שהרכיבים לא מקונפגים נכון דיפולטיבית אבל לך תדע.

ב) תתקין ethereal על המחשב שלך, תריץ את הפינגים הנ"ל ותשים פה את ה- capture

ג) תרשום פה את ה- logs מהנתב (תחפש ב- manual שלו איך קובעים רמת לוגינג ושים אותו ב- verbosity הכי גבוה)

בהצלחה

קישור לתוכן
שתף באתרים אחרים

אוקי, הנה תוצאות הבדיקה:

פינג רגיל ל Yahoo עובד

פינג של 3000 לא עובד. ה Router שלי מנע מה Ping להשלח בטענה שמדובר ב Ping of death.

פינג של 800 עם Don't Fragment עובד.

מלבד זאת עשיתי עוד בדיקונת קטנה, והרצתי פינג של 1600 בלי Don't Fragment (טיפה מעל ה MTU אבל לא מספיק בשביל שיצעק על Ping of death) וכל 4 הנסיונות נכשלו.

הפקודה שהרצתי:ping www.yahoo.com -l 1600

הנה מהלוגים של ה Firewall הסיבה שהניסיון האחרון נכשל:

Oct/10/2003 22:11:22 Drop ICMP packet from WAN 200.140.162.236:3 to <My_IP>:3 Rule: Default deny

החלפתי את ה IP שלי בכתובת My_IP.

וכאן שורש הבעיה. איך אני גורם ל שלי לא לזרוק את פאקטי ה ICMP הללו?

קישור לתוכן
שתף באתרים אחרים

אכן בעיה מעניינת ... אני זוכר שישנם אתרים מיוחדים שעוזרים לבחור גודל של MTU ע"מ לגרום לאופטימזיציה טובה למערכת שלך.

תנסה : http://www.adsl.org.il/registry.htm , אני בנתיים בודק את התאוריות שלך.

אני מנסה להבין באיזה שכבה הבעיה נוצרת, כיוון שדיברת שהכל עבד כאשר הFirewall נותק ולכן יש קצת סתירה בין העבודה מול נתב ולעבודה תקינה לאחר שהורדת Firewall מהמחשב.

קישור לתוכן
שתף באתרים אחרים

טוב, אז לפחות יש לנו ממה להתחיל. מחיפוש מהיר ב- google ראיתי שאתה לא היחיד שמתלונן על התופעות האלו:

http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=DI-614%2B+ping+of+death

ממה שראיתי צריך לעדכן את ה- firmware. תריץ את הבדיקות שוב אחרי השדרוג ונראה אם יש השפעה.

קישור לתוכן
שתף באתרים אחרים

אין שום סיבה להראוטר לא יעביר ICMP אם בפירוש אמרת לו להעביר הכל (למרות שיתכן שה- stateful firewall במקרה הזה עושה overriding על החוקים שאתה מגדיר לו).

טוב, אז בוא נשנה גישה. קודם כל, אתה יודע שלפעמים יש חשיבות לסדר שאתה מכניס את חוקי הפיירוול? אם מופיע החוק icmp deny all לפני icmp allow all, יש פיירוולים לא מתוחכמים שיעשו deny. תנסה לעשות חוק אחד של allow (למרות שבטח כבר עשית את זה) . עכשיו לך לכל המקומות שמגדירים מה להעביר (ראיתי שיש לו dont allow pings from WAN) - ושים שם את ההגדרות הכי מתירניות. תראה אם יש לזה השפעה.

בכל מקרה, מחר אני אביא תוכנה שאנחנו משתמשים בעבודה כדי לבדוק throughput - אפשר לשלוח שם כל מיני פקטות בכל מיני גדלים ונראה איפה הראוטר שלך מפיל פקטות (יש כל מיני traffic generators באינטרנט אבל הם לא חינמיים ואם כן אז הם ממש עלובים).

קישור לתוכן
שתף באתרים אחרים

יש לי כלל אחד של Deny ב Firewall והוא ה Default Deny והוא הלפני אחרון. הכלל האחרון הוא הכלל שמעביר כל דבר מה LAN החוצה, ואין לו קשר ל Deny מכיוון שה Deny מונע רק מדברים להכנס, לא לצאת.

הכלל של העברת ICMP הוא כרגע הכלל הראשון אצלי, והוא על הצורה הכי מתירנית שלו (הרשה ICMP מכל מקור לכל יעד בכל פורט).

הכלל של ה Ping מ- WAN גם מורשה אצלי. התאוריה שלך לגבי זה שה SPI עושה override לכללי ה Firewall שלי מעניינת ונשמעת אפשרית. השאלה היא איך אני בודק ומונע את זה?

בכל מקרה, ההגדרות אצלי מתירניות לחלוטין. הדבר המעניין (והמוזר) הוא שאפילו כששמתי את המחשב ב DMZ זה לא הזיז לו.

בנוסף, יש מידע חדש מעניין. אם ההודעה הזאת עוברת (והיא בגודל שלא אמור לעבור), משמע שהבעיה לא קבועה אצלי, אלא מופיעה ונעלמת מדי פעם. זה קרה לי גם אתמול. כתבתי הודעה אחת, והיא הצליחה לעבור, אז התחלתי לעשות את כל בדיקות הפינגים, ואז שוב הפסיקו הודעות גדולות לעבור. הלכתי לישון, קמתי, ונראה ששוב הודעות עוברות (בלי ששיניתי כלום).

קישור לתוכן
שתף באתרים אחרים

אכן ההודעה עברה. עכשיו זה אפילו יותר מוזר.

אני מתחיל לחשוד שאולי מדובר בהתנהגות אדאפטיבית של ה Firewall שהגיב אולי למתקפה כלשהי בחסימת כל ICMP לפרק זמן מסוים. אין בתיעוד של ה שום איזכור למשהו כזה, אבל זה רעיון. בכל מקרה, אני אהיה חייב לגלות את מקור הבעיה. אני לא יכול לתת לזה לצוץ ככה מדי פעם.

קישור לתוכן
שתף באתרים אחרים

בכל מקרה, מחר אני אביא תוכנה שאנחנו משתמשים בעבודה כדי לבדוק throughput - אפשר לשלוח שם כל מיני פקטות בכל מיני גדלים ונראה איפה הראוטר שלך מפיל פקטות (יש כל מיני traffic generators באינטרנט אבל הם לא חינמיים ואם כן אז הם ממש עלובים).

אגב, את הבדיקה הנ"ל כבר ביצעתי בעזרת פינג. אני חושב שהגודל הגדול ביותר שהוא מעביר לי הוא 1462 (שזו הגדרת ה MTU אצלי ברג'יסטרי ובראוטר).

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...