Выставить default route для PPPD

Я уже наверное плешь проел с VPN. Но в продолжение к статье мне подсказали, что для того, что бы не прописывать в /etc/ppp/ip-up

route add default ppp0 

можно в настройках подключения соединени new_connection добавить опцию defaultroute. Но как показала практика, эта опция не работает, то есть роуты не прописывает под ppp0 соединение. Можно открыть сорцы pppd и увидеть

/********************************************************************
 *
 * defaultroute_exists - determine if there is a default route
 */

static int defaultroute_exists (struct rtentry *rt)

<SNIP>

/********************************************************************
 *
 * sifdefaultroute - assign a default route through the address given.
 */

int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
{
    struct rtentry rt;

    if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) {
        if (rt.rt_flags & RTF_GATEWAY)
            error("not replacing existing default route via %I",
                  SIN_ADDR(rt.rt_gateway));
        else
            error("not replacing existing default route through %s",
                  rt.rt_dev);
        return 0;
    }

Итак, мы видим, что если по умолчанию уже прописаны, defaultroute от pppd не сработает.

По мотивам статьи из инета.



4 Комментариев

  1. nx | Март 3, 2010

    и, а где же решение? =)

  2. Gep | Март 3, 2010

    Прежнее решение остается пока что. Это кривовато, но работает. А defaultroute как положено не сможет заработать.

  3. nx | Март 3, 2010

    конечно сможет!
    поверь мне, тебе не нужен default route по умолчанию =)

    я могу сказать почему, но тогда это перестанет быть загадкой =)

  4. Gep | Март 3, 2010

    Я только что выяснил, что надо еще проставить опцию

    replacedefaultroute

    Должно заработать. Приду домой, проверю

Комментарий: