понедельник, 18 мая 2009 г.

настройка pppoe соединения в gentoo linux

Живу я и беларуси и подключился на государственного провайдера byfly .
adsl анлим , хотя и не очень быстрый - 128 килобит в секунду.
Для броузинга по интернету хватает , а вот апдейтить мой любимый генту нет ,так и хочется его ускорить :)
Есть у этого провайдера одна особенность - гостевой доступ.
То есть основной доступ ,который в интернет, настраивается по pppoe с одним логином и паролем.
А вот гостевой , который к внутренним ресурсам , совсем в другим .И плюшка в том что на гостевом доступе лежит и портеж , и все distfiles.И скорость там полтора мегабита.Круть!
Adsl Модем у меня вот такой zyxel p660htw2ee , умеет сам настраиваться только на одно pppoe соединение , которое я и настроил на основной интернет.
Что мне было надо , так это при включенном основном pppoe доступе на модеме настроить дополнительное pppoe соединение с внутренними ресурсами уже gentoo.

1. Для этого проверяем , что я ядре включено pppoe. Смотрим конфиг ядра, если pppoe нет . включаем. А также проверяем , что на модеме включена опция для проброса нескольких pppoe соединений с компа(PPPoE Passthrough). У меня она выглядит вот так:

2. Далее идем в /etc/conf.d/net
и делаем все по примеру в net.example
  • В консоли создаем новый сетевой интерфейс командой ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
  • в /etc/conf.d/net добавляем следующее :

    config_ppp0=( "ppp" )
    link_ppp0="wlan0" # PPPoE requires an ethernet interface
    plugins_ppp0=(
    "pppoe" # Required plugin for PPPoE
    )

    username_ppp0='mynumber@guest'
    password_ppp0='password'

    pppd_ppp0=(
    "usepeerdns"
    "lcp-echo-interval 15"
    "lcp-echo-failure 3"
    "nomppe"
    )
    RC_NEED_ppp0="net.wlan0"
    postup() {
    if [ "${IFACE}" = "ppp0" ]; then
    set_guest_routes
    fi
    return 0
    }

    link_ppp0="wlan0" , обозначает , что у меня основной интернет канал подключен через wlan0 интерфейс .У кого-то это может eth0 , если нет по сетевому кабелю,
    Заполняет далее свой логин , пасворд
    RC_NEED_ppp0="net.wlan0" - прописываем , что нашему интерфейсу нужен для работы wlan0 и он его автоматически будем пытаться поднять первым , если wlan0 не включен
    postup() - данная функция запускается автоматически gentoo , когда наш интерфейс ppp0 поднимается, У меня в ней прописан запуск set_guest_routes - это файлик , в который для удобства я вынес роуты на внутренние ресурсы.Если надо я могу туда быстро добавить дополнительный роут , не открывая под рутом конфиг сети.
    Выгдядит он так:

    route add 93.84.80.6 dev ppp0
    route add 93.84.122.41 gw 93.84.80.6 dev ppp0
    route add 93.84.125.2 gw 93.84.80.6 dev ppp0
    route add 10.240.8.129 gw 93.84.80.6 dev ppp0
    route add 82.209.245.153 gw 93.84.80.6 dev ppp0
    route add 193.232.248.79 gw 93.84.80.6 dev ppp0
    route add 93.84.80.9 gw 93.84.80.6 dev ppp0
    route add 10.0.0.0 gw 93.84.80.6 dev ppp0
    route add 192.168.52.2 gw 93.84.80.6 dev ppp0
    route add 93.84.80.5 gw 93.84.80.6 dev ppp0
    route add ftp.byfly.by gw 93.84.80.6 dev ppp0
    route add ftp.mgts.by gw 93.84.80.6 dev ppp0
    route add shoutcast.byfly.by gw 93.84.80.6 dev ppp0

    собственно ,route add 93.84.80.6 dev ppp0 - добавляет маршрут на сам роутер , через который ходит трафик.Если выполнять tracepath byfly.by , то этот адрес следующий после айпишника ppp0 интерфейса.
    А все остальные - это роуты на внутренние ресурсы.
    У меня был уже до этого настроен за пару минут rp-pppое , из которого я с помощью tracepath ftp.byfly.by я узнал все нужные мне адреса роутов. Аналогично можно посмотреть такие адреса , настроив гостевой на модеме , или добавив 93.84.80.6 как default gateway , или спросить на худой конец у провайдера :)

    3. Собственно и все , завершающий штрих, добавляем наш интерфейс в автозагрузку
    rc-update add net.ppp0 default
Update 2009jun03 :
А вот и статья как настроить pppoe в ubuntu&debian дистрибутивах Настройка PPPoE в Linux без NetworkManager от камрада ffsdmad
Welcome кому надо :)

7 комментариев :

  1. Модем у меня вот такой zyxel p660htw2ee , умеет сам настраиваться только на одно pppoe соединение
    А вы внимательно смотрели? Зайдите в модем по telnet, к примеру.
    Короче говоря, если мне не изменяет мой склероз, через telnet ui можно настроить до 10 (кажется) одновременных подключений.

    ОтветитьУдалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить
  3. Спасибо , точно есть такая фишка:) доступна через веб интерфейс также.Подключения там указываются в виде списка , а не как основное подключение на wan вкладке
    Поздно заметил :)Обязательно попробую . Но вот как для этого подключения настроить нужные роуты?Чтобы на нужные сайты ходило через этот интерфейс.Это получается нужно все равно делать на локальном компе роутинг?

    ОтветитьУдалить
  4. Ну, он же вроде как роутер?
    Вот и заставьте его роутить :)
    Статическая маршрутизация в любом случае присутствует.

    И да — был бы признателен, если бы вы рассказали о результатах своих изысканий в этой области :)

    ОтветитьУдалить
  5. Вот, обещал проверить :Не поддерживает мой модем два одновременных соединения с одинаковыми VCI.Обновился даже до последней бета прошивки , но не помогает.
    А провайдер в свою очередь может работать только на одном vci=33.

    В нете прочитал что есть модемы которые так могут: "Доподлинно известно, что такое умеют делать D-Link DSL-2500U и Acorp Sprinter@ADSL LAN122, также ACORP-W422G и D-Link 2640 и многие другие!"

    Так что остаюсь сейчас на текущем решении.Время показало что оно довольно стабильно.Но есть минус , сейчас подрубился к модему друг и у него также надо делать тоже самое на компе.А хотелось чтобы все было на модеме...

    ОтветитьУдалить
  6. Подскажите плз а куда эту строчку надо прописать ?
    config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )

    ОтветитьУдалить
  7. это нужно прописать в /etc/conf.d/net
    В вашем случае вы задаете свой собственный ай адрес , поэтому обычно еще прописываетя default route,чтобы через него шел весь трафик.
    Вот так:
    config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )
    routes_eth0=( "default gw 192.168.0.1" )
    Подробнее про настройку ай пи адреса еще можно почитать тут: http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=1&chap=8

    ОтветитьУдалить