Доброе время суток,
Насколько я понимаю мануал route(8), стек может без PF дискардить трафик, если для его местоназначения прописан маршрут "вникуда" - с модификаторами -blackhole или -reject : -blackhole RTF_BLACKHOLE silently discard pkts (during updates) -reject RTF_REJECT emit an ICMP unreachable when matched (правда немного смущает это непонятное "при апдейтах") Но я как-то не разберусь как будет выглядеть команда для добавления такого маршрута. Без адреса назначения (что было бы логичным) команда ругается: # route add -blackhole 1.0.0.1 route: writing to routing socket: Invalid argument add host 1.0.0.1: Invalid argument При написании с каким-нибудь, требуемым по ману route [-dnqtv] command [modifiers] destination gateway [netmask] адресом назначения: # route add -blackhole 1.0.0.1 192.168.x.y add host 1.0.0.1: gateway 192.168.x.y ядро плюет на модификатор и роутит пакет на указанный адрес: # traceroute -n -I 1.0.0.1 traceroute to 1.0.0.1 (1.0.0.1), 64 hops max, 60 byte packets 1 192.168.x.y 1.395 ms 0.501 ms 0.343 ms 2 192.168.*.* 0.483 ms 0.640 ms 0.450 ms 3 192.168.*.* 0.855 ms 1.18 ms 1.154 ms 4 192.168.*.* 3.120 ms 5.448 ms 2.11 ms ^C (и для внешнего хоста то же) если прописать назначением несуществующий адрес или 127.0.0.1 (насколько 127.0.0.1 здесь вообще хорошая идея), то трафик как-бы никуда не отправляется, но это происходит и без модификаторов, да и по -reject, никаких "unreachables" не наблюдается. Может я как-то не так ман курю, как это кастуется ? :) С уважением, Илья А. Коваленко (mailto:[hidden email]) Системный администратор ЗАО Оганер-Сервис +7 3919 348-629 |
On Wed, 23 Dec 2009 09:07:04 +0700
"Ilya A. Kovalenko" <[hidden email]> wrote: > Доброе время суток, > > Насколько я понимаю мануал route(8), стек может без PF дискардить > трафик, если для его местоназначения прописан маршрут "вникуда" - > с модификаторами -blackhole или -reject : > > -blackhole RTF_BLACKHOLE silently discard pkts (during updates) > -reject RTF_REJECT emit an ICMP unreachable when matched > > (правда немного смущает это непонятное "при апдейтах") > > Но я как-то не разберусь как будет выглядеть команда для добавления > такого маршрута. > > Без адреса назначения (что было бы логичным) команда ругается: > > # route add -blackhole 1.0.0.1 > route: writing to routing socket: Invalid argument > add host 1.0.0.1: Invalid argument > > При написании с каким-нибудь, требуемым по ману > route [-dnqtv] command [modifiers] destination gateway [netmask] > адресом назначения: > > # route add -blackhole 1.0.0.1 192.168.x.y > add host 1.0.0.1: gateway 192.168.x.y > > ядро плюет на модификатор и роутит пакет на указанный адрес: > > # traceroute -n -I 1.0.0.1 > traceroute to 1.0.0.1 (1.0.0.1), 64 hops max, 60 byte packets > 1 192.168.x.y 1.395 ms 0.501 ms 0.343 ms > 2 192.168.*.* 0.483 ms 0.640 ms 0.450 ms > 3 192.168.*.* 0.855 ms 1.18 ms 1.154 ms > 4 192.168.*.* 3.120 ms 5.448 ms 2.11 ms > ^C > > (и для внешнего хоста то же) > > если прописать назначением несуществующий адрес или 127.0.0.1 > (насколько 127.0.0.1 здесь вообще хорошая идея), то трафик как-бы > никуда не отправляется, но это происходит и без модификаторов, да и > по -reject, никаких "unreachables" не наблюдается. > > Может я как-то не так ман курю, как это кастуется ? :) возможно вот так будет работать route add 1.0.0.1 127.0.0.1 -reject -- Динар Талыпов |
Вроде разобрался, спасибо.
> route add 1.0.0.1 127.0.0.1 -reject на самом деле, работает и так и эдак ... т.е. и для route add 1.0.0.1 127.0.0.1 -reject и для route add -reject 1.0.0.1 127.0.0.1 а основная моя ошибка была в том, что "route change" (использование которого я не описывал) похоже не меняет флагов RTF_BLACKHOLE и RTF_REJECT. Не устанавливает и не сбрасывает если они установлены. В итоге выглядит все так как и было задумано: # route -n add -reject 1.0.0.1 127.0.0.1 add host 1.0.0.1: gateway 127.0.0.1 X:\>tracert -d 1.0.0.1 Трассировка маршрута к 1.0.0.1 с максимальным числом прыжков 30 1 <1 мс <1 мс <1 мс 192.168.1.200 2 192.168.1.200 сообщает: Заданный узел недоступен. Трассировка завершена. -------------------------------------------- # route -n add -blackhole 1.0.0.1 127.0.0.1 add host 1.0.0.1: gateway 127.0.0.1 X:\>tracert -d 1.0.0.1 Трассировка маршрута к 1.0.0.1 с максимальным числом прыжков 30 1 <1 мс <1 мс <1 мс 192.168.1.200 2 * * ^C -------------------------------------------- В таком заворачивании несколько настораживает появление блокируемых таким образом пакетов на lo0 (более в ключе производительности, нежели чего-нибудь еще). А если же просто написать маршрут на 127.0.0.1, на самом деле получим циклический маршрут (моя ошибка в изначальном посте): # route -n add 1.0.0.1 127.0.0.1 add host 1.0.0.1: gateway 127.0.0.1 X:\>tracert -d 1.0.0.1 Трассировка маршрута к 1.0.0.1 с максимальным числом прыжков 30 1 <1 мс <1 мс <1 мс 192.168.1.200 2 <1 мс <1 мс <1 мс 192.168.1.200 3 <1 мс <1 мс <1 мс 192.168.1.200 4 <1 мс <1 мс <1 мс 192.168.1.200 ^C |
Free forum by Nabble | Edit this page |