โดยปกติแล้วในการตั้งค่า NAT สำหรับการแปลงหมายเลขที่อยู่จาก
private IPv4 address ไปเป็น public IPv4 address บน Cisco
IOS Router จะต้องมีการบอกขอบเขต (domain) ให้กับเราเตอร์ว่าอินเทอร์เฟสใดเป็นฝั่ง
NAT inside และอินเทอร์เฟสใดเป็นฝั่ง NAT outside แต่หลังจาก
Cisco IOS version 12.3(14)T เป็นต้นมา จะสามารถทำการตั้งค่า NAT
โดยที่ไม่ต้องมีการกำหนด NAT inside และ
NAT outside อีกต่อไป ด้วยการใช้งานคุณสมบัติ NAT
Virtual Interface นั่นเองครับ
สำหรับใครที่ยังไม่รู้จักกับ NAT ก็ขอให้ติดตามบทความนี้ก่อนนะครับ
การตั้งค่า NAT(Network Address Translation) บน CiscoIOS ในการตั้งค่า NAT แบบ NVI นี้
จะไม่ต้องทำการบอกขอบเขตว่าอินเทอร์เฟสใดเป็นเครือข่ายภายในหรือเครือข่ายภายนอกให้กับเราเตอร์อีกต่อไป
เพียงแค่กำหนดว่าจะเปิดการทำงานของ NAT บนอินเทอร์เฟสใดบ้าง ด้วยการใช้คำสั่ง
"ip nat enable" เท่านั้น แต่ในส่วนการตั้งค่าและใช้งาน
NAT ก็ยังคงรูปแบบเดิม ๆ อยู่
ยังไงลองมาดูตัวอย่างการตั้งค่า NAT แบบ NVI ในรูปแบบต่าง
ๆ กันเลยดีกว่าครับ
แต่ก่อนที่จะทำการตั้งค่า NAT ในรูปแบบต่าง
ๆ เราจะต้องเปิดการทำงานของ NVI บนแต่ละอินเทอร์เฟสที่มีทราฟิกที่จะทำการ
NAT ใช้งานผ่านกันก่อน ด้วยการใช้คำสั่ง "ip
nat enable" บนแต่ละอินเทอร์เฟส (ทดแทนการตั้งค่า NAT
inside และ NAT outside ในการตั้งค่าแบบเดิม)
ตัวอย่างการตั้งค่า
R1(config)#interface FastEthernet 0/0
R1(config-if)#ip address 10.1.1.254 255.255.255.0
R1(config-if)#ip nat enable
R1(config-if)#exit
R1(config)#interface FastEthernet 0/1
R1(config-if)#ip address 212.122.34.65 255.255.255.240
R1(config-if)#ip nat enable
R1(config-if)#exit
ตัวอย่างการตั้งค่า Static NAT
Static NAT เป็นการทำ NAT แบบ
one-to-one คือหมายเลข private IP address หนึ่งหมายเลขจะแปลงไปเป็นหมายเลข
public IP address หนึ่งหมายเลขแบบหนึ่งต่อหนึ่ง
โดยทั่วไปจะใช้งานกับเครื่อง Server ที่อยู่ในเครือข่ายภายใน
ที่ต้องการเข้าใช้งานจากเครือข่ายภายนอก
R1(config)#ip nat source static 10.1.1.101 212.122.34.66
R1(config)#ip nat source static 10.1.1.102 212.122.34.67
R1(config)#ip nat source static 10.1.1.10 212.122.34.70
R1#show ip nat nvi translations
Pro Source global
Source local Destin local
Destin global
--- 212.122.34.70
10.1.1.10 --- ---
icmp 212.122.34.66:1
10.1.1.101:1 8.8.8.8:1 8.8.8.8:1
--- 212.122.34.66
10.1.1.101 --- ---
icmp 212.122.34.67:0
10.1.1.102:0 4.2.2.2:0 4.2.2.2:0
--- 212.122.34.67 10.1.1.102 --- ---
tcp 208.10.20.30:39251 208.10.20.30:39251
212.122.34.70:80 10.1.1.10:80
จากตัวอย่างด้านบน เป็นการตั้งค่า Static NAT
โดยกำหนดให้ทำการแปลง private IP address ไปเป็น public IP address แบบ one-to-one
ดังนี้
- หมายเลข private IP address 10.1.1.101 แปลงไปเป็น public IP address 212.122.34.66
- หมายเลข private IP address 10.1.1.102 แปลงไปเป็น public IP address 212.122.34.67
- หมายเลข private IP address 10.1.1.10 แปลงไปเป็น public IP address 212.122.34.70
โดยเมื่อเครื่องภายนอกเครื่องข่ายต้องการติดต่อสื่อสารมายังโฮสต์ภายในเครือข่าย
(เช่น ไปยัง web server) จะทำการติดต่อสื่อสารผ่านทางหมายเลข public
IP address ที่ได้ทำการ NAT เอาไว้
ตัวอย่างการตั้งค่า Dynamic NAT
เป็นการแปลงหมายเลข IP Address แบบ
many to many คือ private IP Address ของเครื่องภายในเครือข่ายหลาย
ๆ เครื่องจะทำการแปลงไปเป็น public IP Address ของเครือข่ายภายนอกหลาย
ๆ หมายเลข โดยการแปลงหมายเลข IP Address นั้นจะทำตามลำดับ คือ private
IP Address ของเครื่องในเครือข่ายภายในที่มาก่อนก็จะทำการแปลงเป็น
public IP Address ของเครือข่ายภายนอกในอันดับแรก ๆ ก่อน โดยถ้ามี
IP Address ของเครือข่ายภายนอก 3 IP Address เครื่องในเครือข่ายภายในก็จะสามารถติดต่อสื่อสารกับเครือข่ายภายนอกได้เพียง
3 เครื่องในเวลาหนึ่ง ๆ เท่านั้น
ในการตั้งค่า dynamic NAT จะต้องทำการสร้าง access-list เพื่อระบุถึงหมายเลข
IP address ต้นทางที่ต้องการจะทำ NAT และจะต้องทำการสร้าง pool เพื่อใช้กำหนดถึงหมายเลขของ
IP address ที่จะใช้ในการแปลงหมายเลข IP address ไป
R1(config)#access-list 10 permit 10.1.1.0 0.0.0.255
R1(config)#ip nat pool dynamic-pool 212.122.34.66
212.122.34.70 prefix-length 28
R1(config)#ip nat source list 10 pool dynamic-pool
R1#show ip nat nvi translations
Pro Source global
Source local Destin local
Destin global
icmp 212.122.34.66:0 10.1.1.101:0 8.8.8.8:0 8.8.8.8:0
icmp 212.122.34.66:1 10.1.1.101:1 8.8.8.8:1 8.8.8.8:1
--- 212.122.34.66
10.1.1.101 --- ---
icmp 212.122.34.67:2 10.1.1.102:2 4.2.2.2:2 4.2.2.2:2
icmp 212.122.34.67:3 10.1.1.102:3 4.2.2.2:3 4.2.2.2:3
--- 212.122.34.67
10.1.1.102 --- ---
จากตัวอย่างด้านบนเป็นการตั้งค่า dynamic NAT โดยทำการสร้าง
access-list หมายเลข
10 เพื่อกำหนดถึง
private IP address ที่ต้องการจะทำ
NAT แบบ
dynamic
จากนั้นจะเป็นการสร้าง pool
ที่มีชื่อว่า dynamic-pool เพื่อกำหนดหมายเลข public IP address ที่จะทำการแปลงหมายเลข
private IP address ไป
โดยเมื่อตั้งค่าเสร็จแล้ว private
IP address ใดที่จะติดต่อสื่อสารกับเครื่องภายนอกเครื่องข่ายก่อน
จะได้รับหมายเลข public
IP address หมายเลขแรกไปใช้งาน
ตัวอย่างการตั้งค่า PAT (NAT overload)
PAT หรือที่เรียกว่า NAT overloading เป็นการแปลงหมายเลข
IP Address แบบ many to one คือ
private IP Address ของเครื่องภายในเครือข่ายหลาย ๆ
เครื่องจะทำการแปลงไปเป็น public IP Address ของเครือข่ายภายนอกเพียง
IP Address เดียวเท่านั้น โดยในการแปลงหมายเลข IP
Address จะทำการแปลงหมายเลข Port ต้นทางไปด้วย
ในการตั้งค่า PAT หรือ NAT overload จะต้องทำการสร้าง
access-list เพื่อระบุถึงหมายเลข IP address ต้นทางที่ต้องการจะทำ
NAT และจะต้องทำการสร้าง pool เพื่อใช้กำหนดถึงหมายเลขของ IP address ที่จะใช้ในการแปลงหมายเลข
IP address ไป
R1(config)#access-list 10 permit 10.1.1.0 0.0.0.255
R1(config)#ip nat pool overload-pool 212.122.34.66 212.122.34.66
prefix-length 28
R1(config)#ip nat source list 10 pool overload-pool overload
R1#show ip nat nvi translations
Pro Source global
Source local Destin local
Destin global
icmp 212.122.34.66:3 10.1.1.10:3 4.2.2.2:3 4.2.2.2:3
icmp 212.122.34.66:5 10.1.1.101:5 8.8.8.8:5 8.8.8.8:5
tcp 212.122.34.66:18037 10.1.1.102:18037 208.10.20.30:23 208.10.20.30:23
tcp 212.122.34.66:48643
10.1.1.102:48643 208.10.20.30:23 208.10.20.30:23
จากตัวอย่างด้านบน เป็นการตั้งค่า PAT (NAT overload) โดยทำการสร้าง
access-list หมายเลข
10 เพื่อกำหนดถึงหมายเลข
private IP address ที่ต้องการจะทำ
NAT และทำการสร้าง
pool เพื่อกำหนดถึงหมายเลข
public IP address คล้าย
ๆ กับการตั้งค่า dynamic
NAT เพียงแต่ว่าในการใช้งานคำสั่ง NAT จะมี
keyword ว่า
“overload” เข้ามาด้วย
ก็จะเป็นการทำ PAT โดยทุก
ๆ private IP address จะถูกแปลงไปเป็นหมายเลข
public IP address เพียง
IP address เดียว
โดยจะมีการแปลงหมายเลขพอร์ตไปด้วย
นอกจากนี้ยังสามารถใช้งานหมายเลข public IP address บนอินเทอร์เฟส
Fa0/1 ของเราเตอร์ในการ
NAT หมายเลข
private IP address ออกไปก็ได้
เช่น
R1(config)#access-list 10 permit 10.1.1.0 0.0.0.255
R1(config)#ip nat source list 10 interface fastEthernet 0/1 overload
R1#show ip nat nvi translations
Pro Source global
Source local Destin local
Destin global
icmp 212.122.34.65:2 10.1.1.10:2 4.2.2.2:2 4.2.2.2:2
icmp 212.122.34.65:4 10.1.1.101:4 8.8.8.8:4 8.8.8.8:4
tcp 212.122.34.65:61911
10.1.1.102:61911 208.10.20.30:23 208.10.20.30:23
tcp 212.122.34.65:62002
10.1.1.102:62002 208.10.20.30:23 208.10.20.30:23
ตัวอย่างการตั้งค่า Static PAT
เป็นการแปลงหมายเลข IP Address แบบ
one to one คล้าย ๆ กับการทำ Static NAT แต่จะมีการระบุหมายเลขพอร์ตไปด้วย ในบางครั้ง
Static PAT จะเรียกว่า
Port Forwarding คือจะทำการแปลงหมายเลขพอร์ตได้ตามที่ต้องการ
R1(config)#ip nat source static tcp 10.1.1.10 80
212.122.34.70 80
R1(config)#ip nat source static tcp 10.1.1.101 20
212.122.34.70 20
R1(config)#ip nat source static tcp 10.1.1.101 21
212.122.34.70 21
R1(config)#ip nat source static tcp 10.1.1.102 23
212.122.34.69 2323
R1#show ip nat nvi translations
Pro Source global
Source local Destin local
Destin global
tcp 8.8.8.8:43455
8.8.8.8:43455
212.122.34.70:80 10.1.1.10:80
tcp 212.122.34.70:80
10.1.1.10:80 --- ---
tcp 212.122.34.70:20
10.1.1.101:20 --- ---
tcp 212.122.34.70:21
10.1.1.101:21 --- ---
tcp 212.122.34.69:2323 10.1.1.102:23 --- ---
tcp 208.10.20.30:18425 208.10.20.30:18425
212.122.34.69:2323 10.1.1.102:23
tcp 208.10.20.30:21925 208.10.20.30:21925
212.122.34.69:2323 10.1.1.102:23
จากตัวอย่างด้านบน เป็นการตั้งค่า Static PAT โดยจะคล้ายกับการตั้งค่า
Static NAT แต่จะมีการระบุหมายเลขพอร์ตไปด้วย
ข้อดีของการใช้งาน NVI มีดังนี้
- NAT จะทำงาน per interface ไม่ใช่ per domain (NAT inside,NAT outside) ทำให้สามารถใช้งานได้อย่างมีประสิทธิภาพมากยิ่งขึ้น
- ไม่ต้องทำการกำหนด domain (NAT inside,NAT outside) อีกต่อไป
ข้อจำกัดในการใช้งาน NVI มีดังนี้
- ไม่รองรับการใช้งานร่วมกับ route-map
- ไม่รองรับการทำงานแบบ NAT on-a-stick (NAT โดยใช้ physical interface เดียว)
- ไม่รองรับการทำงานแบบ NAT TCP Load Distribution
การทำ NAT แบบ
NVI จะเปลี่ยนแนวคิดในการตั้งค่า NAT ไป
จากเดิมที่จะต้องมีการกำหนด inside และ outside บนเราเตอร์
ซึ่งจะทำให้มีข้อจำกัดในการใช้งานค่อนข้างมาก โดยเฉพาะอย่างยิ่งในปัจจุบันที่บางครั้งไม่ได้นำ NAT ไปใช้งานเพื่อแปลง private IP address กับ
public IP address เพียงอย่างเดียวเท่านั้น โดยอาจจะนำ NAT
ไปแปลงหมายเลขที่อยู่ระหว่างระบบ 2
ระบบ ซึ่งจะมีข้อจำกัดมากถ้าหากยังคงใช้งานการ NAT แบบเดิมที่จะต้องมีการกำหนด
inside และ outside (ใครเคยทำ
NAT จาก outside ด้วยคำสั่ง
"ip nat outside" จะทราบ) หรือในกรณีที่มีหลาย ๆ inside interface และต้องการ
NAT ระหว่าง inside to inside ด้วยกัน
หรือการทำ NAT U-tern เป็นต้น แต่ด้วยการใช้งาน NAT แบบ
NVI จะไม่ต้องมีการกำหนด inside หรือ
outside โดยจะทำการ NAT ตาม
traffic flow ใน routing table แทน
ซึ่งจะทำให้การใช้งาน NAT สามารถทำได้อย่างสะดวกมากยิ่งขึ้น
No comments:
Post a Comment