Jump to content

Recommended Posts

Posted

Всем привет!

В домовой сети сервер доступа работает по протоколу PPPoE (exppp+pppoed). Но так как exppp/ppp работает в usermode, то это вызывает значительную загрузку процессора. Пытаюсь перейти на mpd, но ничего не выходит. Соединение не устанавливается. Прошу оказать помощь. Привожу конфигурацию сервера, протоколы соединения, протокол снифера.

 

>uname -a

FreeBSD HAL9000.sinnet.ru 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Sat Oct 16 22:44:39 YEKST 2004 root@HAL9000.sinnet.ru:/usr/obj/usr/src/sys/HAL9000 i386

 

>cat mpd.conf

 

default:

log console fsm link phys bund auth pptp ccp lcp iface ipcp

load pppoe0

 

pppoe0:

new PPPoE PPPoE

set ipcp ranges 172.18.2.1/32 172.18.2.77/32

set ipcp dns 172.18.2.1

set ipcp enable vjcomp

 

set iface idle 0

set iface mtu 1492

set iface disable on-demand

 

set link mtu 1492

set link mru 1492

set link enable pap

set link disable chap

set link disable chap-md5

set link disable chap-msv1

set link disable chap-msv2

set link max-redial -1

 

set radius server 127.0.0.1 radius_passwd 1812 1813

set radius timeout 10

set radius config /etc/radius.conf

set radius retries 3

 

set bundle enable radius-auth

set bundle enable radius-acct

set bundle enable noretry

set bundle disable multilink

 

>cat mpd.link

 

PPPoE:

set link type pppoe

set pppoe iface fxp0

set pppoe service "SinNET"

set pppoe enable incoming

set pppoe disable originate

 

 

# mpd

Multi-link PPP for FreeBSD, by Archie L. Cobbs.

Based on iij-ppp, by Toshiharu OHNO.

mpd: pid 1135, version 3.18 (root@HAL9000.sinnet.ru 14:54 17-Oct-2004)

[PPPoE] ppp node is "mpd1135-PPPoE"

[PPPoE] exec: /sbin/ifconfig fxp0 up

[PPPoE] using interface ng0

[PPPoE:PPPoE] [PPPoE] PPPoE server listening on fxp0: for service "SinNET"

Incoming PPPoE connection request via fxp0: for service "SinNET" from 00:03:47:e1:09:48

[PPPoE] Accepting PPPoE connection

[PPPoE] PPPoE response sent

[PPPoE] IPCP: Open event

[PPPoE] IPCP: state change Initial --> Starting

[PPPoE] IPCP: LayerStart

[PPPoE] bundle: OPEN event in state CLOSED

[PPPoE] opening link "PPPoE"...

[PPPoE] link: OPEN event

[PPPoE] LCP: Open event

[PPPoE] LCP: state change Initial --> Starting

[PPPoE] LCP: LayerStart

[PPPoE] device: OPEN event in state DOWN

[PPPoE] PppoeOpen() on incoming call

[PPPoE] device is now in state OPENING

[PPPoE] PPPoE connection closed

[PPPoE] device: DOWN event in state OPENING

[PPPoE] device is now in state DOWN

[PPPoE] link: DOWN event

[PPPoE] LCP: Down event

[PPPoE] LCP: Close event

[PPPoE] LCP: state change Starting --> Initial

[PPPoE] LCP: LayerFinish

[PPPoE] closing link "PPPoE"...

[PPPoE] IPCP: Close event

[PPPoE] IPCP: state change Starting --> Initial

[PPPoE] IPCP: LayerFinish

[PPPoE] bundle: CLOSE event in state OPENED

[PPPoE] link: CLOSE event

[PPPoE] LCP: Close event

[PPPoE] device: CLOSE event in state DOWN

[PPPoE] device is now in state DOWN

 

 

# tcpdump -i fxp0 -n -e -t -p not ip

0:3:47:e1:9:48 ff:ff:ff:ff:ff:ff 8863 60: PPPoE PADI [Host-Uniq UTF8] [service-Name "SinNET"]

0:90:27:40:3f:5 0:3:47:e1:9:48 8863 67: PPPoE PADO [AC-Name "HAL9000.sinnet.ru"] [service-Name "SinNET"] [Host-Uniq UTF8] [AC-Cookie UTF8]

0:3:47:e1:9:48 0:90:27:40:3f:5 8863 67: PPPoE PADR [Host-Uniq UTF8] [AC-Cookie UTF8] [AC-Name "HAL9000.sinnet.ru"] [service-Name "SinNET"]

0:3:47:e1:9:48 0:90:27:40:3f:5 8863 67: PPPoE PADR [Host-Uniq UTF8] [AC-Cookie UTF8] [AC-Name "HAL9000.sinnet.ru"] [service-Name "SinNET"]

Posted
а что клиент то отвечает? Всмысле виндевые машинки?

 

Вообще проверял клиентом на FreeBSD (рабочий конфиг, проверен на exppp/pppoed)

 

# ppp -background SinNET

Working in background mode

Using interface: tun0

Child failed (errdead)

 

Сейчас сбегаю к соседу с виндой и посмотрю, сюда отпишу.

Posted
А собственно чем не устраивает встроенный pppoed ?

 

Сам pppoed ничего не делает, он только принимает запросы на установку соединения PPPoE и форкает процесс ppp. Функциональность ppp (exppp) вполне устраивает. Вот только, как писал выше, ppp работает в usermode через туннельное псевдоустройство tun, что вызывает повышенную загрузку процессора. А mpd работает в kernel mode.

 

В Windows (RASPPPOE) с mpd просто возникает ошибка "Удаленное устройство не отвечает" (или не берет трубку).

Posted
устраивает. Вот только, как писал выше, ppp работает в usermode через туннельное псевдоустройство tun, что вызывает повышенную загрузку процессора. А mpd работает в kernel mode.

 

Бред, перечитайте документацию на pppoed, в usermode попадает только LCP/IPCP,

все остальное идет по netgraph так же как в mpd.

Posted
Бред, перечитайте документацию на pppoed, в usermode попадает только LCP/IPCP,

все остальное идет по netgraph так же как в mpd.

 

Полный бред написали именно Вы. Сначала разберитесь, потом ругайтесь. Привожу кусок мана:

 

The pppoed utility listens to the given interface for PPP over Ethernet (PPPoE) service request packets, and actions them by negotiating a ses sion then invoking a ppp(8) program. The negotiation is implemented by the ``pppoe'' netgraph node. See ng_pppoe(4) for details.

 

The pppoed utility will only offer services to clients requesting services from the given provider, which is taken as an empty name if not provided. If a provider name of ``*'' is given, any PPPoE requests will be offered service.

 

The supplied name will be given as the access concentrator name when establishing the connection. If no name is given, the current base hostname is used.

 

After receiving a request (PADI) from the PPPoE netgraph node, pppoed fork(2)s a child process and returns to service further requests. The child process offers service (using name) and waits for a SUCCESS indication from the PPPoE node. On receipt of the SUCCESS indication, pppoed will execute

 

exec /usr/sbin/ppp -direct label

 

as a shell sub-process. If label has not been specified, it defaults to provider. It is possible to specify another command using the exec argument. This is mandatory if provider and label are not given. The child process will have standard input and standard output attached to the same netgraph(4) data socket (see ng_socket(4)) when started.

 

Прочитайте внимательно последний абзац. Вся инкапсуляция в протокол ppp реализована именно в даемоне ppp (для чего и сделано псевдоустройство tun). Netgraph реализует только pppoe-инкапсуляцию (затрачивая при этом всего 2 байта на инкапсуляцию). А в mpd трафик не покидает ядра (как и LCP/IPCP).

Posted
Полный бред написали именно Вы. Сначала разберитесь, потом ругайтесь. Привожу кусок мана:

 

Да я собственно и не ругался. :-) Ругаюсь я несколько по-другому.

А Вам я рекомендую прогнать тесты для pppoed на пиковую нагрузку. :-)

У mpd же PPPoE от версии к версии хромает, и периодически вообще не работает.

 

С pppoed замечена только одна аномалия - net.graph.nonstandard_pppoe он

выставляет в 1 после того как получает некоторое количество нестандартных

PPPoE фреймов. Но это элементарно лечится.

Posted

В том то и дело, что так как pppoed практически ничего не делает (только принимает запросы на установку соединения и форкает ppp), то он и не пожирает ресурсы. Пожирают именно процессы ppp. Приходится отключать всякое шифрование и компрессию, чтобы получить приемлимую производительность.

Posted
В том то и дело, что так как pppoed практически ничего не делает (только принимает запросы на установку соединения и форкает ppp), то он и не пожирает ресурсы. Пожирают именно процессы ppp. Приходится отключать всякое шифрование и компрессию, чтобы получить приемлимую производительность.

 

Шифрование и компрессия на линках >10Mbits средствами PPP - это в

консерватории что-то. :-) Я надеюсь мы говорим о концентраторах PPPoE как

минимум на поток в 100Mbits ?

Posted
В том то и дело, что так как pppoed практически ничего не делает (только принимает запросы на установку соединения и форкает ppp), то он и не пожирает ресурсы. Пожирают именно процессы ppp. Приходится отключать всякое шифрование и компрессию, чтобы получить приемлимую производительность.

 

Шифрование и компрессия на линках >10Mbits средствами PPP - это в

консерватории что-то. :-) Я надеюсь мы говорим о концентраторах PPPoE как

минимум на поток в 100Mbits ?

 

Шифрование вещь иногда очень полезная. Компрессия конечно лишнее.

Posted
Шифрование вещь иногда очень полезная. Компрессия конечно лишнее.

 

Для шифрования есть ipsec.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.