Bug 15370

Summary: Поддержка IPV4GATE в ipv4_route
Product: Sisyphus Reporter: Evgeny Sinelnikov <sin>
Component: etcnetAssignee: Mikhail Efremov <sem>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: ldv, rider, sem, shaba, vseleznv
Version: unstable   
Hardware: all   
OS: Linux   
URL: http://lists.altlinux.org/pipermail/devel/2008-March/070744.html

Description Evgeny Sinelnikov 2008-04-16 05:39:15 MSD
Прошу приложить нижеприведённый патч (ниже дана ссылка) для пожжержки
подстановки IPV4GATE при разборе файлов статической маршрутизации. Поддержка
этой подстановки позволяет задавать статические маршруты для интерфейсов не
являющихся интерфейсами по умолчанию, но имеющих свои шлюзы по умолчанию.
Особенно полезна эта подстановка при одновременном подключении нескольких
ppp-соединений, шлюзы для которых выдаются динамически.

Ссылка на патч.
http://git.altlinux.org/people/sin/packages/?p=etcnet.git;a=commitdiff;h=f1961b0fd3656fc438e97d19271989d19d37cf1a
Comment 1 Denis Ovsienko 2008-04-16 12:15:14 MSD
/sbin/ip -4 route show dev eth0 2>/dev/null|grep -ose
"[0-9.]\+[[:space:]]\+proto[[:space:]]\+kernel[[:space:]]\+scope[[:space:]]\+link"|cut
-f1 -d" "
24

24 --- длина маски сети на eth0.
Comment 2 Evgeny Sinelnikov 2008-04-16 13:11:54 MSD
(In reply to comment #1)
> /sbin/ip -4 route show dev eth0 2>/dev/null|grep -ose
>
"[0-9.]\+[[:space:]]\+proto[[:space:]]\+kernel[[:space:]]\+scope[[:space:]]\+link"|cut
> -f1 -d" "
> 24
> 
> 24 --- длина маски сети на eth0.

Да, пожалуй оно не во всех случаях корректно отрабатывает. У меня было так:
$ /sbin/ip -4 route show dev ppp0
88.147.128.68  proto kernel  scope link  src 88.147.180.254
88.147.128.0/17 via 88.147.128.68
$ /sbin/ip -4 route show dev ppp0 2>/dev/null|grep -ose
"[0-9.]\+[[:space:]]\+proto[[:space:]]\+kernel[[:space:]]\+scope[[:space:]]\+link"|cut
-f1 -d" "
88.147.128.68
$

$ /sbin/ip -4 route show dev net0
192.168.2.0/24 via 192.168.2.1
$ /sbin/ip -4 route show dev net0 2>/dev/null|grep -ose
"[0-9.]\+[[:space:]]\+proto[[:space:]]\+kernel[[:space:]]\+scope[[:space:]]\+link"|cut
-f1 -d" "
$

Но вот эта ситуация правильно не работает:
$ /sbin/ip -4 route show dev eth0
192.168.3.0/24  proto kernel  scope link  src 192.168.3.200
192.168.33.0/24  proto kernel  scope link  src 192.168.33.1
default via 192.168.3.1
$ /sbin/ip -4 route show dev eth0 2>/dev/null|grep -ose
"[0-9.]\+[[:space:]]\+proto[[:space:]]\+kernel[[:space:]]\+scope[[:space:]]\+link"|cut
-f1 -d" "
24
24
$

В этом случае нужно выводить 192.168.3.1. А это совсем другой запрос... 

Мне надо подумать... Может быть предложите более качественное решение?
Comment 3 Denis Ovsienko 2008-04-27 21:50:40 MSD
Я предложил. Устраивает?
Comment 4 Evgeny Sinelnikov 2008-04-28 02:59:03 MSD
Да, я решил потестировать - забыл, что работает...
Если задать подсеть в ipv4route без указания куда её маршрутизировать, то она
маршрутизируется верно... только теперь всё выглядит так, что оно уходит в
интерфейс, а не в конкретный ip, например так:
80.92.208.0/20 dev ppp4  scope link

В целом такое поведение вполне устраивает для задач, которые предполагалось
решать с помощью IPV4GATE. В текущем положении, если знать как настраивать,
необходимость в нём отпадает.
Comment 5 Denis Ovsienko 2008-04-28 11:13:33 MSD
Point-to-point интерфейсы можно использовать для установки маршрутов, даже если
у них нет ни одного IP-адреса.