จะตรวจสอบที่อยู่ IP สาธารณะที่ถูกต้องได้อย่างไร


39

พิจารณารายการที่อยู่ IP ที่จัดทำโดยส่วนหัว X-Forwarded-For HTTP :

10.0.0.142, 192.168.0.10, 212.43.234.12, 54.23.66.43

ฉันต้องการทราบว่าเป็นที่อยู่แรกที่เข้าถึงได้แบบสาธารณะในรายการนั้น ฉันสามารถตรวจสอบพวกเขาได้อย่างง่ายดาย แต่ฉันจะบอกได้อย่างไรว่าใครสามารถเข้าถึงได้แบบสาธารณะ มันดูเหมือนว่าฉัน (ตาได้รับการฝึกฝนของฉัน) ที่10.0.0.142เป็นเวิร์กสเตชัน192.168.0.10เป็นพร็อกซี่ภายในและที่อยู่สาธารณชนสามารถเข้าถึงได้ถูกส่งต่อผ่านพร็อกซี่ที่212.43.234.12 54.23.66.43มีวิธีคำนวณรหัสนี้ไหม?

สัญชาตญาณแรกของฉันที่อยู่ที่ที่เริ่มต้นด้วย10.หรือ192.ไม่สามารถเข้าถึงสาธารณะ แต่http://simplesniff.comเผยให้เห็นบ้านที่อยู่ IP 192.117.111.61ของฉันจะ มีสูตรสำหรับการพิจารณาว่าที่อยู่ใดเป็นสาธารณะและที่สงวนไว้เป็นส่วนตัว โปรดทราบว่าแม้การพยายาม ping เซิร์ฟเวอร์ที่เป็นปัญหาอาจไม่ช่วยได้เนื่องจากเซิร์ฟเวอร์บางเครื่องไม่ตอบสนองต่อการ ping และอาจมีที่อยู่ในเครือข่ายท้องถิ่นของฉันซึ่งตรงกับที่อยู่ภายในด้วย


3
ฉันยังอยากจะชี้ให้เห็นว่าแม้ถ้าคุณหาที่อยู่เป็น routable บาง บริษัท ละเมิดพื้นที่ประชาชนที่อยู่ภายใน ฉันมีความรู้โดยตรงเกี่ยวกับชื่อ บริษัท ที่มีขนาดใหญ่และเป็นที่รู้จักอย่างมากโดยใช้พื้นที่AFRINICและ AT&T IPv4 บนเครือข่ายภายในองค์กรแทนการใช้พื้นที่ RFC1918 ... พวกเขาพร็อกซี HTTP ทั้งหมด ... และ X-Forwarded - สำหรับส่วนหัวจากเครือข่ายองค์กรจะแสดงพื้นที่สาธารณะที่พวกเขาไม่ได้เป็นเจ้าของ
Mike Pennington

@MikePennington มีประสบการณ์เช่นนี้ยกเว้นพวกเขาใช้หมายเลข APNIC อาจทำให้เกิดปัญหาเมื่อเครื่องภายใน (โดยเฉพาะผู้ที่ค้นหาปลายทางที่อยู่ในเครือข่ายย่อยของพวกเขา) พยายามเข้าถึงหนึ่งในเซิร์ฟเวอร์สาธารณะ ...
emynd

@MikePennington - สำหรับเครือข่ายส่วนตัวที่ใช้ที่อยู่ IPv4 ที่ใช้งานจริงที่อยู่นอกเครือข่ายส่วนตัว (เช่นอินเทอร์เน็ต) คนในเครือข่ายส่วนตัวจะเข้าถึงเว็บไซต์สาธารณะด้วยที่อยู่ IP ในช่วงเดียวกันได้อย่างไร คำขอนั้นจะไม่ถูกส่งไปยังคอมพิวเตอร์บางเครื่อง (แม้กระทั่งคอมพิวเตอร์ของตัวเอง) ภายในเครือข่ายส่วนตัวหรือไม่
Kevin Fegan

การเชื่อว่า x-forwarded-for เป็นความคิดที่ไม่ดี มันเป็นเรื่องไม่สำคัญสำหรับผู้ที่กระทำความผิดใด ๆ ในการตั้งค่าส่วนหัว x-forwarded-for ปลอมโดยอ้างที่อยู่ใด ๆ ที่พวกเขาต้องการ
Peter Green

คำตอบ:


24

RFC 1918 กำหนดช่วงที่อยู่ IP ส่วนตัว ดูที่นี่

จากเอกสารนั้น:

  1. พื้นที่ที่อยู่ส่วนตัว

    ผู้ให้บริการอินเทอร์เน็ตกำหนดหมายเลข (IANA) ได้สงวนพื้นที่ที่อยู่ IP สามบล็อกต่อไปนี้สำหรับ internets ส่วนตัว:

    10.0.0.0 - 10.255.255.255 (คำนำหน้า 10/8)

    172.16.0.0 - 172.31.255.255 (คำนำหน้า 172.16 / 12)

    192.168.0.0 - 192.168.255.255 (คำนำหน้า 192.168 / 16)


ขอขอบคุณ. ฉันคิดว่ามันน่าสนใจที่127.0.0.0/16(และอาจมากกว่า) ไม่ได้อยู่ในรายการนั้น
dotancohen

5
localhost กำหนดไว้ในtools.ietf.org/html/rfc6761
Darryl Braaten

4
@dotancohen: บล็อกลูปแบ็คคือ / 8 ไม่ใช่ / 16 และไม่ได้อยู่ในรายการนั้นเพราะไม่ใช่พื้นที่ที่อยู่ส่วนตัว
Blrfl

@Blrfl: ขอบคุณฉันไม่แน่ใจว่าบล็อก loopback กว้างแค่ไหน จริงๆแล้วฉันไม่ได้ต้องการระบุที่อยู่ส่วนตัว แต่เป็นที่อยู่ที่ไม่ใช่แบบสาธารณะ (ส่วนย่อยของที่อยู่ส่วนตัว) นอกเหนือจากที่อยู่ RFC 1918/6890 และช่องว่าง 127.0.0.0/8 มีที่อยู่ที่ไม่ใช่แบบสาธารณะอื่น ๆ ที่เห็นได้ชัดหรือไม่
dotancohen

1
en.wikipedia.org/wiki/… 240.0.0.0 - 254.255.255.254 (240.0.0.0/4 และ 255.0.0.0/8/8)
David Houde

37

นอกเหนือจากพื้นที่ RFC 1918 ดั้งเดิม (ซึ่งปัจจุบันได้รับการปรับปรุงเป็นRFC6890 ) มีบล็อกอื่น ๆ อีกหลายอย่างเช่น 192.0.2.0 ที่ไม่ได้ประกาศต่อสาธารณะ นอกจากนี้อาจเป็นไปได้ว่ามีใครบางคนมีพื้นที่ IPv4 ที่ถูกต้องซึ่งไม่ได้ประกาศในอินเทอร์เน็ตสาธารณะ

สิ่งที่ง่ายที่สุดที่จะทำคือtelnet route-views.oregon-ix.netลงชื่อเข้าใช้rviewsและมองหาตัวคุณเอง ... เช่นนี้เป็นพื้นที่ "192" ที่ประกาศโดย AS7018 (AT&T) ...

route-views>sh ip route 192.199.1.0
Routing entry for 192.199.1.0/24
  Known via "bgp 6447", distance 20, metric 0
  Tag 7018, type external
  Last update from 12.0.1.63 3w1d ago
  Routing Descriptor Blocks:
  * 12.0.1.63, from 12.0.1.63, 3w1d ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 7018

route-views>

ในทางกลับกันคุณจะเห็นว่า 192.0.2.0/24 (อ้างอิงRFC6890 ) ไม่พบที่ใดเลย ...

route-views>sh ip route 192.0.2.0 255.255.255.0
% Subnet not in table
route-views>

และไม่เป็น 169.254.0.0/16 (หรือมากกว่า)

route-views>sh ip route 169.254.0.0 255.255.0.0 longer
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 128.223.51.1 to network 0.0.0.0

route-views>

1
RFC 1918ยังไม่ได้รับการปรับปรุงโดย (หรือถึง) RFC 6890 RFC 6890เพียง " ยืนยันการมอบหมายบล็อกที่อยู่ IPv4 (192.0.0.0/24) ให้กับ IANA นอกจากนี้ยังแนะนำให้ IANA ปรับโครงสร้างที่อยู่พิเศษของ IPv4 และ IPv6 การลงทะเบียน "จะไม่อัปเดตรายการรีจีสทรีที่อยู่วัตถุประสงค์พิเศษของ IPv4 สำหรับการใช้งานส่วนตัวและบล็อกที่อยู่ IPv4 192.0.0.0/24 ถูกจัดประเภทเป็น" การกำหนดโปรโตคอล IETF "
one.time

2
@ one.time, RFC 6890 มี superset ของพื้นที่ที่อยู่ที่สงวนไว้ใน RFC 1918 ฉันไม่รู้ว่าทำไมคุณถึงพูดถึง 192.0.0.0/24; บางทีคุณควรอ่านคำตอบของฉันอีกครั้งอย่างละเอียด :-)
Mike Pennington

IPv4 block 192.0.0.0/24 เป็นจุดพูดคุยหลักของ RFC 6890 ดังนั้นฉันจึงอ้างอิงถึงมันเพื่อการวัดที่ดีและเปรียบเทียบกับ RFC 1918 "นอกจากพื้นที่ RFC 1918 ดั้งเดิม (ซึ่งตอนนี้ได้รับการปรับปรุงเป็น RFC6890)" คืออะไร จุดประกายความอยากรู้ของฉันเมื่ออ่านโพสต์ของคุณ นอกเหนือจากการอัปเดตไปยังรายการรีจิสตรีที่มีวัตถุประสงค์พิเศษสำหรับ IPv4 และ IPv6 สำหรับการรวม 192.0.0.0.24 แล้ว RFC 6890 ไม่ใช่การอัปเดตเป็น RFC 1918 ฉันแค่ต้องการให้การสังเกตเกี่ยวกับความถูกต้องของคำสั่ง HTHs ;-)
one.time

5
@ one.time, RFC 6890 ที่ไม่ได้ปรับปรุงเป็น RFC 1918 ในทางปฏิบัติเราควรใช้ RFC 6890 แทน RFC 1918 เมื่อพิจารณาถึงพื้นที่ IP ที่ถูกต้องในตาราง BGP สาธารณะ ...
Mike Pennington

13

Team Cymruให้การอ้างอิงแบบ bogon สำหรับทั้ง IPv4 และ IPv6 ที่คุณสามารถใช้เพื่อกรองที่อยู่ IP ที่ไม่ได้กำหนด / ลิขสิทธิ์ / ส่วนตัว - มันให้ทั้งสองเป็นรายการง่าย ๆ สำหรับคำนำหน้ารู้จักกันดีและในรายการขนาดใหญ่กว่าที่มีพื้นที่ว่าง RIR ที่ยังไม่ได้มอบหมาย

พวกเขายังเรียกใช้เซิร์ฟเวอร์ BGP bogon ที่คุณสามารถขอ peering ฟรีถึง - ล้ำค่าถ้าคุณไม่สามารถเรียกใช้โซนฟรีเริ่มต้นกับอินเทอร์เน็ต


2
ตรงไปตรงมา 'ไม่ได้กำหนด' เป็นสิ่งที่ไร้ประโยชน์ในการกรองการกรองมันทำให้เกิดปัญหามากกว่าการแก้ไข และโบกี้จริงนั้นง่ายเนื่องจากมีความเสถียร / คงที่มาก
ytti

2
ตกลงแล้วอย่าใช้อันนั้นดังที่ฉันพูดพวกเขามีรสชาติที่หลากหลาย
Olipro

2

มีจำนวนช่วงที่สงวนไว้สำหรับกรณีการใช้งานที่หลากหลาย IANA มีอำนาจและครอบคลุมรายการ มันมี RFC1918, RFC6761 เช่นเดียวกับการจองล่าสุดเช่นบล็อก 100.64 / 10 CGN หากคุณพบที่อยู่ใด ๆ ในนั้นอาจมีการใช้ที่อยู่เหล่านั้นในเครือข่ายส่วนตัวและควรทิ้งให้ผู้อื่นเห็นด้วยที่อยู่สาธารณะแห่งแรก

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