בשלב זה אנו בונים את התשתית על מנת שנוכל לצאת לאינטרנט מרשת ה- WAN שלנו.
אנו נגדיר פרוטוקול NAT על מנת שנוכל לתרגם כתובות פרטיות לכתובת ציבורית שתתקשר עם הרשת החיצונה.
הסבר מצולם
הסבר כתוב
ראשית נביא ראוטר נוסף שישמש כ- ISP (ספקית אינטרנט), נוסיף לו התקן סריאלי (Serial) ונחבר בינו לבין הראוטר של הסניף הראשי שלנו, נגדיר כתובות ציבוריות לשני הראוטרים.
נפעיל פרוטוקול RIP גרסא 2 ל-ראוטר ה- ISP ונפעיל את ה- RIP בממשקים המתאימים.
כמו כן נגדיר ניתוב ברירת מחדל בראוטר היוצא לאינטרנט, ונפרסם את הניתוב בין כל הראוטרים באמצעות פרוטוקול RIP.
הגדרת נתיב ברירת מחדל בראוטר היוצא לאינטרנט, החבילות יצאו מהממשק היוצא לספקית האינטרנט - serial 0/0/1:
Router>enable Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ip route 0.0.0.0 0.0.0.0 serial 0/0/1
נפרסם את ניתוב ברירת המחדל בין הראוטרים, הניתוב שיפורסם הוא ניתוב דרך הראוטר היוצא לאינטרנט:
Router(config)#router rip Router(config-router)#version 2 Router(config-router)#default-information originate
ניכנס להגדרות הראוטר של הסניף הראשי.
הגדרת רשימת גישה (ACL) שתכלול בתוכה את כתובות האייפי שברצוננו להכליל בתוך הכתובות שיומרו לכתובת גלובלית (ציבורית):
Router>enable Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ip access-list standard NAT Router(config-std-nacl)#permit 192.168.0.0 0.0.255.255
הגדרת רשימת הגישה שהגדרנו בתור הכתובות הפרטיות שיתורגמו לציבוריות (Global), והגדרת הממשק serial 0/0/1 כממשק היוצא החוצה ככתובת ציבורית:
Router(config)#ip nat inside source list NAT interface serial0/0/1 overload
הגדרת כל הממשקים - האם הם ממשקים השייכים ל- "בפנים" - inside כלומר בתוך הרשת שלי הפנימית (פרטית), או האם הם ממשקים השייכים ל- "בחוץ" - outside כלומר יוצאים החוצה מהרשת שלי ומגיעים לאינטרנט וכו'.
הגדרת ממשק serial 0/0/1 כממשק חיצוני - שייך לרשת החיצונית - לאינטרנט:
Router(config)#interface serial0/0/1 Router(config-if)#ip nat outside
הגדרת ממשק serial 0/0/0 כממשק פנימי ברשת שלי - שייך לרשת הפנימית שלי:
Router(config)#interface serial0/0/0 Router(config-if)#ip nat inside
דוגמא נוספת: הגדרת ממשקים gigabit 0/0.10 ו- gigabit 0/0.20 כממשק פנימי ברשת שלי:
Router(config-if)#interface gigabit0/0.10 Router(config-subif)#ip nat inside Router(config-subif)#interface gigabit0/0.20 Router(config-subif)#ip nat inside
הערה: צריך להגדיר את כל הממשקים הנמצאים בתוך הרשת שלי - כולל תתי-ממשקים (Sub-interface), יש לחזור על פעולת הגדרת הממשקים עבור כל תתי-הממשקים והממשקים השייכים לרשת שלי!
כתמיד ניתן להשתמש במקש חץ - למעלה במקלדת על מנת לחזור על הפקודות הקודמות שביצעתי ורק להחליף את הממשק \ תת-ממשק שאני רוצה להגדיר.
שימו לב!
ניתן לבדוק שהצלחתם להמיר אם תעקבו במצב סימולציה אחרי חבילת המידע ותפתחו את החבילה שהיא מגיעה לראוטר היוצא לאינטרנט, שם תוכלו לראות אם ההמרה של ה- NAT הצליחה.
מומלץ! אם רוצים להיות אמיתיים, ולדמות מצב אמיתי שבו חבילות מידע שמגיעות מכתובת פרטית לא יוכלו לצאת לאינטרנט, יש להגדיר רשימת גישה שחוסמת את כל הכתובות הפרטיות.
הגדרת רשימת גישה ששמה BLOCK-PRIVATE עבור הכתובות הפרטיות של Class A, Class B, Class C:
Router>enable Router#config terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ip access-list standard BLOCK-PRIVATE Router(config-std-nacl)#deny 10.0.0.0 0.0.0.255 Router(config-std-nacl)#deny 172.16.0.0 0.15.255.255 Router(config-std-nacl)#deny 192.168.0.0 0.0.255.255 Router(config-std-nacl)#permit any
שיוך רשימת הגישה BLOCK-PRIVATE כתעבורה יוצאת out על הממשק serial 0/0/1 שיוצא החוצה לכיוון האינטרנט:
Router>enable Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#inter s0/0/1 Router(config-if)#ip access-group BLOCK-PRIVATE out