Home CCNA הסבר על NAT והגדרת NAT בCisco Router

הסבר על NAT והגדרת NAT בCisco Router

by Tal Ben Shushan 26/02/2017 0 comment
הסבר על NAT והגדרת NAT בCisco Router

הגדרת NAT בCisco Router

הסבר מפורט על NAT ניתן להיכנס למאמר הבא

במאמר זה נרחיב טיפה על NAT בעולם הסיסקו.

מונחים בNAT:

  1. Inside Local Address
  2. Inside Global Address
  3. Outside Local Address
  4. Outside Global Address

Inside Local Address – כתובת המחשב שמתורגם לכתובת אחרת על ידי NAT – כתובת של מחשב בתוך הרשת הפנימית

Inside Global Address – כתובת חיצונית שאיתה מבוצע הNAT (מאחוריה מסתתרים כתובות הIP הפנימיות)

Outside Local Address – כתובת חיצונית לרוב של היעד כאשר הPacket נמצא בתוך הרשת הפנימית (שרת Web בעולם לדוגמה)

Outside Global Address – ברגע שהחבילה יצאה לרשת העולמית הכתובת שהיא מיועדת אליה היא ה Outside Global Address

אפשר בתרשים לראות מהו כל אפשרות –

אסביר זאת על פי התרשים הבא (התרשים נעשה על ידי אבל הרעיון מCisco.com)

לפניכם צד שמאל וצד ימין, צד שמאל הוא הרשת הפנימית, מחשב עם כתובת 192.168.1.10/24 והוא מחובר לסוויצ’ שמחובר לראוטר החיבור בראוטר בצד השמאלי הוא Default Gateway.

בצד ימין היציאה בראוטר היא כתובת חיצונית של 80.86.90.1 והיא מגיע לISP (בשביל הדוגמה כנראה כתובת 80.86.90.1/30), ושרת FTP עם כתובת חיצונית 80.86.90.10

ניתן להבין בתרשים בצד שמאל שהמחשב 192.168.1.10 מעוניין להגיע ליעד 80.86.90.10 שנמצא ברשת העולמית, ברגע שPacket יוצאת היא יוצאת בכתובת IP חיצונית שהיא 80.86.90.ולכן אפשר לראות בתרשים בצד ימין שה Source הוא 80.86.90.1 שזה הכתובת של היציאה של הראוטר (רשמתי לכם לדוגמה פורט סיריאל 0/0/0) והיעד הוא שרת ה FTP 80.86.90.10

אחרי שהבנתם את התרשים נרשום את המונחים שהסברתי למעלה ליד כל IP וכך תוכלו לקשר את המושג

Inside Local Address – כתובת המחשב – 192.168.1.10

Inside Global Address – כתובת ה NAT של הראוטר היא כתובת ה Port שלו היוצא לעולם ואצלנו הכתובת היא 80.86.90.1

Outside Local Address – המחשב מגדיר בPacket ב Destination IP את הכתובת של היעד שהוא שרת ה FTP -80.86.90.10

Outside Global Address – ברגע שהחבילה נמצאת בניתוב בעולם המקור שלה זה 80.86.90.1 והיעד 80.86.90.10 (זאת אומרת – חבילה שהיעד והמקור שלה הם כתובות חיצוניות)

Static NAT

הוא למעשה NAT פשוט שמתרגם בין כתובת פנימית לחיצונית One-To-One למה One-To-One? בגלל שכתובת פנימית אחת תתורגם לכתובת אחת חיצונית, 1 על אחד 1

לדוגמה:

 

התרשים שלפניכם מציג מחשב 192.168.1.10 שמעוניין להגיע בFTP פורט 21 לשרת FTP שכתובתו 80.86.90.10, כמובן ש192.168.1.10 לא יכול לצאת לעולם ולכן הטבלה תראה כך:

Inside Local: 192.168.1.10

Inside Global: 212.10.20.212

Outside Local: 80.86.90.10

Outside Global: 80.86.90.10

המקור: 192.168.1.10 היעד 80.86.90.10:21 (הוא מעוניין לגשת לFTP של השרת) אבל הרגע שהוא יגיע לראוטר בתרשים: יבוצע NAT, המקור יהיה:

Source: 212.10.20.212

Destination: 80.86.90.10:21

הבנתם את הרעיון, אבל מה קורה כאשר החבילה חוזרת? כיצד היא יודעת לחזור בדיוק לאותו מחשב פנימי עם כתובת 192.168.1.10?

עכשיו נבדוק כיצד החבילה חוזרת למחשב 192.168.1.10

Source IP: 80.86.90.10

Destination IP: 212.10.20.212:21

ברגע שהPacket מגיע לראוטר, הראוטר פותח את החבילה ובודק למי שייכת הכתובת החיצונית: 212.10.20.212

212.10.20.212 = 192.168.1.10

ואז משנה את ה Destination IP ל:

Source IP: 80.86.90.10

Destination IP: 192.168.1.10:21

וזאת על מנת לנתב אותו בתוך הרשת הפנימית

Dyanmic NAT

הוא לא כמו Static NAT הוא למעשה Many-To-Many אתם למעשה מכניסים לו טווח של כתובות חיצוניות נאמר 212.10.20.200 – 212.10.20.215 – סה”כ 14 כתובות חיצוניות ויש לכם רשת פנימית עם 14 מחשבים, מעולה, כל פעם שמחשב ירצה לגשת לרשת החיצונית הוא יגיע לראוטר ואז הראוטר יסתכל בטבלה שלו ויראה את כל הכתובות החיצוניות הפנויות והכתובת הראשונה שפנויה הוא “יצוות” לכתובת הפנימית וכך לכל כתובת פנימית יש לאותו הSession בלבד כתובת חיצונית משלו, אם לא מובן אסביר זאת עם הטבלה והתרשים:

מחשב 192.168.1.20 מעוניין לגשת לשרת 80.86.90.10 בפורט 21 הוא מגיע לראוטר והראוטר בודק איזה כתובת פנויה, הוא רואה שכל הכתובות פנויות והוא מקצה את 212.10.20.201 לכתובת זו

והטבלה תראה כך:

Inside Local: 192.168.1.20

Inside Global: 212.10.20.201

Outside Local: 80.86.90.10

Outside Global: 80.86.90.10

המקור והיעד יראו כך:

Source IP: 212.10.20.201

Destination IP: 80.86.90.10:21

דוגמה נוספת שקיימת בטבלה זה שמחשב נוסף קיבל כתובת חיצונית, ברגע שה Session יסגר הכתובת תחזור להיות פנויה ומחשב אחר יכול לקחת את אותה הכתובת אבל היא תצוות אליו

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

 

PAT

PAT הוא קיצור של Port Address Translation והוא גם מכונה NAT Overload ממפה כמה, עשרות, אלפי כתובות לכתובות IP חיצונית אחת, לדוגמה בבית שלכם, כאשר אתם יושבים בסלון והמחשב הנייח, והמחשב הנייד, והטלפונים, והטבלט – כל המכשירים הללו מקבלים כתובת IP פנימית – לדוגמה

Laptop – 192.168.1.4

Tablet – 192.168.1.5

iphone Phone – 192.168.1.6

Adnroid Phone  – 192.168.7

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

והבעיה היא כיצד כל המכשירים יוצאים מכתובת אחת, אך הPacket חוזר בחזרה דווקא לאותו מחשב עם מה שהוא ביקש לדוגמה מחשב 192.168.1.20 ביקש לגלוש לMicrosoft.com ו192.168.1.10 מבקש לגלוש לCisco.com הבעיה היא ש2 הכתובות הללו יוצאות בפורט 80, אך ידע איזה אתר להחזיר לאיזה מחשב, את זה נראה שתרשים הבא:

ניתן לראות שלדוגמה מחשב 192.168.1.20 מעוניין לגלוש לאתר שכתובתו 90.45.40.14 בפורט כמובן 80 (HTTP) ולכן המקור והיעד יראו כך:

Source IP : 192.168.1.20

Destination IP: 90.45.40.14

אבל יש לנו בעיה, כל שאר הכתובות גם הן יוצאות מאותו הכתובות ולכן הראוטר יצוות פורט לכתובת ה IP הפנימית בצורה הבאה:

Source IP : 192.168.1.20:1222

Destination IP: 90.45.40.14

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

*ניתן לראות בתרשים שהכתובת החיצונית של הארגון זה 212.10.20.201, זאת אומרת מאחורי הכתובת הזו יהיו הכתובות הפנימיות של הארגון

Source IP : 212.10.20.201:1222

Destination IP: 90.45.40.14

כך כאשר השרת (יותר נכון הראוטר של השרת) יחזיר תשובה, התשובה מהצד השני תראה כך:

Source IP : 90.45.40.14

Destination IP: 212.10.20.201:1222

ואז כאשר הPacket הזה יגיע לראוטר שלנו, הראוטר יבדוק למי הוא ציוות את הפורט: 1222 והוא יראה שזה לכתובת 192.168.1.20 והוא יעד להעביר את ה Packet הנכון אל היעד

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

Source IP : 192.168.1.10:5545

Destination IP: 90.45.40.14


Source IP : 192.168.1.20:5545

Destination IP: 90.45.40.14

מה שיקרה הוא דיי פשוט, ברגע שהוא יראה בטבלה שלו שהפורט כבר תפוס, הוא יחליף באותו הרגע את הפורט לפורט אחר ויצוות לו פורט שאינו תפוס…

חשוב לזכור שNAT מתרגם כתובת 1:1 או כמו שרשמתי One To One ואילו PAT מתרגם המון כתובות לכתובת אחת או One To Many

מעבודה פשוטה בStatic NAT

להורדת המעבדה

 

לפנינו הרשת כמו בתרשים, הגדרתי 2 מחשבים 192.168.1.10 ומחשב 192.168.1.20 והיעד שלהם הוא שרת 1.1.1.1 , על מנת לתאר את הStatic NAT בצורה הפשוטה ביותר, הגדרתי את הכתובת של השרת Web ל 1.1.1.1 ללא Default Gatway למרות שיש לו, הסיבה שברגע שהחבילה תחזור אחורה עם NAT זאת אומרת עם כתובת למשל 1.1.1.100 למחשב מסוים אז הוא ידע איך, נסביר

 

החבילה יוצאת ממחשב 192.168.1.10 ואמרתי לראוטר שיבצע NAT לכתובת זו, וכתובת זו תגיע ל 1.1.1.1 בכתובת 1.1.1.100  וכך גם תדע לחזור

כאשר החבילה תצא היא תצא בכתובת 192.168.1.10 ליעד 1.1.1.1

Source IP : 192.168.1.10

Destination IP: 1.1.1.1

אבל כאשר החבילה תגיע לראוטר, יבוצע NAT

Source IP: 1.1.1.100
Destination IP: 1.1.1.1

והחבילה תצא לדרך, בחזור על מנת לקבל תשובה, החבילה תראה כך:

Source IP: 1.1.1.1
Destination IP: 1.1.1.100

אתם בטח שואלים אך הוא חוזר אם אין Default Gateway, אין כאן בעיה כתובת 1.1.1.100 היא אותה הרשת עם 1.1.1.1 ולכן החבילה יודעת להגיע לסוויצ’, והסוויצ’ יודע שכתובת זו הגיע מפורט F0/2 ולכן יגיע לראוטר, שם הראוטר יבדוק בטבלת ה NAT שלו לבדוק למי הוא ציוות את הכתובת 1.1.1.100 = 192.168.1.100 ואז החבילה תשתנה ל

Source IP: 1.1.1.1

Destination IP: 192.168.1.10

ותגיע ליעדה

עכשיו נבצע את המעבדה

נכנס ל Router ונגדיר NAT

Router>en

Router#conf t

נגדיר NAT, כאשר הכתובת 192.168.1.10 תגיע מ Interface שהוא Inside

Router(config)#ip nat inside source static 192.168.1.10 1.1.1.100

נגדיר כעת את הפורטים, כל אחד לצד שהוא פונה (חיצוני או רשת פנימית)

פורט G0/0 פונה לצד החיצוני:

Router(config)#interface gigabitEthernet 0/0

Router(config-if)#ip nat outside

Router(config-if)#exit

פורט G0/1 פונה לצד החיצוני:

Router(config)#interface gigabitEthernet 0/1

Router(config-if)#ip nat inside

כעת נבדוק פינג בין 192.168.1.10 לבין 1.1.1.1 ונראה שיש תקשורת, כמו שהסברתי למעלה

אבל מ192.168.1.20 אין תקשורת ל 1.1.1.1 (הסברתי למעלה למה, למרות שיש ראוטר, לשרת אין Default Gateway ולכן אינו יודע לחזור אלא רק לכתובת ברשת שלו כמו ה NAT שהסברתי שורה למעלה)

נוסף, אני מציג לכם את הPDU שעבר ותוכלו לראות שבזמן המעבר, בראוטר כתובת המקור היא 192.168.1.10

ואז מבוצע NAT ואז כתובת המקור הופכת ל 1.1.1.100

להורדת המעבדה (מוכנה)

מעבדה Dynamic NAT

להורדת המעבדה

ההסבר שלמעלה תקף גם כאן, אין Default Gateway לשרת 1.1.1.1 וזאת על מנת שרק על ידי NAT ה Packet תוכל לחזור, במקרה כאן במקום כתובת תמורת כתובת אנו נבצע Many To Many כמה כתובות ברשת הפנימית כביכול יבצעו NAT לכתובות 1.1.1.0, נתחיל

נסו קודם לשלוח PDU מהמחשבים לשרת (לא תצליחו) על מנת שנוכל יש ליצור NAT:

 

כאן אנו נגדיר טווח של כתובות שהם יהיו ה NAT שלי, זאת אומרת כתובות פנימיות יומרו לכתובות האלו

Router>en

Router#conf t

Router(config)#ip nat pool NATPOOL1 1.1.1.100 1.1.1.150 netmask 255.255.255.0

כעת נגדיר לאיזה רשת מותר לבצע NAT

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255

ניצור את ה NAT הדינמי על ידי ה POOL שיצרנו בסעיף הראשון וכמובן  list 1 על מנת להגיד שרק access list 1 מותר לעבור

Router(config)#ip nat inside source list 1 pool NATPOOL1

Router(config)#interface gigabitEthernet 0/0

Router(config-if)#ip nat outside

Router(config-if)#exit

פורט G0/1 פונה לצד החיצוני:

Router(config)#interface gigabitEthernet 0/1

Router(config-if)#ip nat inside

לאחר מכן תוכלו לראות שניתן לשלוח חבילה לשרת

מעבדה PAT

להורדת המעבדה

PAT הוא כתובת אחת חיצונית והמון כתובות פנימיות One To Many זאת אומרת שרשת מחשבים כמו 192.168.1.0/24  תצא לעולם בכתובת אחת נאמר 212.10.15.10.

במעבדה שלנו נדמה את זה קצת יותר פשוט, כל רשת 192.168.1.0/24 תצא דרך כתובת 1.1.1.190 לעבר רשת 1.1.1.0/24 וכמובן כמו שהוסבר במעבדות הראשונות לשרת לא יהיה Default Gateway על מנת שנוכל לראות שהNAT עבד.

Router>en

Router#conf t

Router(config)#ip nat inside source list 1 interface gigabitEthernet 0/0 overload

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255

Router(config)#interface gigabitEthernet 0/0

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#interface gigabitEthernet 0/1

Router(config-if)#ip nat inside

כעת ניתן לראות את טבלת ה NAT

על ידי הפקודה:

ואפשר לראות שכל הכתובות ברשת 192.168.1.0 יוצאים דרך 1.1.1.2 שהוא ה Inside Global

Router#show ip nat translations

Pro Inside global Inside local Outside local Outside global

icmp 1.1.1.2:1024 192.168.1.20:1 1.1.1.1:1 1.1.1.1:1024

icmp 1.1.1.2:1 192.168.1.10:1 1.1.1.1:1 1.1.1.1:1

icmp 1.1.1.2:2 192.168.1.10:2 1.1.1.1:2 1.1.1.1:2

 

להורדת המעבדה (מוכנה)

מאמרים קשורים

Leave a Comment