5.1 ความรู้เบื้องต้นเกี่ยวกับ NAT
อีกหัวข้อที่น่าสนใจมากคือ NAT NAT ย่อมาจากNetwork Address Translationและมักมีอยู่ในเราเตอร์ทุกตัวเป็นบริการ แล้วมันคืออะไรและทำไมจึงจำเป็น?
NATเป็นจุดที่เครือข่ายท้องถิ่นสามารถเชื่อมต่อกับเครือข่ายทั่วโลก เช่น อินเทอร์เน็ต เป็นต้น
อย่างที่คุณทราบแล้วว่าบนเครือข่ายท้องถิ่น คอมพิวเตอร์ทุกเครื่อง (และอุปกรณ์อื่นๆ ที่เชื่อมต่อกับเครือข่าย) จะมีที่อยู่ IP ในเครื่องของตนเอง และเพื่อแลกเปลี่ยนข้อมูลกับเซิร์ฟเวอร์บนอินเทอร์เน็ต จำเป็นที่คอมพิวเตอร์ของเราสามารถส่งคำขอไปยังเซิร์ฟเวอร์และเซิร์ฟเวอร์สามารถส่งการตอบกลับถึงเราได้ และเขาควรส่งคำตอบไปที่ใดหากไม่ทราบที่อยู่ IP ของเรานอกเครือข่ายท้องถิ่นของเรา
ลองนึกภาพว่าคุณกำลังเขียนจดหมายถึงโดนัลด์ ทรัมป์ ทรัมป์เป็นบุคคลสาธารณะ เขาเป็นคนเดียว - นี่คือเซิร์ฟเวอร์สาธารณะของเรา และคุณระบุ Masha เป็นที่อยู่ผู้ส่งในจดหมาย คลุกเคล้าเยอะๆ Masha ใดควรส่งคำตอบ?
ดังนั้นคุณจึงส่งจดหมายถึงคนรู้จักของคุณในวอชิงตัน ซึ่งเป็นบุคคลสาธารณะ พร้อมคำแนะนำอย่างเคร่งครัดให้ส่งถึงทรัมป์ เพื่อนของคุณได้รับจดหมาย ส่งถึงทรัมป์ และให้ที่อยู่ของเขาในวอชิงตันเป็นที่อยู่ผู้ส่งกลับ
จากนั้นหลังจากได้รับคำตอบจากทรัมป์ คนรู้จักก็ส่งต่อให้คุณ เหมือนกันกับแพ็กเก็ต IP ...
ในการอนุญาตให้อุปกรณ์ที่มีที่อยู่ IPv4 ส่วนตัวสามารถเข้าถึงอุปกรณ์และทรัพยากรนอกเครือข่ายท้องถิ่นได้ จะต้องเปลี่ยนที่อยู่ส่วนตัวเป็นที่อยู่สาธารณะก่อน
เพียงแค่ NAT แปลที่อยู่ส่วนตัวเป็นที่อยู่สาธารณะ สิ่งนี้ทำให้อุปกรณ์ที่มีที่อยู่ IP ในเครื่องสามารถเข้าถึงทรัพยากรนอกเครือข่ายส่วนตัวได้ NAT ร่วมกับที่อยู่ IP ในเครื่องได้พิสูจน์แล้วว่าเป็นวิธีที่มีประโยชน์ในการรักษาที่อยู่ IPv4 สาธารณะ
มีผู้คน 8 พันล้านคนในโลกนี้ และยังมีอุปกรณ์เครือข่ายอีกมากมาย: โทรศัพท์ แล็ปท็อป สมาร์ทวอทช์ เซิร์ฟเวอร์ และอุปกรณ์สมาร์ทใดๆ และมีที่อยู่ IP เพียง 4 พันล้านที่อยู่ มันเคยดูเหมือนมากมาย แต่ด้วยการเติบโตอย่างรวดเร็วของอินเทอร์เน็ต ทำให้ทุกคนเห็นได้ชัดว่ามันยังไม่เพียงพอ
NAT มาช่วยแล้ว: ที่อยู่ IPv4 สาธารณะหนึ่งที่อยู่สามารถใช้ได้กับอุปกรณ์หลายร้อยหรือหลายพันเครื่อง โดยแต่ละเครื่องมีที่อยู่ IPv4 ในเครื่อง NAT มีประโยชน์เพิ่มเติมในการเพิ่มระดับความเป็นส่วนตัวและความปลอดภัยให้กับเครือข่าย เนื่องจากจะซ่อนที่อยู่ IPv4 ภายในจากเครือข่ายภายนอก
5.2 เครือข่ายย่อยใน NAT
LAN มักจะได้รับการออกแบบด้วยที่อยู่ IP ส่วนตัว เหล่า นี้คือที่อยู่จากเครือข่ายย่อยส่วนตัว10.0.0.0/8
และ ที่อยู่ IP เหล่านี้ถูกใช้เป็นการภายในโดยองค์กรหรือไซต์เพื่อให้อุปกรณ์สื่อสารภายในเครื่อง ไม่สามารถกำหนดเส้นทางได้บนอินเทอร์เน็ต172.16.0.0/12
192.168.0.0/16
เราเตอร์ที่เปิดใช้งาน NAT สามารถกำหนดค่าด้วยที่อยู่ IPv4 สาธารณะที่ถูกต้องตั้งแต่หนึ่งที่อยู่ขึ้นไป ที่อยู่สาธารณะเหล่านี้เรียกว่าพูล NAT
เมื่ออุปกรณ์ในเครือข่ายภายในส่งการรับส่งข้อมูลจากเครือข่ายไปยังภายนอก เราเตอร์ที่เปิดใช้งาน NAT จะแปลที่อยู่ IP ภายในของอุปกรณ์เป็นที่อยู่ IP สาธารณะจากพูล NAT สำหรับอุปกรณ์ภายนอก การรับส่งข้อมูลทั้งหมดเข้าและออกจากเครือข่ายดูเหมือนจะมีที่อยู่ IP สาธารณะ
เราเตอร์ NAT มักจะทำงานที่ขอบของเครือข่าย Stub เครือข่ายต้นขั้วเป็นคำที่มาจากทฤษฎีเครือข่าย: เครือข่ายต้นขั้วที่มีการเชื่อมต่อกับเครือข่ายข้างเคียง ทางเข้าและทางออกเดียวจากเครือข่าย
เมื่ออุปกรณ์ภายในเครือข่าย Stub ต้องการสื่อสารกับอุปกรณ์นอกเครือข่าย แพ็กเก็ตจะถูกส่งต่อไปยังเราเตอร์และดำเนินการตามกระบวนการ NAT ซึ่งจะแปลที่อยู่ส่วนตัวภายในของอุปกรณ์เป็นที่อยู่สาธารณะ ภายนอก และกำหนดเส้นทางได้
5.3 คำศัพท์ NAT
หากคุณเจาะลึกทฤษฎีเครือข่าย NAT ก็คือเครือข่ายภายใน ซึ่งเป็นชุดของซับเน็ตที่จะแปล เครือข่ายภายนอกหมายถึงเครือข่ายอื่นทั้งหมด
เมื่อใช้ NAT ที่อยู่ IP จะมีการกำหนดที่แตกต่างกันโดยขึ้นอยู่กับว่าอยู่ในเครือข่ายส่วนตัวหรือบนเครือข่ายสาธารณะ (บนอินเทอร์เน็ต) และการรับส่งข้อมูลนั้นเป็นขาเข้าหรือขาออก
NAT มีที่อยู่สี่ประเภท:
- ที่อยู่ภายในเครื่อง (ที่อยู่ในท้องถิ่น);
- ที่อยู่ร่วมภายใน (ที่อยู่ร่วมภายใน);
- นอกที่ อยู่ในท้องที่ ;
- ที่อยู่ส่วนกลางภายนอก (ที่อยู่ส่วนกลางภายนอก);
เมื่อพิจารณาว่าจะใช้ที่อยู่ประเภทใด สิ่งสำคัญคือต้องจำไว้ว่าคำศัพท์ NAT จะถูกนำไปใช้เสมอจากมุมมองของอุปกรณ์ด้วยที่อยู่ที่แปล:
- ที่อยู่ภายใน (ที่อยู่ภายใน) - ที่อยู่ของอุปกรณ์ที่แปลโดย NAT
- ที่อยู่ภายนอก – ที่อยู่อุปกรณ์ปลายทาง
- ที่อยู่ในท้องถิ่นคือที่อยู่ใด ๆ ที่ปรากฏภายในเครือข่าย
- ที่อยู่ส่วนกลางคือที่อยู่ใด ๆ ที่ปรากฏภายนอกเครือข่าย
ลองดูสิ่งนี้ด้วยตัวอย่างไดอะแกรม
คอมพิวเตอร์ในภาพด้านซ้ายมีที่อยู่ภายในเครื่อง ( Inside local ) 192.168.1.5
และจากมุมมองของเครื่อง เว็บเซิร์ฟเวอร์มีที่อยู่ภายนอก ( ภายนอก ) 208.141.17.4
เมื่อแพ็กเก็ตข้อมูลถูกส่งจากคอมพิวเตอร์ไปยังที่อยู่ส่วนกลางของเว็บเซิร์ฟเวอร์ ที่อยู่ภายในเครื่อง ( Inside local ) ของพีซีจะถูกแปลเป็น208.141.16.5
( ภายในส่วนกลาง ) ที่อยู่อุปกรณ์ภายนอกมักไม่ได้รับการแปลเนื่องจากเป็นที่อยู่ IPv4 สาธารณะ
เป็นที่น่าสังเกตว่าคอมพิวเตอร์มีสองที่อยู่: ที่อยู่ในท้องถิ่นและที่อยู่ทั่วโลกในขณะที่เว็บเซิร์ฟเวอร์มีที่อยู่ IP สาธารณะเหมือนกัน จากมุมมองของเขา การรับส่งข้อมูลที่มาจากคอมพิวเตอร์มาจากที่อยู่ร่วม208.141.16.5
ภายใน เราเตอร์ NAT เป็นจุดแยกระหว่างเครือข่ายภายในและภายนอก และระหว่างที่อยู่ในโลคัลและโกลบอล
ข้อกำหนดภายในและภายนอกรวมกับข้อกำหนดในท้องถิ่นและทั่วโลกเพื่ออ้างถึงที่อยู่เฉพาะ ในภาพ เราเตอร์ได้รับการกำหนดค่าให้จัดเตรียม NAT และมีกลุ่มที่อยู่สาธารณะเพื่อกำหนดให้กับโฮสต์ภายใน
5.4 เส้นทางแพ็คเก็ต
หากคุณเหนื่อยแล้วไปบรรยายต่อไป หากคุณยังสนใจอยู่ ก็ขอต้อนรับสู่รูหนอนต่อไป
ภาพด้านล่างแสดงวิธีการรับส่งข้อมูลจากคอมพิวเตอร์ภายในไปยังเว็บเซิร์ฟเวอร์ภายนอกผ่านเราเตอร์ที่เปิดใช้งาน NAT ส่งออกและส่งต่อกลับ
ตาราง NAT ของเราเตอร์ | |||
---|---|---|---|
พีซี | เว็บเซิร์ฟเวอร์ | ||
Insde Global | ภายในท้องถิ่น | นอกท้องถิ่น | นอกโลก |
208.141.17.4 | 192.168.1.5 | 208.141.16.5 | 208.141.16.5 |
ที่ อยู่ภายในเครื่อง- ที่อยู่ต้นทางที่เห็นได้จากเครือข่ายภายใน ในรูปมีการ192.168.1.5
กำหนดที่อยู่ให้กับคอมพิวเตอร์ - นี่คือที่อยู่ภายในเครื่อง
ที่อยู่ส่วนกลางภายใน - ที่อยู่ต้นทางที่เห็นได้จากเครือข่ายภายนอก ในรูป เมื่อทราฟฟิกจากคอมพิวเตอร์ถูกส่งไปยังเว็บเซิร์ฟเวอร์ที่208.141.17.4
เราเตอร์จะแปลที่อยู่ภายในเครื่อง (local address) เป็นที่อยู่ร่วมภายใน (Inside global address) ในกรณีนี้ เราเตอร์เปลี่ยน ที่อยู่ ต้นทางIPv4จาก192.168.1.5
เป็น208.141.16.5
ที่อยู่ส่วนกลางภายนอก - ที่อยู่ของปลายทางที่เห็นได้จากเครือข่ายภายนอก นี่คือที่อยู่ IP ที่กำหนดเส้นทางได้ทั่วโลกซึ่งกำหนดให้กับโฮสต์บนอินเทอร์เน็ต ในแผนภาพ เว็บเซิร์ฟเวอร์พร้อมใช้งาน208.141.17.4
ที่ บ่อยครั้งที่ที่อยู่ภายนอกภายในและส่วนกลางภายนอกเหมือนกัน
ที่อยู่ภายนอกเครื่อง - ที่อยู่ของผู้รับที่เห็นได้จากเครือข่ายภายใน ในตัวอย่างนี้ คอมพิวเตอร์ส่งข้อมูลไปยังเว็บเซิร์ฟเวอร์ที่208.141.17.4
ทีนี้มาดูเส้นทางแพ็คเกจทั้งหมดกัน คอมพิวเตอร์ที่มีที่อยู่192.168.1.5
พยายามสื่อสารกับเว็บ208.141.17.4
เซิร์ฟเวอร์ เมื่อแพ็กเก็ตมาถึงเราเตอร์ที่เปิดใช้งาน NAT มันจะอ่านที่อยู่ IP ปลายทางของแพ็กเก็ตเพื่อพิจารณาว่าแพ็กเก็ตตรงกับเกณฑ์ที่ระบุสำหรับการแปลหรือไม่ ในตัวอย่างนี้ ที่อยู่ต้นทางตรงกับเกณฑ์และแปลจาก192.168.1.5
(ภายในที่อยู่ในท้องถิ่น) เป็น208.141.16.5
(ภายในที่อยู่ร่วม)
เราเตอร์เพิ่มการแมปที่อยู่แบบโลคัลกับโกลบอลไปยังตาราง NAT และส่งแพ็คเก็ตที่มีแอดเดรสต้นทางที่แปลแล้วไปยังปลายทาง เว็บเซิร์ฟเวอร์ตอบสนองด้วยแพ็คเก็ตที่ส่งไปยังที่อยู่ร่วมภายในของพีซี ( 208.141.16.5
)
เราเตอร์ได้รับแพ็คเก็ตที่มีที่อยู่ปลายทาง208.141.16.5
และตรวจสอบตาราง NAT เพื่อหารายการสำหรับการแมปนั้น มันใช้ข้อมูลนี้และแปลกลับที่อยู่ร่วมภายใน ( 208.141.16.5
) เป็นที่อยู่ในท้องถิ่นภายใน ( 192.168.1.5
) แพ็กเก็ตจะถูกเปลี่ยนเส้นทางไปยังพีซี
5.5 ข้อดีและข้อเสียของ NAT
บริการ NAT เป็นโซลูชันที่มีประสิทธิภาพมากซึ่งใช้ได้ทุกที่ NAT ให้ประโยชน์มากมายได้แก่ :
- NAT รักษารูปแบบการกำหนดแอดเดรสที่ลงทะเบียนไว้ ทำให้การทำงานของ LAN มีความยืดหยุ่น ด้วย NAT โฮสต์ภายในสามารถแบ่งปันที่อยู่ IP สาธารณะหนึ่งรายการสำหรับการสื่อสารภายนอกทั้งหมด การกำหนดค่าประเภทนี้ต้องการที่อยู่ภายนอกน้อยมากเพื่อรองรับโฮสต์ภายในจำนวนมาก
- NAT เพิ่มความยืดหยุ่นในการเชื่อมต่ออินเทอร์เน็ต พูลหลายพูล พูลสำรอง และพูลบาลานซ์โหลดสามารถนำมาใช้เพื่อให้มีการเชื่อมต่อเครือข่ายสาธารณะที่เชื่อถือได้
- NAT ให้ความสอดคล้องกันสำหรับรูปแบบการกำหนดที่อยู่ภายในของเครือข่าย บนเครือข่ายที่ไม่ใช้ที่อยู่ IP ส่วนตัวและ NAT การเปลี่ยนรูปแบบที่อยู่ IP ทั่วไปจำเป็นต้องเปลี่ยนเส้นทางโฮสต์ทั้งหมดบนเครือข่ายที่มีอยู่ ค่าใช้จ่ายในการส่งต่อโฮสต์อาจมีนัยสำคัญ NAT อนุญาตให้รูปแบบการระบุที่อยู่ส่วนตัวของ IPv4 ที่มีอยู่ยังคงอยู่ในขณะที่อนุญาตให้เปลี่ยนรูปแบบการระบุที่อยู่สาธารณะใหม่ได้อย่างง่ายดาย ซึ่งหมายความว่าองค์กรสามารถเปลี่ยนผู้ให้บริการและไม่จำเป็นต้องเปลี่ยนลูกค้าภายใน
- NAT ให้การรักษาความปลอดภัยเครือข่าย เนื่องจากเครือข่ายส่วนตัวไม่โฆษณาที่อยู่หรือโทโพโลยีภายใน จึงยังคงเชื่อถือได้พอสมควรเมื่อใช้ร่วมกับ NAT เพื่อควบคุมการเข้าถึงจากภายนอก อย่างไรก็ตาม คุณต้องเข้าใจว่า NAT ไม่ได้แทนที่ไฟร์วอลล์
แต่ NAT ก็มีข้อเสียอยู่บ้าง ความจริงที่ว่าโฮสต์บนอินเทอร์เน็ตดูเหมือนจะพูดคุยกับอุปกรณ์ที่เปิดใช้งาน NAT โดยตรงแทนที่จะพูดคุยกับโฮสต์จริงภายในเครือข่ายส่วนตัวทำให้เกิดปัญหาหลายประการ:
- ข้อเสียอย่างหนึ่งของการใช้ NAT คือประสิทธิภาพของเครือข่าย โดยเฉพาะอย่างยิ่งสำหรับโปรโตคอลแบบเรียลไทม์ เช่น VoIP NAT เพิ่มความล่าช้าในการสลับเนื่องจากการแปลที่อยู่ IP แต่ละรายการในส่วนหัวของแพ็กเก็ตต้องใช้เวลา
- ข้อเสียอีกประการหนึ่งของการใช้ NAT ก็คือการระบุที่อยู่แบบ end-to-end จะหายไป อินเทอร์เน็ตโปรโตคอลและแอปพลิเคชันจำนวนมากพึ่งพาการระบุที่อยู่แบบ end-to-end จากต้นทางไปยังปลายทาง แอปพลิเคชันบางตัวไม่ทำงานกับ NAT แอปพลิเคชันที่ใช้ที่อยู่จริงแทนที่จะเป็นชื่อโดเมนที่ผ่านการรับรองไม่สามารถเข้าถึงปลายทางที่แปลผ่านเราเตอร์ NAT บางครั้งสิ่งนี้สามารถหลีกเลี่ยงได้โดยใช้การแมป NAT แบบคงที่
- การติดตาม IPv4 จากต้นทางถึงปลายทางก็หายไปเช่นกัน การติดตามแพ็กเก็ตที่ผ่านการเปลี่ยนแอดเดรสแพ็กเก็ตหลายรายการผ่าน NAT hops หลายครั้งทำได้ยากขึ้น ทำให้การแก้ไขปัญหาทำได้ยาก
- การใช้ NAT ยังทำให้โปรโตคอลการทำช่องสัญญาณ เช่น IPsec ทำได้ยาก เนื่องจาก NAT เปลี่ยนค่าในส่วนหัวที่รบกวนการตรวจสอบความสมบูรณ์ที่ดำเนินการโดย IPsec และโปรโตคอลการทำช่องสัญญาณอื่นๆ
- บริการที่ต้องการการเชื่อมต่อ TCP เริ่มต้นจากเครือข่ายภายนอก หรือโปรโตคอลไร้สถานะ เช่น ที่ใช้ UDP อาจใช้งานไม่ได้ หากเราเตอร์ NAT ไม่ได้กำหนดค่าให้รองรับโปรโตคอลเหล่านี้ แพ็กเก็ตขาเข้าจะไม่สามารถไปถึงปลายทางได้
GO TO FULL VERSION