89

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

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

7 ответов7

81

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

41

Существует такая вещь, как сеть Черная дыра.

Если в сети нет устройств с IP-адресом 192.168.0.10, то этот IP-адрес является своего рода черной дырой, и он будет "отбрасывать" весь трафик к нему просто потому, что он не существует.

Протоколы, которые отслеживают состояние соединения (TCP), могут обнаружить отсутствующий хост назначения. Это не произойдет с UDP, и пакеты просто умрут, пока отправляющий узел не будет проинформирован об этом.

Вы можете настроить черную дыру с помощью брандмауэра, настроив его так, чтобы он молча отбрасывал (не отклонял) пакеты с определенных (или многих) адресов.

Насколько я знаю, в TCP/IP версии 4 нет такого стандартного сетевого адреса, который бы сделал для вас черную дыру (спасибо Bandrami).

Итак, у вас есть два варианта:

  1. IP-адрес, который не был назначен ни одному хосту;
  2. Хост с брандмауэром, который молча отбрасывает пакеты или их варианты, например, используя netcat: (как предлагает ультрасовольный клинок).

nc -vv -l 25 > /dev/null будет прослушивать входящие соединения через TCP-порт 25 и направлять результаты в /dev/null . Больше примеров здесь .

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

17

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

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

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

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

16

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

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

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

3

Боковой шаг в вашем вопросе, а как насчет использования "протокола отказа"?

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

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .