|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alexander Lunyov 2:5059/20.5 14 May 2004 12:30:34 To : All Subject : ppp и /dev/cuaa10 - кто виноват? --------------------------------------------------------------------------------
Есть шлюз, он же NAS. FreeBSD-4.8R-p13, три мультипортовки Cronyx Omega
PCI, образующие стройный список из 24 COM-портов /dev/cuaa[1-9a-o]. Hа все эти
24 порта навешаны mgetty, дальше по /AutoPPP/ пускается exppp (или ppp, что не
так уж и важно), авторизация и аккаунтинг работает через freeradius.
С включением rlm_ippool (модуль раздачи ip адресов из пула) в freeradius'е
обнаружился глюк - при коннекте диалапщиков на определенные номера radiusd не
выдает ip адрес, и клиент, соответственно, отваливается с ошибкой "сервер не
назначил IP адрес". Стал смотреть-копать. Атрибут номера порта (NAS-Port-Id)
не передается серверу, если коннект происходит на определенных портах. Смотрю
логи ppp:
Phase: Using interface: tun9
Phase: deflink: Created in closed state
Command: default: set radius /etc/radius.conf
Command: default: set dns 192.168.33.127
Command: default: set local_ip 62.33.65.0/24
Warning: Add local net: 62.33.65.0/24
Command: default: accept dns
Command: default: enable lqr
Command: default: enable pap
Command: default: enable chap
Command: default: enable mschap
Command: default: enable mschapv2
Command: default: set rad_alive 20
Command: default: disable acfcomp protocomp
Command: default: deny acfcomp
Command: dialup: set timeout 900
Command: dialup: set mru 576
Command: dialup: set mtu 576
Phase: PPP Started (direct mode).
Phase: bundle: Establish
Phase: deflink: closed -> opening
Phase: deflink: Connected!
Phase: deflink: opening -> carrier
> Phase: deflink: /dev/cuaa15: CD detected *** (1)
Phase: deflink: carrier -> lcp
Phase: bundle: Authenticate
Phase: deflink: his = none, mine = CHAP 0x05
Phase: Chap Output: CHALLENGE
Phase: Chap Input: RESPONSE (16 bytes from rim74)
> Error: NAS-Port-Id borken: -1 *** (2)
Phase: Radius: Request sent
Phase: Radius(auth): ACCEPT received
Phase: Octets limit 292770808
Phase: Chap Output: SUCCESS
Phase: deflink: lcp -> open
Phase: bundle: Network
(1) - А mgetty рапортовал об этом коннекте как о коннекте на порт
/dev/cuaaf. Откуда взялась цифра 15?
(2) - Это мой дебуг, вставленный в radius.c. Вот что там в оригинале:
в radius.c:
if ((slot = physical_Slot(p)) >= 0)
if (rad_put_int(rad, RAD_NAS_PORT, slot) != 0) {
log_Printf(LogERROR, "rad_put: rad_put_int: %s\n", rad_strerror(rad));
rad_close(rad);
return 0;
}
Я просто добавил к первому if отладочный else. physical_Slot() - это из
physical.c:
int
physical_Slot(struct physical *p)
{
if (p->handler && p->handler->slot)
return (*p->handler->slot)(p);
return -1;
}
А p->handler получается, если я ничего не напутал, из tty.c:
в tty_iov2device():
memcpy(&dev->dev, &basettydevice, sizeof dev->dev);
physical_SetupStack(p, dev->dev.name, PHYSICAL_NOFORCE);
if (dev->Timer.state != TIMER_STOPPED) {
dev->Timer.state = TIMER_STOPPED;
p->handler = &dev->dev; /* For the benefit of StartTimer */
tty_StartTimer(p);
}
return &dev->dev;
Расстановка сил такая:
cuaa1 cuaa2 cuaa3 cuaa4 cuaa5 cuaa6 cuaa7 cuaa8 - первая мультипортовка
cuaa9 cuaaa cuaab cuaac cuaad cuaae cuaaf cuaag - вторая мультипортовка
cuaah cuaai cuaaj cuaak cuaal cuaam cuaan cuaao - третья мультипортовка
Проблема возникает на устройствах cuaa10 - cuaa16 (все эти порты висят на
одной карточке), имена портов cuaah - cuaao не поганятся.
Главный вопрос - где происходит подмена имен устройств? Кто сообщает ppp
неправильные имена портов - уж не система ли (в смысле, драйвер обозначенной
omega pci)? Куда посмотреть за неопровержимыми доказательствами (чтобы было с
чем обращаться в суппорт Cronyx'а)?
p.s.: приведенные фрагменты сырцов не менялись в exppp, в штатном ppp то же
самое, так что проблема не в exppp.
* bye
---
* Origin: no sex until marriage! (c) Front242 (2:5059/20.5)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/276540a483bb.html, оценка из 5, голосов 10
|