Bushi Posted October 17, 2004 Posted October 17, 2004 Всем привет! В домовой сети сервер доступа работает по протоколу 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"] Вставить ник Quote
Vicus Posted October 17, 2004 Posted October 17, 2004 а что клиент то отвечает? Всмысле виндевые машинки? Вставить ник Quote
Bushi Posted October 17, 2004 Author Posted October 17, 2004 а что клиент то отвечает? Всмысле виндевые машинки? Вообще проверял клиентом на FreeBSD (рабочий конфиг, проверен на exppp/pppoed) # ppp -background SinNET Working in background mode Using interface: tun0 Child failed (errdead) Сейчас сбегаю к соседу с виндой и посмотрю, сюда отпишу. Вставить ник Quote
jab Posted October 17, 2004 Posted October 17, 2004 А собственно чем не устраивает встроенный pppoed ? Вставить ник Quote
Bushi Posted October 18, 2004 Author Posted October 18, 2004 А собственно чем не устраивает встроенный pppoed ? Сам pppoed ничего не делает, он только принимает запросы на установку соединения PPPoE и форкает процесс ppp. Функциональность ppp (exppp) вполне устраивает. Вот только, как писал выше, ppp работает в usermode через туннельное псевдоустройство tun, что вызывает повышенную загрузку процессора. А mpd работает в kernel mode. В Windows (RASPPPOE) с mpd просто возникает ошибка "Удаленное устройство не отвечает" (или не берет трубку). Вставить ник Quote
jab Posted October 18, 2004 Posted October 18, 2004 устраивает. Вот только, как писал выше, ppp работает в usermode через туннельное псевдоустройство tun, что вызывает повышенную загрузку процессора. А mpd работает в kernel mode. Бред, перечитайте документацию на pppoed, в usermode попадает только LCP/IPCP, все остальное идет по netgraph так же как в mpd. Вставить ник Quote
Bushi Posted October 18, 2004 Author Posted October 18, 2004 Бред, перечитайте документацию на 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). Вставить ник Quote
Guest Posted October 18, 2004 Posted October 18, 2004 Полный бред написали именно Вы. Сначала разберитесь, потом ругайтесь. Привожу кусок мана: Да я собственно и не ругался. :-) Ругаюсь я несколько по-другому. А Вам я рекомендую прогнать тесты для pppoed на пиковую нагрузку. :-) У mpd же PPPoE от версии к версии хромает, и периодически вообще не работает. С pppoed замечена только одна аномалия - net.graph.nonstandard_pppoe он выставляет в 1 после того как получает некоторое количество нестандартных PPPoE фреймов. Но это элементарно лечится. Вставить ник Quote
Bushi Posted October 18, 2004 Author Posted October 18, 2004 В том то и дело, что так как pppoed практически ничего не делает (только принимает запросы на установку соединения и форкает ppp), то он и не пожирает ресурсы. Пожирают именно процессы ppp. Приходится отключать всякое шифрование и компрессию, чтобы получить приемлимую производительность. Вставить ник Quote
Guest Posted October 18, 2004 Posted October 18, 2004 В том то и дело, что так как pppoed практически ничего не делает (только принимает запросы на установку соединения и форкает ppp), то он и не пожирает ресурсы. Пожирают именно процессы ppp. Приходится отключать всякое шифрование и компрессию, чтобы получить приемлимую производительность. Шифрование и компрессия на линках >10Mbits средствами PPP - это в консерватории что-то. :-) Я надеюсь мы говорим о концентраторах PPPoE как минимум на поток в 100Mbits ? Вставить ник Quote
Guest Posted October 18, 2004 Posted October 18, 2004 В том то и дело, что так как pppoed практически ничего не делает (только принимает запросы на установку соединения и форкает ppp), то он и не пожирает ресурсы. Пожирают именно процессы ppp. Приходится отключать всякое шифрование и компрессию, чтобы получить приемлимую производительность. Шифрование и компрессия на линках >10Mbits средствами PPP - это в консерватории что-то. :-) Я надеюсь мы говорим о концентраторах PPPoE как минимум на поток в 100Mbits ? Шифрование вещь иногда очень полезная. Компрессия конечно лишнее. Вставить ник Quote
Guest Posted October 18, 2004 Posted October 18, 2004 Шифрование вещь иногда очень полезная. Компрессия конечно лишнее. Для шифрования есть ipsec. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.