ที่อยู่ IP ที่เทียบเท่า / dev / null


92

มีที่อยู่ IP ที่จะส่งผลให้แพคเก็ตใด ๆ ที่ส่งไปถูกละเว้น (แบล็กโฮล) หรือไม่?

ฉันรู้ว่าฉันสามารถตั้งค่าเราเตอร์ที่มีที่อยู่ IP ได้ตลอดเวลาและจากนั้นให้ละเว้นแพ็คเก็ตทั้งหมดที่ส่งไปยังมัน


2
มีอุปกรณ์บางอย่าง (เช่นเราเตอร์และสวิตช์จากที่ บริษัท San Fran cisco ) ที่ใช้อินเทอร์เฟซแบบ Null ที่สามารถใช้เป็นหลุมดำเพื่อการรับส่งข้อมูลที่เป็นอันตราย หนึ่งควรชี้เส้นทางไปยังอินเตอร์เฟส Null นั้นดังนั้นทราฟฟิกทั้งหมดไปยังเส้นทางนั้นจะถูกยกเลิก
Adriano P

12
คุณอาจจะสนใจในdevnull-as-a-service.com
wchargin

2
ฉันสงสัยว่าทำไมคำถามที่ติดแท็ก "การป้องกันสแปม"
Mike Pennington

@WChargin ฉันหวังว่ามันเป็นเรื่องตลก - devnull-as-a-service.comดูเหมือนจะไม่มีอะไรเกี่ยวข้องกับระบบเครือข่ายและแม้ว่ามันจะดูเหมือนเป็นเรื่องไร้สาระก็ตาม นี้คืออะไร : When we say "government" we mean NSA, CIA, FBI, TSA, Communist Party of China (CPC), Nestle, The Coca-Cola Company, the KGB, some of your coworkers and our friends (especially if there is something funny).?
VL-80

5
@ Nikolay ใช่มันเป็นเรื่องตลกเช่นเดียวกับเว็บไซต์ ดูGithub READMEของพวกเขา: "ส่วนใหญ่เกี่ยวกับองค์กร, คลาวด์, * -as-a-Service และการวิจารณ์เกี่ยวกับเรื่องนี้ " (เน้นการทำเหมืองแร่)
wchargin

คำตอบ:


84

มีคำนำหน้า blackhole เฉพาะใน IPV6 ดังที่อธิบายไว้ในRFC 6666คือ 100 :: / 64 IP4 ไม่มีหลุมดำที่ชัดเจนเช่นนั้น แต่โฮสต์ที่ไม่มีอยู่ในบล็อกที่สงวนไว้จะมีผลกระทบนั้น (เช่น 240.0.0.0/4 ถูก "สงวนไว้สำหรับการใช้งานในอนาคต" และจะไม่ถูกกำหนดเส้นทางด้วยสิ่งใด)


32
การส่งข้อมูลไปยังบางสิ่งที่สงวนไว้สำหรับการใช้งานในอนาคตเป็นเพียงความคิดที่ดีจนกระทั่งการใช้งานนั้นจะเกิดขึ้นจริง
corsiKa

5
จุดที่ดีมาก แต่ฉันสงสัยอย่างมากว่า IP4 จะถูกขยายอีกครั้ง
Bandrami

8
แต่เราเตอร์รับประกันว่าจะส่งแพ็กเก็ตหรือไม่ เพราะถ้ามันส่งกลับ ICMP "ปลายทางไม่สามารถเข้าถึงได้" ก็จะไม่ใช่สิ่งที่ OP ร้องขอ
WGH

41

มีสิ่งดังกล่าวเป็นเครือข่ายที่มีรูสีดำ

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

โปรโตคอลที่ติดตามสถานะการเชื่อมต่อ (TCP) สามารถตรวจจับโฮสต์ปลายทางที่ขาดหายไป มันจะไม่เกิดขึ้นกับ UDP และแพ็คเก็ตก็จะตายในขณะที่โฮสต์การส่งจะไม่ได้รับแจ้งเกี่ยวกับเรื่องนั้น

คุณสามารถตั้งค่าหลุมดำด้วยไฟร์วอลล์ได้โดยการตั้งค่าให้วางแพ็กเก็ตแบบเงียบ ๆ ( ไม่ปฏิเสธ ) จากที่อยู่ (หรือหลาย ๆ ) ที่อยู่เป็นพิเศษ

เท่าที่ฉันรู้ไม่มีที่อยู่เครือข่ายมาตรฐานซึ่งจะทำหลุมดำให้คุณใน TCP / IP รุ่น 4 (ขอบคุณBandrami )

ดังนั้นคุณมีสองทางเลือก:

  1. ที่อยู่ IP ที่ไม่ได้กำหนดให้กับโฮสต์ใด ๆ
  2. โฮสต์ที่มีไฟร์วอลล์ซึ่งวางแพ็กเก็ตหรือรูปแบบต่างๆอย่างเงียบ ๆ ตัวอย่างเช่นใช้netcat: (ตามที่แนะนำโดยultrasawblade )

nc -vv -l 25 > /dev/nullจะรับฟังสำหรับการเชื่อมต่อขาเข้า TCP พอร์ต 25 /dev/nullและท่อผลให้ ตัวอย่างเพิ่มเติมที่นี่

ซับเน็ตทั้งหมดยังสามารถเป็นหลุมดำ ( เส้นทาง Null )


4
หากคุณต้องการบางสิ่งที่จะรับการรับส่งข้อมูล TCP แต่ไม่ทำอะไรเลยสิ่งที่รวดเร็วสามารถตั้งค่าด้วยnc(หรือnetcat) อย่างที่ @Nikolay พูดว่าไม่มี IP "blackhole" ที่ทำสิ่งนี้โดยอัตโนมัติ
LawrenceC

2
อย่างน้อยไม่ได้อยู่ใน IP4
Bandrami

@Bandrami: แล้ว IPv6 ล่ะ?
user2357112

2
@ user2357112 เพียงมองของเขาคำตอบ มันอยู่ด้านล่างของฉัน
VL-80

19

แม้ว่ามันจะไม่ใช่หลุมดำคุณอาจต้องการพิจารณา IP ที่ตั้งไว้เพื่อวัตถุประสงค์ในการทดสอบ / ตัวอย่าง (โดย RFC 5737)โดยเฉพาะอย่างยิ่งหากเป้าหมายของคุณคือค่า "ค่าเริ่มต้นที่ไม่ทำงานอย่างปลอดภัย"

  • 192.0.2.0/24 (TEST-NET-1)
  • 198.51.100.0/24 (TEST-NET-2)
  • 203.0.113.0/24 (TEST-NET-3)

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

ไม่มีการรับประกันว่าแพ็คเก็ตไปยังที่อยู่เหล่านั้นจะถูกบล็อก (ขึ้นอยู่กับ ISP ของคุณเป็นต้น) แต่แน่นอนว่าไม่มีใครควรใช้มัน


1
พวกเขายังสามารถปฏิเสธลดลงแทนดังนั้น ...
mirabilos

1
192.0.2.0 ดูเหมือนจะทำงานในความพยายามครั้งแรกของฉันไม่ได้ส่งคืนแพ็กเก็ตใด ๆ ฉันจะทำการทดสอบเพิ่มเติม
Tyler Durden

16

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

  • คุณสามารถใช้ที่อยู่ RFC1918ที่ไม่ได้ใช้งานบนเครือข่ายของคุณและใช้ ISP ของคุณเพื่อส่งให้คุณ ตัวอย่างเช่นหากคุณใช้เพียงบางส่วนของ 192.168 เท่านั้น 10.255.255.1 จะถูกกำหนดเส้นทางโดย ISP ของคุณ (ซึ่งจะได้รับเนื่องจากเกตเวย์เริ่มต้นของคุณ)
  • คุณสามารถใช้ที่อยู่ IP ที่สงวนไว้สำหรับใช้ในอนาคต (และอาจไม่ถูกใช้) นั่นคือช่วง " Class E " แบบเก่า มันจะทำเช่นเดียวกับข้างต้น แต่จะใช้ได้แม้ว่าคุณจะใช้ช่วงที่อยู่ส่วนตัวทั้งหมดแล้ว (โดยมีเน็ตมาส์กที่กว้างกว่าที่จำเป็นฉันสงสัยว่าคุณมีอุปกรณ์ต่อพ่วงนับล้านเครื่อง) ตัวอย่างเช่น 254.0.0.1 จะไม่อ้างอิงถึงอุปกรณ์จริง (ตามกฎหมาย)
  • บนเครื่องที่คุณต้องการสิ่งนี้คุณสามารถเพิ่มเป้าหมายแบบดรอปเท่านั้น ตัวอย่างเช่นการใช้ที่อยู่ที่ไม่ได้ใช้เช่นด้านบนiptables -I OUTPUT -d 254.0.0.0/8 -j DROPจะทำให้มั่นใจได้ว่าสิ่งใดก็ตามที่ส่งไปยัง "เครือข่าย" นั้นจะถูกลบอย่างเงียบ ๆ แทนที่จะไปรบกวนเกตเวย์ใด ๆ หรือทำให้เกิดการรับส่งข้อมูลบนอินเทอร์เฟซเครือข่ายจริง

อีกครั้งคุณอาจไม่ต้องการสิ่งนี้แม้ว่าคุณจะคิดว่าสะดวก - ไม่มันสับสนและไม่ชัดเจนและไม่ใช่ทางออกที่ดีสำหรับปัญหาของคุณ


254.0.0.1 ไม่ใช่แพ็กเก็ตหลุมดำฉันได้รับข้อผิดพลาด "การส่งล้มเหลว"
Tyler Durden

7
+1 สำหรับ "คุณอาจไม่ต้องการสิ่งนี้ ... "
RBerteig


2

ช่วงทดสอบ

ผมก็อาจจะแนะนำให้เป็นหนึ่งใน "TEST-NET" ช่วงที่อยู่, "สำหรับใช้ในเอกสารและตัวอย่าง. มันไม่ควรจะนำมาใช้ต่อสาธารณชน"

192.0.2.0/24
198.51.100.0/24
203.0.113.0/24

ช่วง "Bogon" (ปลอม / ปลอม)

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


ช่วงท้องถิ่น

นอกจากนี้ยังมีช่วงที่อยู่ย้อนกลับเช่น127.0.0.0/8 127.0.0.255แม้ว่าจะยังคงมีสิ่งต่าง ๆ อยู่โดยเฉพาะบริการใด ๆ ในเครื่องท้องถิ่นอย่างน้อยคุณจะไม่เข้าไปยุ่งเกี่ยวกับเครื่องใด ๆ ในเครือข่าย (เว้นแต่คุณจะมีบริการเครือข่ายที่ได้รับการสนับสนุนจากบริการเครือข่ายอื่น ๆ

127.0.0.0/8


ช่วงปลายทางที่ผิดกฎหมาย

บางทีที่อยู่ที่ผิดกฎหมาย0.0.0.0ก็สามารถใช้งานได้เช่นกันแม้ว่า 0.0.0.0/8 จะถูกสงวนไว้สำหรับ"ใช้สำหรับข้อความออกอากาศไปยังปัจจุบัน (" นี้ ")"ดังนั้นจึงมีความเสี่ยงที่จะเกิดการออกอากาศซ้ำ

0.0.0.0/8

หน้า Wikipedia สำหรับNull Routeระบุว่า:

โดยทั่วไปเส้นทาง Null จะถูกกำหนดค่าด้วยการตั้งค่าสถานะเส้นทางพิเศษ แต่ยังสามารถนำไปใช้โดยการส่งต่อแพ็คเก็ตไปยังที่อยู่ IP ที่ผิดกฎหมายเช่น 0.0.0.0 หรือที่อยู่ย้อนกลับ


อ้างอิง: https://en.wikipedia.org/wiki/Reserved_IP_addresses


ฉันเลือกที่จะใช้งานlocalhostพอร์ตสูงสุด65535โดยรวมเพราะฉันต้องการให้แน่ใจว่าไม่มีทราฟฟิกที่จะออกจากโฮสต์
ThorSummoner

หากคุณระบุพอร์ตคุณจะต้องระบุแต่ละโปรโตคอลเช่น: TCP, UDP เป็นต้นและในการทำเช่นนั้นการรับส่งข้อมูลบางอย่างอาจหนีกฎของคุณ (เช่น ICMP)
Drakes

1

สิ่งหนึ่งที่ต้องพิจารณา (ซึ่งอาจหรืออาจจะไม่เป็นปัญหาสำหรับสถานการณ์เฉพาะของคุณ) คือหากคุณเปลี่ยนเส้นทางการรับส่งข้อมูลไปยังที่อยู่ IP ที่ไม่มีอยู่เราเตอร์และ / หรือโฮสต์อาจพยายาม ARP อย่างต่อเนื่องสำหรับที่อยู่นั้นเป็นสิ่งที่ไม่ดี

หากคุณกำหนดค่าการเชื่อมโยง ARP <-> IP แบบคงที่สำหรับที่อยู่แฝงนี้ระบบจะมีรายการ ARP ที่ได้รับการแก้ไขอยู่เสมอและมันจะวางแพ็กเก็ตบนสายไฟด้วยที่อยู่ ARP นั้น (ซึ่งสันนิษฐานว่าเป็นของปลอม) และ การจราจรไม่ได้ลงที่ใดเลย

อีกครั้งนี่อาจเป็นสิ่งที่คุณไม่ต้องการ แต่มันก็คุ้มค่าที่จะพิจารณา

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