Автор Тема: pppoe на роутере - хотелось бы обсудить!!!  (Прочитано 1494 раз)

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Резюмируя свои танцы с различными вариантами роутеров на кентавре:
Постройка SOHO роутера на p6 (кентавре) используя pppoe соединение сопряжено с 4-мя трудностями:
1. Из-за разных параметров MTU внешнего и внутреннего соединений некорректно работает доступ в интернет через NAT кривенько решено тут (https://bugzilla.altlinux.org/show_bug.cgi?id=25037)
2. Костыльный перезапуск ppp соединения при обрыве, скриптом по крону.
https://bugzilla.altlinux.org/show_bug.cgi?id=23918
пример скрипта есть тут:
https://bugzilla.altlinux.org/show_bug.cgi?id=23916
3. Сильная загрузка процессора на больших скоростях!!!
Использование ядерного модуля pppoe решает проблему - здесь есть патч!
https://bugzilla.altlinux.org/show_bug.cgi?id=26890
4. Создание точки доступа wifi через hostapd - в целом нормально, но я пока так и не смог настроить мост между wifi и внутренней сеткой. Скорее всего не хватает понимания проблемы.
т.е. если я делаю мост между wlan0 и eth0 - hostapd не запускается на результирующем интерфейсе
если я делаю мост между mon.wlan0 и eth0 - то вообще все перестает работать.

Вопросов собственно всего 3:
1. Проблема зависания etcnet при недоступности pppX во время старта системы, не решается ли она, использованием ядерного модуля pppoe?
Проверить я не могу, поскольку теперь etcnet не поддерживает опции PPPMAXFAIL, PPPPERSIST, PPPHOLDOFF, PPPIDLE. А при попытке указать их в pppoptions - ppp соединение просто не стартует, ошибки сейчас не помню.
2. Как можно настроить ppp соединение по требованию?
3. Надоумьте - как правильно построить мост между radiotap  и eth  в пункте 4??
« Последнее редактирование: 07.11.2012 14:08:42 от flint1975 »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
1. решается посредством PPPOE_EXTRA_OPTIONS="-m 1412" в /etc/net/ifaces/pppX/options

2. это про то, но не то. Параметры просто надо писать в /etc/net/ifaces/pppX/pppoptions
и не забыть, что надо ONBOOT=no и ifup pppX потом, в rc.local, к примеру.

Это про пункты, а не про вопросы. :-)

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
Сергей, спасибо за ответ, но требуются пояснения:
1. решается посредством PPPOE_EXTRA_OPTIONS="-m 1412" в /etc/net/ifaces/pppX/options
Каким образом установка MSS (что почти эквивалентно MTU) на pppX в 1412 решит проблему NAT, когда в сети MTU 1500 ?

2. Параметры просто надо писать в /etc/net/ifaces/pppX/pppoptions
и не забыть, что надо ONBOOT=no и ifup pppX потом, в rc.local, к примеру.
Все баги я прочитал внимательно, и об этом в курсе!
Просто при попытке написать в pppoptions:
PPPPERSIST=on
PPPMAXFAIL=0
ppp0 - не стартует, в ошибках не разбирался, повесил скрипт по крону.

Просто я предположил, что etcnet зависает потому, что ждет завершения настройки интерфейса, а если сделать для ppp интерфейса - в фон,затем небольшой таймаут, и продолжить загрузку системы, тогда, когда появится ppp то и подключится. (немного сумбурно, но у меня такое ощущение, что этого не сделали из-за проблем с rp-pppoe)
« Последнее редактирование: 07.11.2012 16:19:10 от flint1975 »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Сергей, спасибо за ответ, но требуются пояснения:
1. решается посредством PPPOE_EXTRA_OPTIONS="-m 1412" в /etc/net/ifaces/pppX/options
Каким образом установка MSS (что почти эквивалентно MTU) на pppX в 1412 решит проблему NAT, когда в сети MTU 1500 ?
При хождении через этот линк размер пакета уже не будет 1500. Хотя, что-то, у меня уже сомнения есть в происходящем там процессе, надо бы tcpdump-ом уточнить. Но, вроде, -m 1412 у pppoe хватает для решения вопроса.

Просто при попытке написать в pppoptions:
PPPPERSIST=on
PPPMAXFAIL=0
ppp0 - не стартует, в ошибках не разбирался, повесил скрипт по крону.
Потому, что pppoptions не etcnetoptions. :) Надо
persist
maxfail 0
Просто я предположил, что etcnet зависает потому, что ждет завершения настройки интерфейса, а если сделать для ppp интерфейса - в фон,затем небольшой таймаут, и продолжить загрузку системы, тогда, когда появится ppp то и подключится. (немного сумбурно, но у меня такое ощущение, что этого не сделали из-за проблем с rp-pppoe)
Да, ждёт поднятия интерфейса. Потому и посоветовал ONBOOT=no и ifup pppX

Оффлайн flint1975

  • Участник
  • *
  • Сообщений: 1 443
При хождении через этот линк размер пакета уже не будет 1500. Хотя, что-то, у меня уже сомнения есть в происходящем там процессе, надо бы tcpdump-ом уточнить. Но, вроде, -m 1412 у pppoe хватает для решения вопроса.
По этому вопросу я нашел вот что: http://www.altlinux.org/VPN_(PPTP_PPPoE)
Цитировать
из man pppoe:
       -m MSS Causes pppoe to clamp the TCP  maximum  segment  size  at  the  specified
              value.   Because of PPPoE overhead, the maximum segment size for PPPoE is
              smaller than for normal Ethernet encapsulation.  This could  cause  prob
              lems  for  machines on a LAN behind a gateway using PPPoE.  If you have a
              LAN behind a gateway, and the gateway  connects  to  the  Internet  using
              PPPoE, you are strongly recommended to use a -m 1412 option.  This avoids
              having to set the MTU on all the hosts on the LAN.
Что и говорит, за то, что вы правы, но далее по тексту:
Цитировать
PS. Если используется как шлюз, то в /etc/net/ifaces/default/fw/iptables/mangle/FORWARD необходимо вставить:

-p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

У себя я не использую -m 1412, а только -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu - в /etc/net/ifaces/default/fw/iptables/mangle/FORWARD
При этом MTU - альтератор автоматом выставляет 1476.
Все работает.
Завтра попробую наоборот и посмотрю как будет работать.
P.S. По остальным вопросам - все понятно, спасибо. :) Хотя у меня есть подозрение, что можно поправить etcnet так, чтобы оставить ONBOOT=yes и не вызвать зависаний (с помощью ядерного pppoe)!
« Последнее редактирование: 08.11.2012 00:09:00 от flint1975 »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Хотя у меня есть подозрение, что можно поправить etcnet так, чтобы оставить ONBOOT=yes и не вызвать зависаний (с помощью ядерного pppoe)!
Сначала надо определиться с тем, бага это, или фича. ;-)
А, вдруг, есть сервис, который не должен запускаться до того, как поднимется сеть ?