Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / icmp redirect (10075 хитов)
- Написал(а) Demon Дата 28.04.05 05:58
Доброго времени суток.
Обращаюсь в последнюю инстанцию :-)
Сутки потратил на исправление непонятного поведения, надоедая более сведующим людям, перерыв инет сверху донизу (узнав для себя много нового), но результатов недостиг :-(

Ситуация:
slackware 10.0,
ядро 2.6.11 (самособранное),
с сетью всё довольно просто: один IP (80.xx.xx.155), подсеть (255.255.255.192) и шлюз (80.xx.xx.129), никаких дополнительных роутингов.
фаервол интересующие меня адреса (сервера и icmp) вообще не режет.

Поведение:
пингую с сервера хост 10.x.x.74.. шлюз 80.xx.xx.129 отвечает мне icmp host redirect на шлюз 80.xx.xx.131. В результате в кэш роутинга заносится маршрут на 10.x.x.74 через 80.xx.xx.131 и пока сидит в кэше ответы доходят до адресата.. Всё хорошо. (Правда для меня было странно, что один маршрут часто прописывается дважды)

Но когда когда машрут уже ушёл из кэша и приходит извне icmp (ping) пакет с ip 10.x.x.74, то в кэш прописывается маршрут через дефолтный шлюз 80.xx.xx.129 и конечно ответные пакеты уходят через него, недостигая адресата. При этом tcpdump явственно показывает что icmp redirect пакеты от 80.xx.xx.129 с требованием перенаправить на 80.xx.xx.131 постоянно приходят... но ядро их просто игнорирует.
Таким образом система остаётся недоступна для некоторых подсетей :-(

sysctl -a | grep redirect
net.ipv4.conf.eth0.send_redirects = 1
net.ipv4.conf.eth0.secure_redirects = 1
net.ipv4.conf.eth0.accept_redirects = 1
net.ipv4.conf.lo.send_redirects = 1
net.ipv4.conf.lo.secure_redirects = 1
net.ipv4.conf.lo.accept_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.default.secure_redirects = 1
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.route.redirect_silence = 20480
net.ipv4.route.redirect_number = 9
net.ipv4.route.redirect_load = 20

прочитал описание всех этих параметров... пробовал играться с secure_redirects.. и многим прочим, положительного результата не достиг.
Просьба не обсуждать безопасность icmp редиректов и устройство маршрутизации таким способом. Для меня это неизменная данность, недоступная для влияния.

Очень жду дельных советов и (при необходимости) вопросов.
Вы интересуетесь вопросом домашних сетей в Иваново? Посетите http://homenet.iv.ru
Parent - Написал(а) Demon Дата 28.04.05 07:51
Проблема решилась взятием .config ядра от LOE и перекомпиляцией...
Печально, конечно.. но помогло.
Вы интересуетесь вопросом домашних сетей в Иваново? Посетите http://homenet.iv.ru
Parent Написал(а) G0thic Дата 29.04.05 07:43
С этим конфигом sysctl -a|grep redirect что дает?
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - Написал(а) G0thic Дата 29.04.05 07:37 Отредактировано 29.04.05 07:52
ядро 2.4.29
net.ipv4.route.redirect_load = 2
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.route.redirect_silence = 2048
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent Написал(а) Demon Дата 03.05.05 05:01
Всё это и ставяло...
в ядре 2.6.11 по умолчанию было:
net.ipv4.route.redirect_load = 20
net.ipv4.route.redirect_silence = 20480

как уж я с ими не игрался.. ничего не помогало... только одностороннее занесение в маршруты..

Повторюсь: проблема решена взятием .config файла ядра от LOE. Меня сильно интересует что за параметр конфигурации так глупо (ну совсем нелогично) повлиял на это.. я предварительно обыскивал все эти параметры.. ну никак найти не мог по описанию подходящего.
Но сейчас не хотелось бы ставить эксперименты на работающем сервере, потому оставлю этот вопрос без экспериментов и на совести разработчиков ядра.
Вы интересуетесь вопросом домашних сетей в Иваново? Посетите http://homenet.iv.ru
Parent Написал(а) LOE (Site/forum admin) Дата 03.05.05 13:31
у меня на тачке
ядро 2.6.11, конфиг которого даден Демону:
$ sysctl -a | grep redirect
net.ipv4.conf.dummy0.send_redirects = 1
net.ipv4.conf.dummy0.secure_redirects = 1
net.ipv4.conf.dummy0.accept_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
net.ipv4.conf.eth0.secure_redirects = 1
net.ipv4.conf.eth0.accept_redirects = 1
net.ipv4.conf.lo.send_redirects = 1
net.ipv4.conf.lo.secure_redirects = 1
net.ipv4.conf.lo.accept_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.default.secure_redirects = 1
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.route.redirect_silence = 20480
net.ipv4.route.redirect_number = 9
net.ipv4.route.redirect_load = 20

не туда копаете, таварисчи.
sysctl конечно весчь, но я ей даже не пользуюсь
а сравнивать конфиги - влом ;-)

Всегда включал в ядро все сетевые фичи по максимуму и никогда об этом не жалел.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Предыдущая Следующая Вверх Тема Администрирование / Работа с сетью / icmp redirect (10075 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.085s with 10 database queries.