Bug 9165

Summary: Routes from file ipv4route doesn't work
Product: Sisyphus Reporter: Aleksey E. Birukov <birukov>
Component: etcnetAssignee: Mikhail Efremov <sem>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: ldv, rider, sem, shaba, vseleznv
Version: unstable   
Hardware: all   
OS: Linux   
URL: http://lists.altlinux.ru/pipermail/sisyphus/2006-January/076492.html

Description Aleksey E. Birukov 2006-02-26 19:24:18 MSK
В файле ipv4route прописаны гейты.
Назначения гейтов перестали работать после etcnet_0.7.15-alt1_noarch.rpm
Comment 1 Denis Ovsienko 2006-02-28 03:43:15 MSK
Проверьте пожалуйста на последней версии.
Comment 2 Aleksey E. Birukov 2006-03-14 22:37:40 MSK
К сожалению, в версии etcnet_0.8.1-alt1_noarch.rpm не работают.
Помогает откат на etcnet_0.7.15-alt1_noarch.rpm.
Comment 3 Aleksey E. Birukov 2006-04-20 00:10:11 MSD
По команде route все роуты выводятся, но не работают. Маршрутизация идет как-
будто роуты не прописаны вобще. Как такое может быть?
Если добавить роуты вручную (через route add) - они работают.
Что такого изменилось с 0.7.15-alt1, что в следующей версии появился такой баг?


Comment 4 Denis Ovsienko 2006-04-20 07:39:01 MSD
sysctl.conf присутствует?
Comment 5 Aleksey E. Birukov 2006-04-20 12:02:46 MSD
(In reply to comment #4) 
> sysctl.conf присутствует? 
Даже два: 
$ egrep -v "^#|^$" /etc/sysctl.conf 
kernel.sysrq = 1 
$ egrep -v "^#|^$" /etc/net/sysctl.conf 
net.ipv4.ip_forward = 1 
net.ipv4.conf.default.rp_filter = 1 
net.ipv4.icmp_echo_ignore_broadcasts = 1 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_timestamps = 0 
Comment 6 Denis Ovsienko 2006-04-20 12:26:23 MSD
В файл /proc/sys/net/ipv4/ip_forward попадает 1? Вывод ip ro sh идентичен в
обоих случаях?
Comment 7 Aleksey E. Birukov 2006-04-20 13:11:23 MSD
(In reply to comment #6)
> В файл /proc/sys/net/ipv4/ip_forward попадает 1?
Да.
> Вывод ip ro sh идентичен в обоих случаях?
Нет.
4.3.2.0/24 via 1.2.3.4 dev eth1 - правильно
4.3.2.0/24 via 1.2.3.4 dev ppp9 - неправильно

Интерфейс ppp9, вероятно, подставился автоматически т.к. файл ipv4route 
находится в директории с названием ppp9.
Имхо, это некорректное поведение т.к. на то и нужны роуты чтобы назначать 
маршруты через другой интерфейс.
P.S. Добавление в ipv4route интерфейса не помогло (4.3.2.0/24 via 1.2.3.4 dev 
eth1)
Comment 8 Aleksey E. Birukov 2006-04-20 13:34:57 MSD
Если написать роуты не в ppp9, а в eth1, то соотв. подставляется интерфейс eth1 
и все работает. Лучше бы сделать чтобы "dev" в ipv4route работал.

Обнаружил еще одну штуку в выводе route:
192.168.55.0 * 255.255.255.0 U 0 0 0 dvb0_0

Зачем dvb интерфейсу роут. Интерфейс ведь только на прием работает.
В директории dvb0_0 файла ipv4route нету. Похоже скрипты поумничали.
Comment 9 Denis Ovsienko 2006-04-20 15:51:44 MSD
> Интерфейс ppp9, вероятно, подставился автоматически т.к. файл ipv4route 
> находится в директории с названием ppp9.
r704 | pilot | 2005-11-15 09:51:12 +0300 (Tue, 15 Nov 2005) | 2 lines

always add dev $NAME to processed routes


Правильно, теперь всё ясно. Это впервые изменилось в 0.8.0, чтобы можно было
конфигурировать маршруты без шлюза, например, на point-to-point интерфейсах.
Сейчас мне кажется, что правильнее это делать, если dev отсутствует.
Касательно dvb: интерфейсу нужен IP-адрес, чтобы принимать пакеты. Добавление
адреса обычно сопровождается появлением connected route. Угадал?
Comment 10 Denis Ovsienko 2006-04-20 16:30:32 MSD
Исправлено в 0.8.3
Comment 11 Aleksey E. Birukov 2006-04-20 21:37:35 MSD
> Правильно, теперь всё ясно. Это впервые изменилось в 0.8.0, чтобы можно было
> конфигурировать маршруты без шлюза, например, на point-to-point интерфейсах.
> Сейчас мне кажется, что правильнее это делать, если dev отсутствует.
Вобщем-то, с этим легко примириться. Небольшой "дискомфорт" вносит наличие 
роутов когда они не нужны: ведь если у меня не поднят dvb0_0 у меня и так пакеты 
идут через шлюз, указанный по умолчанию в eth1.

> Касательно dvb: интерфейсу нужен IP-адрес, чтобы принимать пакеты. Добавление
> адреса обычно сопровождается появлением connected route. Угадал?
Наверно :)