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