อะไรทำให้ที่อยู่ IP ส่วนตัวไม่สามารถกำหนดเส้นทางได้


21

ผมเข้าใจว่าที่อยู่เอกชนเช่น10.0.0.0/8, 172.16.0.0/12และ192.168.0.0/16ไม่ได้ routable อย่างไรก็ตามสิ่งที่จะหยุดที่อยู่เหล่านี้จากการถูกกำหนดเส้นทางอะไร? ISPs ใช้ ACL ที่ป้องกันเครือข่ายเหล่านี้ไม่ให้จัดเส้นทางหรือเป็นสิ่งที่สูงขึ้นหรือไม่

นอกจากนี้ IANA ยังเป็นผู้สร้างการออกแบบนี้หรือไม่?


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

3
สำหรับคำถามสุดท้ายของคุณ: IETFกำหนดให้ IANA ถูกแยกออกจากพื้นที่ที่อยู่สาธารณะ RFC1918 สำหรับ IPv4และRFC4193 สำหรับ IPv6
Lenniey

3
แน่นอนว่าพวกเขาสามารถกำหนดเส้นทางได้ เราเตอร์จะส่งข้อความจากที่อยู่ภายนอกสาธารณะของคุณและ "กำหนดเส้นทาง" ไปยังที่อยู่ส่วนตัวภายใน แนะนำให้คุณค้นหาพื้นฐานของการแปลที่อยู่เครือข่าย
Lakey

2
ทะเลสาบพวกเขาไม่สามารถกำหนดเส้นทางได้บนเว็บสาธารณะ ดังนั้นทำไมต้องมีชัยและใช้เพื่อประหยัดที่อยู่ IP .. ฉันอยู่ในชั้นเรียนของ Cisco และอาจารย์ของฉันไม่สามารถตอบคำถามนี้ได้นั่นคือสาเหตุที่ฉันโพสต์ไว้ที่นี่
QuantumRads

1
นอกจากนี้ฉันควรชี้แจงว่าที่อยู่ส่วนตัวสามารถกำหนดเส้นทางได้ในเครือข่ายส่วนตัว แต่ไม่ใช่เครือข่ายสาธารณะ
QuantumRads

คำตอบ:


39

ที่อยู่ IP เอกชนมี routable แม้ว่าพวกเขาจะไม่เปิดเผยต่อสาธารณชนส่ง โดยทั่วไปเราเตอร์จะกำหนดเส้นทางที่อยู่ส่วนตัวไปยัง LAN ส่วนตัว / ภายในแทนที่จะไปยังอินเทอร์เน็ต

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

ตัวอย่างเช่นให้ดูที่นี้ (งงบางส่วน) traceroute -I -n 192.168.200.1:

[root@myhost ~]# traceroute -I -n 192.168.200.1
traceroute to 192.168.200.1 (192.168.200.1), 30 hops max, 60 byte packets
 1  x.x.x.x  0.851 ms  0.841 ms  0.818 ms
 2  6x.xx.xx.xx  0.791 ms  0.791 ms  0.849 ms
 3  15x.xx.xx.xx  1.350 ms  1.347 ms  1.373 ms
 4  15x.x.xx.xx  1.446 ms  1.435 ms  1.428 ms
 5  151.6.68.20  2.272 ms  2.266 ms  2.251 ms
 6  151.6.0.91  8.818 ms  8.256 ms  8.326 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *
...
...
29  * * *
30  * * *

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

หลังจากทั้งหมด IP / คลาสส่วนตัวถูกทับซ้อนกัน (โดยคำจำกัดความ) ระหว่างลูกค้าดังนั้นเครือข่าย 192.168.200.x / 24 พันใดที่ควรกำหนดเส้นทางแพ็กเก็ตนี้

หมายเหตุด้านที่น่าสนใจ: ผู้ให้บริการอินเทอร์เน็ตมักจะใช้ที่อยู่ส่วนตัวสำหรับการกำหนดเส้นทางภายใน ตัวอย่างเช่นหากใช้คลาสส่วนตัว 192.168.200.x / 24 สำหรับการจัดเส้นทางภายในเราเตอร์ / เครื่องแรกที่มี IP 192.168.200.1 จะได้รับ แต่วางแพ็กเก็ตเนื่องจากไม่ได้รับการร้องขอ ICMP เป็นข้อยกเว้นที่น่าสนใจเนื่องจากโดยทั่วไปแล้วเราเตอร์ / เครื่องจะตอบกลับไปยัง PING ที่ไม่พึงประสงค์ ซึ่งหมายความว่าบางครั้งคุณสามารถใช้การสแกนที่อยู่ส่วนตัวเพื่อแมปเครือข่ายส่วนตัวของ ISP


2
ดังนั้นโดยทั่วไปหากที่อยู่ IP เริ่มต้นด้วย 10, 172.16-31 หรือ 192.168 ดังนั้นเราเตอร์ควรกำหนดค่าให้ส่งผ่านเครือข่าย LAN ภายในเท่านั้นแทนที่จะออกไปยังอินเทอร์เน็ตภายนอก (ในองค์กรโดยทั่วไปผ่านทางภายนอก ประตู). คุณสามารถอ่าน 'เครือข่ายส่วนตัว' เหล่านี้ได้ที่นี่: en.wikipedia.org/wiki/Private_network
บรูโน่

3
จริงๆแล้วไม่ใช่เรื่องแปลกที่จะกำหนดเส้นทางที่อยู่ RFC1918 ส่วนตัว (192.168, 172.16, 10) ทุกครั้งที่คุณสร้างเครือข่ายส่วนตัวที่กำหนดเส้นทาง
253751

3
@Bruno ไม่จำเป็น เส้นทางสามารถกำหนดเส้นทางที่อยู่ส่วนตัวด้านสาธารณะไปยังเกตเวย์เริ่มต้น แต่เราเตอร์อื่น ๆ จะวางแพ็กเก็ตหรือกำหนดเส้นทางในลูป (และแพ็กเก็ตจะถูกทิ้งเมื่อ TTL ถึง 0)
shodanshok

เราเตอร์หลักของ ISP มีเกตเวย์เริ่มต้นหรือไม่ มันควรจะเป็นยังไง?
kubanczyk

โดยทั่วไปแล้วใช่
ท้ายที่สุด

9

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

ไม่สามารถใช้ที่อยู่ IP ส่วนตัวบนอินเทอร์เน็ตได้เพราะทุกคนสามารถใช้งานได้ อาจมีอุปกรณ์หลายล้านเครื่องที่ใช้ 192.168.1.1 เป็นส่วนตัว - เราเตอร์อินเทอร์เน็ตตัวใดที่ควรส่งแพ็คเก็ต

ที่อยู่Zeroconf (169.254.0.0/16) ไม่สามารถกำหนดเส้นทางได้จริง สิ่งเหล่านี้สามารถใช้งานได้ทุกที่ในรูปแบบเฉพาะกิจ แต่ไม่สามารถเข้าถึงอินเทอร์เน็ตหรือเครือข่ายย่อยใดก็ได้ ไม่สามารถกำหนดเส้นทางได้เนื่องจากสามารถใช้ได้ภายในโดเมนการออกอากาศเท่านั้นซึ่งแต่ละอุปกรณ์สามารถเลือกที่อยู่ที่ไม่ได้ใช้ด้วยตัวเอง ตามคำนิยาม zeroconf ไม่มีอินสแตนซ์การจัดการเช่นเซิร์ฟเวอร์ DHCP


6

อย่างไรก็ตามสิ่งที่จะหยุดที่อยู่เหล่านี้จากการถูกกำหนดเส้นทางอะไร?

มาตรฐานที่ยอมรับซึ่งมีการบังคับใช้โดยหน่วยงานสื่อสาร สิ่งเหล่านี้ถูกบังคับใช้ในซอฟต์แวร์ฮาร์ดแวร์และการกำหนดค่า

ISPs ใช้ ACL ที่ป้องกันเครือข่ายเหล่านี้ไม่ให้จัดเส้นทางหรือเป็นสิ่งที่สูงขึ้นหรือไม่

พวกเขาสามารถ แต่สิ่งที่หยุดยั้งจริงๆเป็นเพียงการแปลที่ไม่ถูกต้องซึ่งไม่เป็นไปตามมาตรฐาน

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

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

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

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

นอกจากนี้ IANA ยังเป็นผู้สร้างการออกแบบนี้หรือไม่?

มาตรฐานเหล่านี้ไม่ได้รับการออกแบบโดย IANA วันนี้แม้ว่าพวกเขาจะเป็นผู้นำในการกำหนดมาตรฐาน แต่พวกเขาก็ไม่ได้บังคับใช้กฎหมายอย่างเด็ดขาด มันเป็นมาตรฐานที่บังคับใช้ผ่านฉันทามติ ค้นหา RFC 791

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

ฉันหวังว่าจะช่วย ..


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

1
@LightnessRacesinOrbit: นั่นเป็นคำที่ไม่มีคำพูดแรกในคำตอบนี้ซึ่งโดยทั่วไปแล้วจะไม่จำเป็นโดยเด็ดขาด ... คำนั้นเน้นจุดที่คุณทำ แม้ว่าฉันจะยอมรับว่าข้อความที่เป็นตัวเอียงของคุณจะทำให้จุดดีขึ้น
TOOGAM

2
@TOOGAM: ใช่ฉันแค่ inforcing อีกครั้ง ดังที่ฉันพูดฉันคิดว่าคำตอบนี้สมบูรณ์แบบ
การแข่งขัน Lightness กับโมนิก้า

1

ในฐานะที่เป็นคำชี้แจงจากคำตอบอื่น ๆ ช่วงที่อยู่ IP ส่วนตัวที่คุณใช้อยู่ในเครื่องจะไม่กำหนดเส้นทางไปยังอินเทอร์เน็ตเนื่องจากมีรายการที่ชัดเจนของตัวเองในตารางเส้นทาง นี่คือตารางเส้นทางของฉันจากเดสก์ท็อปที่บ้านตัวอย่างเช่น:

$ ip route
default via 192.168.1.1 dev enp5s0 proto dhcp src 192.168.1.104 metric 1024 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-90a372f4b373 proto kernel scope link src 172.18.0.1 linkdown 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.104 
192.168.1.1 dev enp5s0 proto dhcp scope link src 192.168.1.104 metric 1024

หมายเหตุและ172.17.0.0/16 172.18.0.0/16แพ็คเก็ตไปยังเครือข่ายเหล่านี้จะตรงไปที่สะพานนักเทียบท่าของฉันโดยไม่ต้องออกจากคอมพิวเตอร์เพราะมีรายการเฉพาะในตารางเส้นทางของฉัน 192.168.1.0/24รายการอย่างชัดเจนกล่าวว่าการจราจรไปยังเครือข่ายที่จะออกไปenp5s0อินเตอร์เฟซ ตารางเส้นทางของเราเตอร์ของฉันจะมีรายการที่คล้ายกันซึ่งจะส่งทราฟฟิกทั้งหมดสำหรับเครือข่ายส่วนตัวนั้นออกจากอินเตอร์เฟสที่เดสก์ท็อปของฉันเชื่อมต่ออยู่

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

$ ip route add unreachable 10.0.0.0/8

นี่เปลี่ยนตารางเส้นทางของฉันเป็น:

$ ip route
default via 192.168.1.1 dev enp5s0 proto dhcp src 192.168.1.104 metric 1024 
unreachable 10.0.0.0/8 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-90a372f4b373 proto kernel scope link src 172.18.0.1 linkdown 
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.104 
192.168.1.1 dev enp5s0 proto dhcp scope link src 192.168.1.104 metric 1024

ตอนนี้เดสก์ท็อปของฉันจะไม่ลองถามเกตเวย์เริ่มต้นเกี่ยวกับที่อยู่ในช่วงนั้น การค้นหาที่อยู่นั้นจะส่งคืนทันที "ไม่มีเส้นทางไปยังโฮสต์"

$ traceroute 10.0.0.1
traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 60 byte packets
connect: No route to host

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

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