IP-адрес, эквивалентный / dev / null


92

Существует ли IP-адрес, который может привести к игнорированию любого пакета (черного цвета)?

Я знаю, что всегда могу настроить маршрутизатор с IP-адресом, а затем просто игнорировать все отправленные ему пакеты, но существует ли такая вещь, чтобы избавить меня от проблем?


2
Есть некоторые устройства (например, маршрутизаторы и коммутаторы из этого San Franco cо.), Которые используют интерфейс Null, который можно использовать в качестве черной дыры для вредоносного трафика. Нужно указать маршрут к этому нулевому интерфейсу, чтобы весь трафик к этому маршруту был отброшен.
Адриано П

12
Вы можете быть заинтересованы в devnull-as-a-service.com
wchargin

2
Мне любопытно, почему вопрос помечен как "предотвращение спама"?
Майк Пеннингтон

@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
@ Николай да, это была шутка, как и веб-сайт. См. Их Github README : «В основном речь идет о предприятии, облаке, * -s-a-Service и критике в отношении него » (выделено мной)
wchargin

Ответы:


84

В частности, в IPV6 есть префикс черной дыры, как описано в RFC 6666 , это 100 :: / 64. IP4 не имеет такой явной черной дыры, но несуществующий хост в одном из зарезервированных блоков будет иметь такой эффект. (например, 240.0.0.0/4 «зарезервировано для будущего использования» и не будет маршрутизироваться ничем.)


32
Отправка данных во что-то, зарезервированное для будущего использования, является хорошей идеей до тех пор, пока это не будет реализовано в будущем.
CorsiKa

5
Очень хороший момент, хотя я очень сомневаюсь, что IP4 будет расширен еще раз.
Бандрами

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. Больше примеров здесь .

Вся подсеть также может быть черной дырой ( нулевой маршрут ).


4
Если вы хотите что-то, что будет получать трафик TCP, но ничего не делать с этим, что-то быстрое можно настроить с помощью nc(или netcat). Хотя @Nikolay говорит, что нет «черной дыры» IP, которая делает это автоматически.
LawrenceC

2
По крайней мере, не в
IP4

@Bandrami: А как насчет IPv6?
user2357112

2
@ user2357112, просто посмотри на его ответ . Это чуть ниже моего.
VL-80

19

Хотя это и не чёрная дыра, вы также можете рассмотреть IP-адреса, выделенные для целей тестирования / примера (согласно RFC 5737) , особенно если ваша цель - это значение «безопасно нерабочее значение по умолчанию».

  • 192.0.2.0/24 (ТЕСТ-NET-1),
  • 198.51.100.0/24 (ТЕСТ-NET-2)
  • 203.0.113.0/24 (ТЕСТ-NET-3)

Операторам сети СЛЕДУЕТ добавить эти адресные блоки в список не маршрутизируемых адресных пространств, и если фильтры пакетов развернуты, то этот адресный блок СЛЕДУЕТ добавить к фильтрам пакетов.

Нет гарантии, что пакеты на эти адреса будут заблокированы (это зависит от вашего провайдера и т. Д.), Но, конечно, никто не должен их уже использовать.


1
Они также могут быть отклонены вместо DROPped, так что ...
mirabilos

1
192.0.2.0, кажется, работает с моей первой попытки, пока не возвращает никаких пакетов. Я сделаю еще несколько испытаний.
Тайлер Дерден

16

Там нет «стандартного адреса черной дыры» как такового, и нет никаких требований к нему. Вы не говорите, чего вы на самом деле пытаетесь достичь, поэтому я не могу вам помочь, но вот несколько неправильных решений вашей проблемы, которые бы ответили на ваш вопрос, когда вы его задавали:

  • Вы можете использовать адрес RFC1918, который не используется в вашей сети, и положиться на своего интернет-провайдера. Например, если вы используете только некоторые части 192.168, ваш провайдер 10.255.255.1 будет маршрутизировать ноль (что получится благодаря шлюзу по умолчанию).
  • Вы можете использовать IP-адрес, который зарезервирован для будущего использования (и, вероятно, никогда не будет использоваться); это старый « класс Е ». Он будет работать так же, как и выше, но будет работать, даже если вы уже используете все частные диапазоны адресов (имея гораздо более широкие маски сетей, чем необходимо, я сомневаюсь, что у вас будут миллионы подключенных устройств). Например, 254.0.0.1 никогда (юридически) не будет ссылаться на реальное устройство.
  • На машине, где вам это нужно, вы можете добавить цель только для отбрасывания; например, использование неиспользуемого адреса, такого как приведенный выше, iptables -I OUTPUT -d 254.0.0.0/8 -j DROPгарантирует, что все, что отправлено в эту «сеть», будет молча отброшено, вместо того, чтобы беспокоить какие-либо шлюзы или даже вызывать трафик на реальном сетевом интерфейсе.

Опять же, вы, вероятно, на самом деле не хотите ничего из этого, даже если думаете, что это удобно - это не так, это сбивает с толку и неочевидно и не является хорошим решением для вашей проблемы.


254.0.0.1 не чёрная дыра пакетов, я получаю ошибку «сбой передачи».
Тайлер Дерден

7
+1 за "вы, вероятно, на самом деле не хотите ничего этого ..."
RBerteig


2

Тестовые ряды

Я бы, вероятно, предложил один из диапазонов адресов «TEST-NET», «для использования в документации и примерах. Он не должен использоваться публично» .

192.0.2.0/24
198.51.100.0/24
203.0.113.0/24

"Богон" (Bogus / Fake) Диапазоны

Я не уверен, где сказать здесь, это, кажется, больше практики, которую обеспечил бы интернет-шлюз, а не конкретный способ реализовать пакет, который направляется куда-то, это не должно быть


Местные Диапазоны

Существует также диапазон адресов обратной связи 127.0.0.0/8, например 127.0.0.255. Хотя все еще возможно существование вещей, в частности любых сервисов на локальной машине, по крайней мере, вы не будете вмешиваться ни в какие машины в сети (если у вас нет сетевых сервисов, поддерживаемых другими сетевыми сервисами, я полагаю).

127.0.0.0/8


Незаконные места назначения

Возможно, недопустимый адрес также 0.0.0.0может быть использован, хотя 0.0.0.0/8 зарезервировано для «Используется для широковещательных сообщений для текущего (« this »)», поэтому существует риск трансляции по этому вопросу.

0.0.0.0/8

Страница Википедии для Null Route гласит:

Нулевые маршруты обычно настраиваются с помощью специального флага маршрута, но также могут быть реализованы путем пересылки пакетов на недопустимый IP-адрес, такой как 0.0.0.0, или адрес обратной связи.


Ссылки: https://en.wikipedia.org/wiki/Reserved_IP_addresses


Я в целом решил использовать localhostсамый высокий порт 65535, потому что я хотел убедиться, что трафик не покинет хост.
ThorSummoner

Если вы указываете порт, то вы должны также указать каждый протокол: TCP, UDP и т. Д., И при этом часть трафика может выходить за пределы ваших правил (например, ICMP).
Дрейки

1

Следует учитывать (что может или не может быть проблемой для вашего конкретного сценария): если вы перенаправляете трафик на несуществующий IP-адрес, маршрутизатор и / или хост могут пытаться непрерывно ARP для этого адреса, что может быть плохой вещью

Если вы сконфигурируете статическую привязку ARP <-> IP для этого фантомного адреса, то система всегда будет иметь разрешенную запись ARP, и она просто поместит пакет в провод с этим адресом ARP (который, предположительно, является поддельным) и движение на самом деле никуда не приземлится.

Опять же, это вполне может быть НЕ то, что вы на самом деле хотите, но это стоит рассмотреть.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.