LINUX.ORG.RU
решено ФорумAdmin

Source Routing на ppp интерфейс.


0

1

Приветствую глубокоуважаемого олла.

Есть хост (Debian squeeze) с реальным ip скажем 1.1.1.1
и надо поднять другой ip из другой сети скажем 2.2.2.2
Поднимаем его с помощью ppp и получаем скажем ppp10 с адресом 2.2.2.2

Однако на запросы полученные на ppp10 идут ответы с eth0 и надо поднять source routing.

Действия:

echo 10 P10 >>/etc/iproute2/rt_tables

скрипт: /etc/network/if-up.d/linkname
исполняющийся при поднятии ppp10 для этого линка.

#!/bin/sh
if [ «$IFACE» = «linkname» ]; then
ip rule add from 2.2.2.2 table P10
ip route add default via 2.2.2.2 dev ppp10 table P10
ip route flush cache
fi

Если я эти строки исполняю после поднятия интерфейса все работает как надо а вот во время поднятия:
#ifup linkname
получаю: «RTNETLINK answers: No such process»
на строку ip route add default via 2.2.2.2 dev ppp10 table P10

Получается что правила из /etc/network/if-up.d исполняются до поднятия интерфейса.

Как быть и какой Debian-way поднятия соурс роутинга на ppp интерфейс?

С уважением,
Олег.

★★

ip route add default via 2.2.2.2 dev ppp10 table P10 он у тебя точно всегда ppp10? мошт заменить на $PPP_IFACE? ip rule кстати желательно чистить когда интерфейс гаснет, иначе их со временем наберется отчень много.

GHhost ()

и via 2.2.2.2 еще на via $PPP_REMOTE и from 2.2.2.2 на from $PPP_LOCAL тоже не помешает, не нада будит ниче переписывать если вдруг адреса поменяются.

GHhost ()
Ответ на: комментарий от blind_oracle

Юзай /etc/ppp/ip-up.d, там всё чотко :)

Как раз и вернулся чтобы описать что именно это и нашел.
Спасибо за участие.

Итог:

/etc/ppp/ip-up.d/ppp10:
#!/bin/sh
if [ «$PPP_IFACE» = «ppp10» ]; then
ip rule add from $PPP_LOCAL table P10
ip route add default via $PPP_LOCAL dev $PPP_IFACE table P10
ip route flush cache
fi
Все работает.

n0mad ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.