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 «зарезервировано для будущего использования» и не будет маршрутизироваться ничем.)

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

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

VL-80
источник
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)

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

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

Darien
источник
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

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

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

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

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

ljwobker
источник