NAT (Network Address Translation)

NAT (Network Address Translation)

โจทย์มีการกำหนดเงื่อนไขการใช้งาน  ACL ที่เป็นเครือข่าย Router on a stick ให้ทำ Static กับ Dynamic Overload NAT (NAPT)

1. Vlan 10 เปิดได้เฉพาะ Web

2. Vlan 20 ไม่สามารถเชื่อมต่อกับ Server ได้

3. Vlan 30 Ping ไป server ได้อย่างเดียว

Network Address Translation (NAT) การ NAT เป็นการแทนที่หมายเลข (private) IP address ต้นทางของแพ็ตเก็ตที่วิ่งผ่านอุปกรณ์ออกไปให้เป็นหมายเลข (Public) IP address ที่กำหนด ซึ่งอุปกรณ์ที่สามารถทำ NAT ได้เช่น Router, Firewall

การสื่อสารในระบบเครือข่ายอินเตอร์เน็ต จะมีการกำหนด IP Address ซึ่งเป็นหมายเลขที่ใช้สำหรับระบุตัวตนของผู้ใช้งาน (หมายเลข IP จะเป็นกลุ่มเลข 4 ชุด เช่น 202.153.148.21 เป็นต้น) ซึ่งแต่ละคนจะมีหมายเลข IP Address ไม่ซ้ำกัน อย่างไรก็ตามโดยปกติ IP Address ที่ได้รับเวลาเล่น internet ผ่านทาง ISP จะได้รับเป็นหมายเลขแบบสุ่ม

ปัจจุบันมีผู้ใช้งาน Internet มากมาย ทำให้ IP Address ที่แจกจ่ายให้นั้น ไม่เพียงพอ อย่างไรก็ตาม การแก้ไขปัญหา IP ไม่เพียงพอ สามารถทำได้โดยใช้วิธีการทำ Network Address Translation (NAT) หรือการสร้างตารางการจับคู่ของ IP แบบสุ่ม (ตัวอย่าง : สมมุติว่าองค์กรมีคอมพิวเตอร์ 50 เครื่องที่ต้องการเล่น internet และมี Registered IP จาก ISP 2 หมายเลข การทำ NAT แบบสุ่ม จะมีการตรวจสอบว่า IP ใดว่างก็จะมีการใช้ IP นั้นๆ) สำหรับอุปกรณ์สำหรับทำ NAT สามารถทำได้จากอุปกรณ์ที่เรียกว่า Router หรือ Firewall

 

NAT แบ่งได้เป็น 3 แบบคือ Static NAT ,Dynamic NAT และ PAT

Static NAT จะเป็นการ Mapping IP แบบ 1 ต่อ 1 คือเครื่องในวง NAT 1 IP เวลาผ่าน NAT ก็จะออก 1 IP  โดย Static NAT จะต้องมีการกำหนดไว้ล่วงหน้าว่า IP ในวง NAT เมื่อต้องการออกข้างนอก IP นี้จะเปลี่ยนเป็น IP อะไรเมื่อผ่าน NAT เช่น

192.168.1.1 ->202.144.30.59

192.168.1.2 -> 202.144.30.60

192.168.1.5 -> 202.144.30.63

แสดงว่าเมื่อ IP ในวง NAT 192.168.1. เมื่อต้องการออกข้างนอกหลังจากผ่าน NAT แล้ว IP นี้จะเปลี่ยนเป็น IP 202.144.30.59

เมื่อ IP ในวง NAT 192.168.1.2 เมื่อต้องการออกข้างนอกหลังจากผ่าน NAT แล้ว IP นี้จะเปลี่ยนเป็น IP 202.144.30.60

 

Dynamic NAT เป็นการเปลี่ยนแปลงค่าหมายเลขไอพีแอดเดรสโดยมีการจับคู่กันของหมายเลขไอพีแอดเดรสที่เป็น Private IP กับหมายเลขไอพีแอดเดรสภายนอกเพียงชั่วคราวเท่านั้น โดยอุปกรณ์ NAT จะจับคู่หมายเลขไอพีแอดเดรสในช่วงเวลาที่ session มีการเชื่อมต่อกันอยู่เท่านั้น หลังจากที่ใช้งาน session เสร็จเรียบร้อยแล้วจะไม่เก็บข้อมูลการจับคู่นั้นไว้อีก เมื่อมีการเชื่อมต่อกับเครือข่ายภายนอกอีกครั้ง อุปกรณ์ NAT จะเลือกหมายเลขไอพีแอดเดรสภายนอกใหม่อีกครั้งหนึ่ง ซึ่งไม่จำเป็นต้องซ้ำกับหมายเลขเดิม

จะทำงานคล้ายๆกับ Static NAT แต่จะต่างตรงที่ Dynamic NAT จะสร้าง NAT pool ซึ่งเป็น IP ชุดหนึ่งที่ไว้สำหรับออกข้างนอก เวลาเครื่องในวง NAT ต้องการออกไปข้างนอก IP ในวง NAT จะถูก Mapping เข้ากับ NAT pool เพื่อออกไปข้างนอก เช่น

สมมติกำหนดให้ IP Pool มีค่าตั้งแต่ 202.144.30.1 - 202.144.30.50

เมื่อ IP 192.168.1.5 ต้องการออกข้างนอกหลังจากผ่าน NAT แล้ว IP นี้จะเปลี่ยนเป็น 202.144.30.1

เมื่อ IP 192.168.1.1 ต้องการออกข้างนอกหลังจากผ่าน NAT แล้ว IP นี้จะเปลี่ยนเป็น 202.144.30.2

 

Port Address Translation เป็น NAT แบบหนึ่งโดยใช้ port ในการ Mapping IP เมื่อเครื่องในวง NAT ต้องการออกข้างนอก NAT จะMapping IP และ Port ของเครื่องนั้นหลังจากนั้นเมื่อ Package ออกนอก NAT Package นั้นจะใช้ IP NAT เช่น สมมติให้ IP ขาออกของ NAT คือ 202.144.30.1

เมื่อ IP 192.168.1.5  ต้องการออกข้างนอกโดยใช้ port 555

หลังจากผ่าน NAT แล้ว IP นี้จะเปลี่ยนเป็น 202.144.30.1 port 555

เมื่อ IP 192.168.1.1  ต้องการออกข้างนอกโดยใช้ port 111

หลังจากผ่าน NAT แล้ว IP นี้จะเปลี่ยนเป็น 202.144.30.1 port 111

หลักการทำงานของ NAT

โดยทั่วไปในระบบเครือข่ายภายในองค์กร โดยเฉพาะองค์กรที่มี Server เป็น Windows NT, 2000 server จะมีการกำหนด IP ภายในองค์กรที่เรียกว่า private IP เช่น 192.168.0.1 หรือ 10.0.0.1 เป็นต้น IP เหล่านี้จะไม่สามารถนำไปใช้งานในระบบอินเตอร์เน็ตได้ การทำ NAT จะเป็นการแปลง private IP ให้เป็น IP ที่สามารถใช้งานบนระบบอินเตอร์เน็ตได้ หรือที่เราเรียกว่า Registered IP  จากรายละเอียดข้างต้น ยังไม่สามารถอธิบายความสามารถของการทำ NAT ได้ ดังนั้นขออธิบายเพิ่มเติมเกี่ยวกับ NAPT : Network Address Port Translation โดยรายละเอียดแล้ว การสื่อสารผ่านระบบเครือข่ายอินเตอร์เน็ต โดยใช้ช่องทางสื่อสาร TCP/IP จะประกอบด้วย

Source IP Address

Source Port

Destination IP Address

Destination Port

ซึ่งทั้งหมดนี้ รวมเรียกว่า Socket และตัว Socket นี้เองจะเป็นตัวกำหนดว่าการสื่อสารนั้นยังคงดำเนินการต่ออยู่หรือไม่ และเนื่องจากจำนวน port ใน Firewall จะมีจำนวน ports ถึง 65,535 (สำหรับ server 1024 ports) ดังนั้นจะมี ports คงเหลือ 64,511 ทำให้เราสามารถต่ออินเตอร์เน็ตภายในองค์กร โดยใช้ Registered IP เพียงไม่กี่หมายเลข และนี่คือความสามารถพิเศษในการใช้งานในส่วนของ NAPT นั่นเอง

ขั้นตอนการทำงาน

      NAT จะสร้างตารางภายในซึ่งมีไว้สำหรับบรรจุข้อมูล IP address ของเครื่องในเครือข่ายภายในที่ส่ง packet ผ่าน NAT device  จากนั้นก็จะสร้างตารางไว้สำหรับเก็บข้อมูลหมายเลขพอร์ต (port number) ที่ถูกใช้ไปโดย outside IP address จะมีกระบวนการทำงานดังนี้

1. จะบันทึกข้อมูล source IP address และ source port number ไว้ใน Log File

2. จะแทนที่ IP ของ packet ด้วย IP ขาออกของ NAT device เมื่อ NAT device ได้รับ packet ย้อนกลับมาจาก external network  ก็จะตรวจสอบ destination port number ของ packet นั้นๆ แล้วนำมาเปรียบเทียบกับข้อมูล source port number ใน Log File ถ้าเจอข้อมูลที่ตรงกันก็จะเขียนทับ destination port number, destination IP address ของ package นั้นๆ แล้วจึงส่ง packet นั้นไปยังเครื่องอยู่ภายในเครือข่ายภายใน

 

Private IP Address

     หมายเลขไอพีแอดเดรสในช่วงที่ไม่สามารถนำมาเชื่อมต่อกับเครือข่ายอื่นๆ ได้โดยตรง  ซึ่งช่วงของหมายเลขไอพีแอดเดรสที่เป็น Private IP นั้น จะแบ่งเป็น 3 กลุ่มด้วยกันคือ

1. ช่วงหมายเลข 10.0.0.0 – 10.255.255.255 ( 10 / 8 )

2. ช่วงหมายเลข 172.16.0.0 – 172.32.255.255 ( 172.16 / 12 )

3. ช่วงหมายเลข 192.168.0.0 – 192.168. 255.255 ( 192.168 / 16 )

 

คุณสมบัติของอุปกรณ์ NAT

     อุปกรณ์เครือข่าย หรือโปรแกรมที่ใช้ในการทำ NAT จะต้องมีความสามารถในการทำงานต่างๆ เหล่านี้คือ

1. สามารถกำหนดหมายเลขไอพีแอดเดรสได้ (Transparent address assignment)

2. สามารถส่งผ่าน package ของข้อมูลที่มีการเปลี่ยนแปลงแอดเดรสได้ (Transparent address routing through address transition)

3. สามารถเปลี่ยนแปลงข้อมูลของ ICMP payload ได้ (ICMP error message payload translation)

 

Lab Overloading NAT Static ใช้ (ACL) เพื่อทดลอง

  1. ลบ Routing Private IP ของวง VLAN 10,20,30
  2. สร้าง NAT แบบ NAPT (Overload)
  3. จัดรูปแบบ one to many (Static NAT)

 

  1. เริ่มลบ Routing Private IP ของวง VLAN 10,20,30

R1>en

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#router rip

R1(config-router)#no network 192.168.10.0

R1(config-router)#no network 192.168.20.0

R1(config-router)#no network 192.168.30.0

 

จากนั้นทดสอบ Ping PC2 ไปยัง Server 199.199.199.199

Vlan 30 Ping ไป server ได้อย่างเดียว  : ผลคือไม่สามารถติตดต่อ server ได้

สร้าง NAT แบบ NAPT (Overload) และจัดรูปแบบ one to many (Static NAT) โดย

1. ประกาศช่วง Private IP โดยใช้ Standard ACL

2. ประกาศช่วง Public IP โดยกำหนด interface ของขา Wan เพื่อให้ Private IP ออก internet ได้ และใส่ Overload เพื่อให้ทำงานใน Mode NAPT

3. On NAT ที่ Interface 

 

1.ประกาศช่วง Private IP โดยใช้ Standard ACL

R1(config)#access-list 1 permit 192.168.10.0 0.0.0.255

R1(config)#access-list 1 permit 192.168.20.0 0.0.0.255

R1(config)#access-list 1 permit 192.168.30.0 0.0.0.255

 

2. กำหนด inside NAT ขาเข้า ip ต้นทางอยู่ในกลุ่ม Access list 1 และให้ออก ที่ Gi0/0 โดย config ให้เป็น NAPT โดยเติม Overload ต่อท้าย

R1(config)#ip nat inside source list 1 interface GigabitEthernet 0/0 overload

 

3. On NAT ให้ Interface

R1(config)#interface GigabitEthernet0/1.10

R1(config-subif)#ip nat inside

R1(config-subif)#exit

R1(config)#interface GigabitEthernet0/1.20

R1(config-subif)#ip nat inside

R1(config-subif)#exit

R1(config)#interface GigabitEthernet0/1.30

R1(config-subif)#ip nat inside

R1(config-subif)#exit

R1(config)#interface GigabitEthernet0/0

R1(config-if)#ip nat outside

 

ตรวจดู NAT Config

R1#show running-config

Interface GigabitEthernet 0/0                        เป็นขาออก ถูกกำหนดเป็น ip nat outside

Sub interface GigabitEthernet 0/1.10, .20, .30  เป็นขาเข้า ถูกกำหนดเป็น ip nat inside

 

 

 

ทดสอบการทำงาน NAT ที่ network VLAN 10 

computer P0 สามารถเป็นWeb Server ได้แต่ Ping ไม่ได้ตามเงื่อนไข ACL

 

เปิด Web ได้

 

Ping ไม่เจอ server

ทดสอบการทำงาน NAT ที่ network VLAN 20 

computer P1 ไม่สามารถติดต่อ server ได้ตามเงื่อนไข ACL

 

ทดสอบการทำงาน NAT ที่ network VLAN 30 

computer P2 และ P5 VLAN30 สามารถ ping ติดต่อ server ได้

แต่เปิดเว็ปไม่ได้ตามเงื่อนไข ACL

 

Lab Overloading NAT Dynamic

ใช้ Lab 5 (ACL) เพื่อทดลอง

  1. ลบ Routing Private IP ของวง VLAN 10,20,30
  2. สร้าง NAT แบบ NAPT (Overload)
  3. จัดรูปแบบ Many to Many (Dynamic NAT)

 

 

  1. เริ่มลบ Routing Private IP ของวง VLAN 10,20,30

R1>en

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#router rip

R1(config-router)#no network 192.168.10.0

R1(config-router)#no network 192.168.20.0

R1(config-router)#no network 192.168.30.0

 

จากนั้นทดสอบ Ping PC2 ไปยัง Server 199.199.199.199

Vlan 30 Ping ไป server ได้อย่างเดียว  : ผลคือไม่สามารถติตดต่อ server ได้

 

ปรับ IP address สำหรับทำ NAT Pool

ที่ Router ปรับ ip address ที่ interface GigabitEthernet 0/0 เป็น 199.199.199.1/29

ในการปรับเป็น Subnet เพื่อให้มี IP เพิ่มเพื่อมาทำ IP Pool

R1(config)#interface GigabitEthernet0/0

R1(config-if)#ip address 199.199.199.1  255.255.255.248

และปรับ ip address ที่ Router R2 ที่ interface GigabitEthernet0/0 เป็น 199.199.199.2/29

R2(config)#interface GigabitEthernet0/0

R2(config-if)#ip address 199.199.199.2  255.255.255.248

 

รูปแบบ Config NAT Overloading แบบ Dynamic

1.ประกาศช่วง Private IP โดยใช้ Standard ACL

R1(config)#access-list 1 permit 192.168.10.0 0.0.0.255

R1(config)#access-list 1 permit 192.168.20.0 0.0.0.255

R1(config)#access-list 1 permit 192.168.30.0 0.0.0.255

 

2. ประกาศช่วง IP Public(IP Pool)

R1(config)# ip nat pool NAT-Pool 199.199.199.3 199.199.199.6 netmask 255.255.255.248

 

3. ประกาศ Dynamic NAT โดยกำหนด Pool name เพื่อให้ private ip ออก internet ได้ใส่ Overload เพื่อทำงานใน mode NAPT

 R1(config)# ip nat inside source list 1 pool NAT-Pool overload

 

  1. On NAT ที่ interface

R1(config)#interface GigabitEthernet0/1.10

R1(config-subif)#ip nat inside

R1(config-subif)#exit

R1(config)#interface GigabitEthernet0/1.20

R1(config-subif)#ip nat inside

R1(config-subif)#exit

R1(config)#interface GigabitEthernet0/1.30

R1(config-subif)#ip nat inside

R1(config-subif)#exit

R1(config)#interface GigabitEthernet0/0

R1(config-if)#ip nat outside

 

ตรวจดู NAT Config

R1#show running-config

Interface GigabitEthernet 0/0                        เป็นขาออก ถูกกำหนดเป็น ip nat outside

Sub interface GigabitEthernet 0/1.10, .20, .30  เป็นขาเข้า ถูกกำหนดเป็น ip nat inside

 

 

ค่า NAT และ Access list ที่ทำการ config

 

 

ทำการทดสอบการทำงาน Overloading Dynamic NAT ที่ VLAN 10,20,30 ตามลำดับ

ผลที่ได้เหมือนกับการทดสอบ Overloading Static-NAT

 

ทดสอบการทำงาน NAT ที่ network VLAN 10 

computer P0 สามารถดู Web Server ได้แต่ Ping ไม่ได้ตามเงื่อนไข ACL

 

ตรวจดูตาราง NAT

 

 

ประเภทเนื้อหาของ article
Computer Network
Rating
Average: 4 (1 vote)