เลเยอร์เครือข่ายใดอยู่ข้อมูลที่ให้เกตเวย์ (โดยใช้ NAT) รู้ว่าคอมพิวเตอร์แบบใดที่มีความหมายสำหรับแพ็กเก็ต


1

คำถามหลัก:

  1. เลเยอร์เครือข่ายใดอยู่ข้อมูลที่ให้เกตเวย์ (โดยใช้ NAT) รู้ว่าคอมพิวเตอร์แบบใดที่มีความหมายสำหรับแพ็กเก็ต

  2. ใครช่วยอธิบายกระบวนการทำงานได้บ้าง ในการอธิบายกระบวนการเป็นไปได้หรือไม่ที่จะตอบคำถาม / ข้อสงสัยต่อไปนี้: ฉันคิดว่าการแปลงข้อมูล (ซึ่งรบกวนแพ็กเก็ตขาเข้าของพีซีที่ต้องส่งภายในเครือข่าย) นั้นไม่เหมือนกันสำหรับอุปกรณ์เกตเวย์แต่ละเครื่อง (ฉันคิดว่าอย่างอื่นคุณสามารถค้นหาจากนอกเครือข่ายที่คอมพิวเตอร์ในเครือข่ายแพ็คเก็ตสำหรับ แต่แล้วอีกครั้งที่อาจจะไม่จำเป็นต้องเป็นปัญหาด้านความปลอดภัย?)


โปรดกำหนดคำถามของคุณอีกครั้ง ดูเหมือนว่าคุณกำลังพยายามถามคำถามมากมายโดยไม่มีคำอธิบายที่เหมาะสม อย่างที่คุณเห็นจากคำตอบที่ทุกคนตั้งสมมติฐานไว้มากมาย
onxx

ถัดจากคำถามในชื่อฉันต้องการให้ใครบางคนอธิบายรายละเอียดที่จำเป็นเพื่อทำความเข้าใจว่าเกตเวย์สามารถแยกแยะความแตกต่างของคอมพิวเตอร์ที่มีแพ็กเก็ตขาเข้าได้อย่างไร
Bentley 4

คำตอบ:


2

สำหรับการเชื่อมต่อ TCP หรือ UDP มีองค์ประกอบสี่อย่างที่ประกอบกันเป็นแอดเดรสของแพ็กเก็ต ที่อยู่ IP ต้นทาง, ที่อยู่ IP ปลายทาง, พอร์ตต้นทางและพอร์ตปลายทาง

destinatin IP เป็นเซิร์ฟเวอร์ที่คุณเชื่อมต่อและพอร์ตปลายทางคือพอร์ตที่คุณกำลังเชื่อมต่อเช่น TCP พอร์ต 80 สำหรับการเชื่อมต่อ http พอร์ตต้นทางคือ "ชั่วคราว" ซึ่งหมายความว่าจะถูกเลือกจากช่วงและไม่มีความหมายเฉพาะ ช่วงอยู่ระหว่าง 1024-65535 การเลือกพอร์ตนั้นขึ้นอยู่กับระบบปฏิบัติการ แต่ไม่สำคัญว่าพอร์ตใดที่เลือก

ที่อยู่ IP ต้นทางคือพีซีที่สร้างการเชื่อมต่อ สมมุติว่าการเชื่อมต่อคือ 222.222.222.222:80 และเรามีพีซีสองเครื่องเชื่อมต่อกับที่อยู่ IP นี้ภายใน 10.1.1.1 และ 10.1.1.2

ดังนั้นเมื่อแพ็กเก็ตมาพวกมันอาจจะพูดถึงเรื่องนี้

10.1.1.1:3434 -> 222.222.222.222:80
10.1.1.2:5455 -> 222.222.222.222:80

แพ็กเก็ตการตอบกลับจะถูกย้อนกลับดังนี้:

222.222.222.222:80 -> 10.1.1.1:3434 
222.222.222.222:80 -> 10.1.1.2:5455 

ดังนั้นเราจะเห็นได้ว่าพอร์ตต้นทางคือสิ่งที่อนุญาตให้แพ็กเก็ตกลับมาถึงผู้ส่ง

เมื่อเราผ่านเราเตอร์ NAT IP ต้นทางจะเปลี่ยนเป็น IP ของเราเตอร์ - ในกรณีนี้ 111.111.111.111 ดังนั้นแพ็กเก็ตจะมีลักษณะดังนี้:

111.111.111.111:3434 -> 222.222.222.222:80
111.111.111.111:5455 -> 222.222.222.222:80

ดังนั้นหากเราเตอร์คอยติดตามพอร์ตต้นทางของการเชื่อมต่อจากนั้นจะทราบว่าแพ็กเก็ตตอบกลับไปยังพอร์ต 3434 ควรถูกส่งไปที่ 10.1.1.1 นี่คือตารางการแปล NAT

แต่จะเกิดอะไรขึ้นถ้าพีซีของเราทั้งคู่เลือกพอร์ตต้นทางเดียวกัน

10.1.1.1:3434 -> 222.222.222.222:80
10.1.1.2:3434 -> 222.222.222.222:80

แพ็คเก็ต NATted จะมีลักษณะเช่นนี้:

111.111.111.111:3434 -> 222.222.222.222:80
111.111.111.111:3434 -> 222.222.222.222:80

ดังนั้นแพ็คเก็ตการตอบสนองต่อ 3434 ที่มีไว้สำหรับ 10.1.1.1 นั้นจะแยกไม่ออกจากชุดข้อมูลเดียวสำหรับ 10.1.1.2

ในการหลีกเลี่ยงปัญหานี้เราเตอร์จะไม่เพียง แต่เปลี่ยนที่อยู่ IP ต้นทาง แต่จะเปลี่ยนเป็นพอร์ตต้นทางด้วย จากนั้นเราเตอร์สามารถมั่นใจได้ว่าการเชื่อมต่อทุกครั้งมีพอร์ตต้นทางที่ไม่ซ้ำกันและเก็บตารางการแปลเพื่อเปลี่ยนทั้ง IP และพอร์ตของแพ็กเก็ตตอบกลับดังนั้นพวกเขาจึงถูกส่งไปยังผู้ส่งที่ถูกต้อง

ในการตอบคำถามเพื่อความปลอดภัยของคุณเราเตอร์จำเป็นต้องเปลี่ยนพอร์ตต้นทางในกรณีที่เกิดการชนกัน แต่ส่วนใหญ่จะเปลี่ยนพอร์ตต้นทางในทุกกรณีและเลือกพอร์ตต้นทางแบบสุ่ม สิ่งนี้ทำให้ยากที่จะคาดการณ์ว่าพอร์ตต้นทางถัดไปที่เลือกอาจเป็นอะไรและทำให้ผู้โจมตีสามารถฉีดแพ็คเก็ตลงในลำดับได้ยากขึ้น


1

โดยทั่วไปใน NAT เราเตอร์ที่บ้านจะทำงานที่เลเยอร์ 4 ใน TCP และการเชื่อมต่อ UDP บางอย่างเราเตอร์จะดูที่พอร์ตต้นทางและปลายทางเพื่อสร้างตารางการแปล NAT เพื่อแมปที่อยู่ IP จริงและพอร์ตไปยังที่อยู่ IP และพอร์ตที่ตั้งชื่อ สิ่งนี้เรียกว่าโอเวอร์โหลด NAT หรือ PAT (การแปลที่อยู่พอร์ต) ในบางโปรโตคอลเช่น DNS เราเตอร์จะตรวจสอบแพ็กเก็ตและใช้ข้อมูลเลเยอร์แอปพลิเคชัน (ชื่อโดเมนที่ถูกสอบถาม) เพื่อกำหนดที่อยู่ที่จะส่งการตอบสนอง DNS ไป
นี่คือตัวอย่างของตารางการแปล NAT ที่นำมาจาก Cisco ASA:

PAT Global 216.1.250.22(400) Local 172.16.1.102(123)
PAT Global 216.1.250.22(9370) Local 172.16.1.107(13286)
PAT Global 216.1.250.22(45935) Local 172.16.1.107(36159)
PAT Global 216.1.250.22(60152) Local 172.16.1.107(10736)
PAT Global 216.1.250.22(322) Local 172.16.1.107(123)
PAT Global 216.1.250.22(48642) Local 172.16.1.44(59136)
PAT Global 216.1.250.22(24719) Local 172.16.1.44(59764)
PAT Global 216.1.250.22(17045) Local 172.16.1.44(57830)
PAT Global 216.1.250.22(44616) Local 172.16.1.44(59100)
PAT Global 216.1.250.22(19426) Local 172.16.1.44(57632)
PAT Global 216.1.250.22(38447) Local 172.16.1.44(58904)
PAT Global 216.1.250.22(6053) Local 172.16.1.44(59958)
PAT Global 216.1.250.22(49473) Local 172.16.1.44(59323)
PAT Global 216.1.250.22(55193) Local 172.16.1.44(58597)
PAT Global 216.1.250.22(38978) Local 172.16.1.44(59170)

1

พื้นฐานสำหรับการเชื่อมต่อขาออกเราเตอร์ใช้ "ตารางการแปล NAT" ซึ่งสร้างขึ้นแบบไดนามิก เช่นเมื่อเริ่มการเชื่อมต่อขาออกจะมีการเพิ่มรายการที่เกี่ยวข้องลงในตารางนั้น (แสดงรายการ IP / พอร์ตภายในคอมพิวเตอร์, ใช้พอร์ตขาออกบนเราเตอร์, IP เป้าหมาย / พอร์ต ฯลฯ ) ตามปกติแล้วตารางนี้จะถูกเก็บไว้ในหน่วยความจำของเราเตอร์และไม่ได้ถูกส่งไปทุกที่ดังนั้นระดับ OSI จึงไม่สามารถใช้งานได้ เมื่อแพ็กเก็ตขาเข้ามาถึงเราเตอร์จะพิจารณาตารางนั้นเพื่อพิจารณาวิธีการจัดการเพิ่มเติม

สำหรับการเชื่อมต่อขาเข้าเราเตอร์จะต้องใช้การกำหนดค่าที่กำหนดไว้ล่วงหน้าซึ่งเชื่อมต่อบริการบนคอมพิวเตอร์ภายในบางเครื่องเข้ากับพอร์ต (เช่น NAT การเชื่อมต่อขาเข้าทั้งหมดไปยังพอร์ต TCP 80 กับคอมพิวเตอร์ภายในพอร์ต ABCD 8080 เป็นต้น) อีกครั้ง ไม่เคยส่งบนสายอย่างชัดเจน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.