Transcript NAT inside
แปลงไอพีบนเฮดเดอร
์ด
์วย
Network
Address
Translation
ความจาเป็ นที่ต้องแปลงที่อยูไ่ อพี
หลักการทางาน และเขต Inside/Outside
การตังค่
้ า
การระบุอินเตอร์ เฟสฝั่ ง Inside/Outside
การกาหนดขอบเขตข้ อมูลจากฝั่ ง Inside ที่จะแปลงออกไป
การระบุกลุม่ ที่อยูไ่ อพีที่จะแปลงเป็ นเมื่อส่งออกฝั่ ง Outside
คาสัง่ เปิ ดใช้ การแปลงที่อยูไ่ อพี
13-1
Private
IP
และการเชื่อ์ออิ
มต นเตอร
์เน็ต
จากการกาหนดช่วงที่อยู่ไอพีสว่ นตัว (Private
IP) ซึง่ ใช้ ซ ้ากันได้ บน LAN แต่ละองค์กร เพื่อ
เป็ นหนทางประหยัด IPv4
เพื่อป้องกันความวุน่ วายบนอินเตอร์ เน็ต ISP
จึงป้องกันไม่ให้ แพ๊ กเก็ตที่ระบุที่อยู่ไอพีต้นทาง
เป็ น Private IP ออกมาสูอ่ ินเตอร์ เน็ต
เราท์เตอร์ จึงมีฟีเจอร์ สาหรับแปลงที่อยู่ ไอพี
บน Header ของแพ๊ กเก็ตที่สื่อสารระหว่าง
LAN (เขต Inside) กับอินเตอร์ เน็ต (เขต
Outside) เรี ยก NAT (Network Address
Translation)
Inside
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
ไม่ รับ
Private IP
ISP
LAN
ต้ องแปลง
ไอพีต้นทาง
Outside
13-2
หลักการท
์างาน
Network Address Translation
Inside Outside
Fa0/0
Local Addresses
Global Addresses
S0
Global Addresses
Local Addresses
นิยามขอบเขต ฟี เจอร์ NAT แบ่งฝั่ งของเราท์เตอร์ เป็ น 2 ฝั่ ง ได้ แก่ ฝั่ งด้ านใน (Inside) และ
ฝั่ งด้ านนอก (Outside) โดยแยกฝั่ งด้ วยอินเตอร์ เฟส
นิยามชนิดที่อ่ยู ทุก Node ในแต่ละฝั่ ง จะมีที่อยู่ 2 แบบ ได้ แก่
Local: เป็ นที่อยู่สาหรับสื่อสารภายในฝั่ งตัวเอง
Global: เป็ นที่อยู่สาหรับสื่อสารข้ ามฝั่ ง
13-3
หลักการท
์างาน
Network Address Translation
หน้ าที่ของฟี เจอร์ NAT ก็คือ การแปลงที่อยู่ไอพีบนแพ๊ กเก็ตระหว่าง Local-Global
ดูท่ีอยู่ไอพีที่แต่ละชนิดได้ จากคาสัง่ show ip nat translation บนโหมดอีนาเบิล
Router# show ip nat translation
Pro Inside global
Inside local
udp 21.87.1.32:4057 192.168.0.10:4057
tcp 21.87.1.32:5055 192.168.0.10:5055
tcp 21.87.1.32:7309 192.168.0.15:7309
่
ฝง Inside มีการแปลงที่อ่ยู
Outside local
203.174.2.10:53
58.174.90.2:80
121.1.8.234:80
Outside global
203.174.2.10:53
58.174.90.2:80
121.1.8.234:80
่
ฝง Outside ่แปลงที
ไม
่อ่ยู
ในการใช้ งานสาหรับองค์กรทัว่ ไป ที่ต้องการให้ เครื่ องลูกข่ายภายใน
LAN สื่อสารออกมาฝั่ งอินเตอร์ เน็ตได้ จึงเลือกนา NAT เฉพาะฝั่ ง Local
เรี ยกการทา NAT ฝั่ งตัวเองนี ้ว่า “NAT inside”
13-4
การตัNAT
์า
้งค Inside
จากนิยามที่เกี่ยวข้ องกับการทา NAT inside .
ในการตังค่
้ าจึงต้ องระบุองค์ประกอบให้ ครบ 5
ส่วนดังต่อไปนี ้
ระบุอินเตอร์ เฟสที่เป็ นฝั่ ง “inside”
ระบุอินเตอร์ เฟสที่เป็ นฝั่ ง “outside”
ระบุกลุม่ ไอพีที่ใช้ อยู่ในฝั่ งตนเอง (Local
Address) ที่ต้องการทา NAT
ระบุกลุม่ ไอพีที่แปลงเป็ น เพื่อใช้ สื่อสาร
กับฝั่ งภายนอกได้ (Global Address)
ใส่คาสัง่ ให้ เราท์เตอร์ ทา NAT ที่ฝั่ง
“inside”
Inside Outside
1
2
S0
Fa0/0
3
Local Addresses
Global Addresses
4
5
ip nat “inside”
13-5
์าหนดฝ
ก ์
ง
Inside/Outside
เราจาเป็ นต้ องกาหนดฝั่ งบนอินเตอร์ เฟส
เพื่อให้ NAT รู้ทิศทางการแปลงไอพี
ใช้ คาสัง่ “ip nat inside” บนโหมดคอนฟิ ก
อินเตอร์ เฟสที่เป็ นฝั่ ง LAN เช่น
Router(config)# interface fa0/0
Router(config-if)# ip nat inside
ใช้ คาสัง่ “ip nat outside” บนโหมดคอนฟิ ก
อินเตอร์ เฟสที่เป็ นฝั่ งออกอินเตอร์ เน็ต เช่น
Router(config)# interface S0
Router(config-if)# ip nat outside
Fa0/0
Fa0/0
Src. IP
192.168.x.x
Des. IP
192.168.x.x
NAT
NAT
Src. IP
52.78.0.2
Des. IP
52.78.0.2
S0
ไปฝั่ ง Outside
S0
มาจาก Outside
Inside Outside
1
2
S0
Fa0/0
Local Addresses
Global Addresses
13-6
์าหนดกลุ
ก ์มที่อ์ยู
Local Address
การกาหนดกลุม่ ที่อยู่ Local Address ที่จะแปลงที่อยู่ไอพีเป็ น Global ก็คือ การระบุ
เงื่อนไข (Access List) ของแพ๊ กเก็ตข้ อมูลที่จะเข้ าอินเตอร์ เฟสฝั่ ง Inside ที่จะให้
ทา NAT เปลี่ยนที่อยู่ไอพีต้นทาง (Source IP address) นัน่ เอง (แล้ วจึงนา ACL no.
ไปใช้ กากับคาสัง่ เปิ ดการ NAT อีกที)
จึงใช้ การกาหนด Access List แบบ Standard (ตามหลักการ เพราะต้ องการกรอง
ข้ อมูลที่จะออกไปใช้ NAT ไม่ใช่กรองข้ อมูลที่จะเข้ าเราท์เตอร์ ) เช่น
ต้ องการให้ เครื่ องทังหมดในวงแลน
้
192.168.1.0/24 ต้ องทา NAT ออกอินเตอร์ เน็ต
access-list 1 permit 192.168.1.0 0.0.0.255
ต้ องการให้ เครื่ องทังหมดในวงแลน
้
192.168.10.192/27 ยกเว้ นเครื่ องไอพี
192.168.10.220 - .223 ต้ องทา NAT ออกอินเตอร์ เน็ต
13-7
access-list 2 deny 192.168.10.220 0.0.0.3
access-list 2 permit 192.168.10.192 0.0.0.31
์าหนดกลุ
ก ์มที่อ์ยู
Global Address
กลุม่ ที่อยู่ที่ใช้ เป็ น Inside Global ซึง่ เป็ นที่อยู่ที่
สามารถออกอินเตอร์ เน็ตได้ จะต้ องได้ รับการ
จัดสรรจากผู้ให้ บริการอินเตอร์ เน็ต (ISP)
โดยจากมุมมอง ISP ถือว่ า เครือข่ าย LAN ของ
เรา กาลังใช้ เครือข่ าย (หรือไอพี) แบบ Public
ที่เขาจ่ ายให้ ไม่สนใจว่าเราใช้ Private IP เป็ นอะไร
ดังนัน้ เราต้ องกาหนดกลุม่ ที่อยู่ (Pool) ที่จะใช้ เป็ น
Inside Global ตามที่ ISP กาหนด ทังรายชื
้
่อไอพี
และ Subnet Mask
เรามองคุณเป็ น
เครื อข่ าย Global
Inside
Global
Network
(from ISP)
ISP
LAN
58.12.109.8/29
Outside
ISP
Route 58.12.109.8/29
13-8
์าหนดกลุ
ก ์มที่อ์ยู
การตั่า
้งค
Global Address
ใช้ คาสัง่ ip nat pool ตามด้ วยชื่อ
กลุม่ ที่อยู่อ้างอิงตามต้ องการ และ
กลุม่ ไอพี/mask ที่ ISP กาหนดให้
ในโหมดโกลบัลคอนฟิ ก
Router(config)# ip nat pool (ชื่อ Pool) (ไอพีเริ่มต้ น) (ไอพีสุดท้ าย)
netmask (Subnet Mask ที่ ISP กาหนด)
ตัวอย
่าง
ISP จัดสรรกลุม่ ไอพีตงแต่
ั้
203.17.4.193 – 203.17.4.194/30
เรามองคุณเป็ น
เครื อข่ าย Global
Inside
Global
Network
(from ISP)
ISP
LAN
58.12.109.8/29
Outside
ISP
Route 58.12.109.8/29
Router(config)# ip nat pool Ranet 203.17.4.193 203.17.4.194
netmask 255.255.255.252
คาแนะนา: ถ้ าโจทย์ไม่กาหนดซับเน็ตมาให้ ให้ ตงค่
ั ้ าโดยใช้ เครื อข่ายที่แคบที่สดุ
13-9
์าสั
ค ่ง์ดการท
เป ์า
NAT Inside
ใช้ คาสัง่ ต่อไปนี ้บนโหมดโกลบัลคอนฟิ ก เพื่อเปิ ดการทา NAT บนอินเตอร์ เฟสฝั่ ง Inside
ตาม Local และ Global Address ที่เราตังค่
้ ารอไว้
Router(config)# ip nat inside source list (ACL no.) pool (ชื่อ Pool) overload
โดยที่ ACL no. คือ เลขอ้ างอิงของ Access-list ที่เราตังค่
้ าไว้ จากัดกลุม่ แพ๊ กเก็ตที่จะใช้
เป็ น Local Address
ชื่อ Pool คือ ชื่อกลุม่ ไอพี (Pool) ที่เราตังค่
้ าไปด้ วยคาสัง่ ip nat pool (ชื่อ Pool)
เพื่อใช้ เป็ น Global Address
ตัวอย
่าง ต้ องการทา NAT inside ที่ใช้ ACL no.10 เป็ นที่อยู่
Local และ Pool Ranet เป็ นที่อยู่ Global
Router(config)# ip nat inside source list 10 pool Ranet overload
13-10
การใช
์เลข Port์วย
ช
Port Address Translation
Inside Local
192.168.0.10:4032
192.168.0.11:5008 NAT-PT Trans.
192.168.0.12:4703
192.168.0.13:1152 “Overload”
192.168.0.14:9034
Inside Global
52.74.109.81:4032
52.74.109.81:5008
52.74.109.81:4703
52.74.109.81:1152
52.74.109.81:9034
เนื่องจาก ISP มักจัดสรร Global Address มาให้ เพียงไม่กี่ไอพี ย่อมไม่
เพียงพอต่อการแปลง Local Address ที่มีโฮสใช้ จานวนมาก
จึงมีวิธีการแปลง โดยใช้ เลขพอร์ ทเข้ าช่วย เนื่องจากจะทาให้ Global
Address 1 ตัว แทน Local Address ได้ หลายตัวดังภาพ เรี ยก
ความสามารถนี ้ว่า PAT หรื อ NAT-PT (Port Translation)
คาสัง่ ที่ให้ ทา PAT คือการต่อท้ ายคาสัง่ NAT inside ด้ วย “Overload”
Router(config)# ip nat inside source list 10 pool Ranet overload
13-11
ตัวอย
์างการใช
์
บริ ษัทราเน็ท ได้ รับ IP address จาก ISP มาใช้ 6
หมายเลข ตังแต่
้ 58.7.42.137 - .142 จงตังค่
้ า NAT ให้
เครื่ องโฮสภายใน LAN ที่มีไอพีเฉพาะ 192.168.14.225 .251 สามารถออกมาใช้ อินเตอร์ เน็ตได้
IP: 203.17.206.78/30
ISP
IP: 203.17.206.79/30
S0
Router(config)# interface S0
Router(config-if)# ip nat outside
Router(config-if)# interface Fa0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# access-list 1 deny 192.168.14.252 0.0.0.3
Router(config)# access-list 1 permit 192.168.14.224 0.0.0.31
Router(config)# ip nat pool RanetPool 58.7.42.137
58.7.42.142 netmask 255.255.255.248
Router(config)# ip nat inside source list 1 pool RanetPool
overload
ทวนสอบโดย Ping ไปยังเราท์ เตอร์ ของ ISP จากเครื่ องโฮสในแลน
Ranet-R
Fa0
LAN
Global Network: 58.7.42.136/29
Local Network: 192.168.14.224/27
13-12
การ NAT ออกอินเตอร
์เฟส
ถ้ าเราซื ้อบริ การอินเตอร์ เน็ตจาก ISP แต่ไม่ได้ ซื ้อ Global
IP: 203.17.206.78/30
IP ตายตัวมาด้ วย ISP จะสุม่ ตังค่
้ า IP address ชั่วคราว
ISP
ให้ ที่ขาฝั่ ง Outside ของเราท์เตอร์ เราแทนเพียงตัวเดียว IP address negotiated
S0
เช่น การที่ให้ เราตังค่
้ า IP address negotiated ที่
อินเตอร์ เฟสฝั่ ง Outside เพื่อให้ PPP server จ่ายไอพีมา
Ranet-R
ให้ อินเตอร์ เฟสของเรา เป็ นต้ น
LAN
Fa0
ดังนัน้ การ NAT inside จะต้ องใช้ Global IP ที่ ISP ตังค่
้ า
Local Network: 192.168.14.224/27
ให้ อินเตอร์ เฟสของเรา ซึง่ ไม่สามารถกาหนด Global
Address ตายตัวได้ จึงต้ องตังค่
้ าเป็ นชื่ออินเตอร์ เฟสแทน
ชื่อกลุม่ ไอพี (Pool) ดังนี ้
Router(config)# ip nat inside source list (ACL no.) interface (ชื่ออินเตอร์ เฟส) overload
เช่น Router(config)# ip nat inside source list 1 interface S0 overload
13-13
การ Forward Port
NAT inside Static
บางครัง้ เราต้ องการให้ การจับคูก่ นั ระหว่าง Local Address+Port กับ Global
Address+Port ตายตัว
เช่น ต้ องการให้ ผ้ ทู ี่เชื่อมต่อมายัง Global IP 203.87.2.37 Port 80 ให้ แปลงที่อยู่
ปลายทางมาเป็ นไอพีของเว็บเซิร์ฟเวอร์ ภายใน 192.168.0.100 Port 80 ตลอด
เราสามารถใช้ คาสัง่ ip nat inside source static สร้ างการจับคู่ Local/Global
address แบบตายตัว (Static) ได้ ดังนี ้
Router(config)# ip nat inside source static (tcp/udp) (Local add.) (Local Port)
(Global add.) (Global Port)
เช่น จากตัวอย่างด้ านบน พิมพ์คาสัง่ ได้ ว่า:
Router(config)# ip nat inside source static tcp 192.168.0.100 80 203.87.2.37 80
13-14