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/12192.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 3
ตาราง 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 ไม่ได้กำหนดค่าให้รองรับโปรโตคอลเหล่านี้ แพ็กเก็ตขาเข้าจะไม่สามารถไปถึงปลายทางได้