โจทย์มีการกำหนดเงื่อนไขการใช้งาน 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) เพื่อทดลอง
- ลบ Routing Private IP ของวง VLAN 10,20,30
- สร้าง NAT แบบ NAPT (Overload)
- จัดรูปแบบ one to many (Static NAT)
- เริ่มลบ 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) เพื่อทดลอง
- ลบ Routing Private IP ของวง VLAN 10,20,30
- สร้าง NAT แบบ NAPT (Overload)
- จัดรูปแบบ Many to Many (Dynamic NAT)
- เริ่มลบ 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
- 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