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