Как совершенно верно заметил tangle_wire, все IP-адреса из «головоломки
#2
» схожи тем, что пакеты, направленные на них, не доходят до пункта назначения из-за «петли маршрутизации».

При передаче пакета на какой-либо адрес есть два нормальных хода событий:

  1. Пакет передается через некоторое число маршрутизаторов и достигает точки назначения.
  2. Один из маршрутизаторов не может пересылать пакет дальше (например, нет связи со
    следующим маршрутизатором или хостом, или же по такому адресу нет и не должно быть
    никакого хоста) и выбрасывает его.

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

К счастью, создатели протокола TCP/IP предусмотрели существование таких петель и придумали
механизм борьбы с ними. Каждый отсылаемый пакет имеет параметр TTL, time to live — время
жизни. Каждый маршрутизатор должен уменьшать значение этого параметра на 1, а если
TTL=0, то пакет выбрасывается, а на адрес отправителя посылается оповещение TTL expired in
transit. А если бы TTL не было, отправленный пакет ходил бы между двумя маршрутизаторами вечно, забивая
под завязку канал и перегружая процессор.

Под TTL выделен 1 байт, т.е. его максимальное значение — 255. Это означает, что
каждый пакет, отправленный на «кривой» адрес, будет пересылаться между двумя маршрутизаторами
чуть меньше 255 раз (в зависимости от начального TTL и расстояния от отправителя до петли).
Получается, что человек с модема, могущий отсылать пакеты со скоростью 4 кб в секунду, может
вызвать загрузку канала петли до 8 Мбит, ну а человек с 2 Мб выделенкой (как у меня) может
«положить» 4х-гигабитовый канал.

Обычно причина петли маршрутизации — в несоответствии адресного пространства, выделенного
провайдером, и пространства, используемого клиентами (хотя встречаются и петли из одного хоста
и петли из 3х, у которых явно другие причины). Допустим, провайдер выделил клиенту адреса
192.168.1.*, и все пакеты, направляемые на эти адреса, шлет клиенту. А у клиента сеть
192.168.1.[1-127], и соответствующая таблица маршрутизации: 

192.168.1.0 mask 255.255.255.128 — на сетевую карточку локалки 
default — на провайдера (ну а куда ж еще?)

Понятно, что пакет, направленный на 192.168.1.250, от провайдера попадет клиенту, а клиент, т.к.
не использует этот адрес, отправит его по default route — обратно провайдеру. Сканирование
интернета дало печальную статистику — почти в каждой сети класса B есть такие
«кривые» адреса, хотя вероятность, что удастся «завалить» какой-то определенный канал,
а не просто первый попавшийся, невелика. Во избежании вандализма не буду подробно описывать
способ поиска и использования таких адресов, и вообще не советую этим заниматься — по голове
надают больно-больно :).

Оставить мнение

Check Also

Жизнь без антивируса. Как побороть малварь голыми руками и обезопасить себя на будущее

На вопрос «Какой антивирус вы используете на своей виндовой машине?» многие безопасники (в…