brodayga
-
Публикации
61 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем brodayga
-
-
Добрый день работает ли extfilter с тегированным трафиком. Если да то как включить?
-
Добрый день. А как сообщить nfqfilter(от max1976) что файлы-списки обновились, или демон сам проверяет?
-
а что выступает в роли dhcp сервера?
У FIGO Проблема в том что порт 15 а в опции
Agent information{82}= sub{1}={000405F70111}
Номер порта hex11 = 17
ДШСП Сервер тут не причём. Циска вставляет не номер порта а внутренний номер интерфейса, как я понимаю, и необходимо заставить вставлять номер порта.
-
Проблема решена, выложили прошивку http://data.nag.ru/Orion%20Networks/Firmwares/A10E/revB/NOS_4.14.1967.A10E-A28E-revB-6.002.20141017.zip на ней работает.
-
схема
dhcp-server <--10port vlan 11,12,20> orion A10 <vlan 12,20 9port--26port vlan 12,20> orion A26 <vlan 12 1port--> dhcp клиент
если на A10 просто прогнать влан то клиент получает адрес.
Но,если на a10
create vlan 11,12,20 active interface port 1 switchport access vlan 11 switchport access egress-allowed vlan remove 1 ip dhcp snooping information option vlan-list 11 ! interface port 9 switchport trunk allowed vlan 12,20 switchport trunk untagged vlan remove 1 switchport mode trunk ip dhcp snooping trust ! interface port 10 switchport trunk allowed vlan 11,12,20 switchport trunk untagged vlan remove 1 switchport mode trunk ip dhcp snooping trust ! ip dhcp snooping ip dhcp snooping information option ip dhcp information option remote-id string 192.168.10.11
То клиент перестаёт получать адрес,
в дебаге на a26
DHCPS PACKET: inserted an option 82(subscriber-id 00:06:00:0C:01:00:00:01 remote -id 31:39:32:2E:31:36:38:2E:32:30:33:2E:34:32) into this request packet(type:1), new packet length 315 %Jan 18 20:39:30 2006 DHCPS: rcv packet from client e8-11-32-67-38-0b, interface Ethernet1/1(portID 0x1000001), length 361, type DHCPDISCOVER, opcode BOOTREQUEST, stacking 0 %Jan 18 20:39:30 2006 DHCPS: flood dhcp pkt from Ethernet1/1 dst mac ff-ff-ff-ff-ff-ff to all up port except input port Ethernet1/1 in vlan 12 %Jan 18 20:39:30 2006 DHCPS: do binding info from client e8-11-32-67-38-0b, interface Ethernet1/1, type DHCPDISCOVER, flag 0 %Jan 18 20:39:31 2006 The value of the segment iph->tot_len 306 is not equal to skb->len 334 %Jan 18 20:39:31 2006 DHCPS:dhcpSnoopingCheckIPUDPheader failed, return (-4)!
При этом в логе дшсп сервера опции именно A26
Отключаю всё что касаемо DHCP snooping на a10 то на a26 всё ок:
DHCPS PACKET: inserted an option 82(subscriber-id 00:06:00:0C:01:00:00:01 remote -id 31:39:32:2E:31:36:38:2E:32:30:33:2E:34:32) into this request packet(type:1), new packet length 315 %Jan 18 20:43:04 2006 DHCPS: rcv packet from client e8-11-32-67-38-0b, interface Ethernet1/1(portID 0x1000001), length 361, type DHCPDISCOVER, opcode BOOTREQUEST, stacking 0 %Jan 18 20:43:04 2006 DHCPS: flood dhcp pkt from Ethernet1/1 dst mac ff-ff-ff-ff -ff-ff to all up port except input port Ethernet1/1 in vlan 12 %Jan 18 20:43:04 2006 DHCPS: do binding info from client e8-11-32-67-38-0b, interface Ethernet1/1, type DHCPDISCOVER, flag 0 %Jan 18 20:43:05 2006 DHCPS PACKET: stripped an option 82 from this reply packet (type:2), new packet length 300 %Jan 18 20:43:05 2006 DHCPS: rcv packet to client e8-11-32-67-38-0b, interface Ethernet1/26(portID 0x100001A), length 346, type DHCPOFFER, opcode BOOTREPLY, stacking 0 %Jan 18 20:43:05 2006 DHCPS: Get send port Ethernet1/1 for DHCP reply unicast pa cket for dhcp client e8-11-32-67-38-0b in vlan 12
Ну и далее весь процес получения. Клиент получил адрес.
С A10 в 1 порту (11 влан) клиент получает адреса.
-
Возможно ли подключить датчик дыма (Датчик дыма (ИПД-3.4) ). Если да, то можно схему.
-
Возможно ли подключить inelt 500lt, если да то можно показать распиновку?
ЕРД умеет снимать параметры с УПС'ов по протоколу мегатек.
Схема подключения обычно такая:
ERD -> UPS 3 (Tx) -> 3 (Rx) 4 (Rx) -> 2 (Tx) 10 (GND)-> 5 (GND)
Так же некоторым моделям УПС требуется дополнительное питание порта RS-232, которое можно подключить с 2 контакта 10-контактного разъёма ЕРД.
2 -> 7 (+5V)
Спасибо.
не хватало
2 -> 7 (+5V)
всё заработало.
-
Возможно ли подключить inelt 500lt, если да то можно показать распиновку?
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
Давно не просматривал форум. Всплывал вопрос по l3 который интересен мне.
тут выше уже обсуждалось, но я так и не понял до конца как оно должно работать
клиенты находятся за каким-то маршрутизатором, который релеит дхцп запросы ?
Именно так
в режиме L2 accel при старте сессии добавляет до клиента маршрут на интерфейс с которого пришел дхцп запрос
в случае L3 получается маршрут нужно добавлять через этот релейный маршрутизатор ? тогда нужно знать его ип, тогда нужны новые опции в конфиге ... или может быть его ип соотвествует giaddr
В случае L3 маршрутизируется в в соответствии с таблицей маршрутизации.
-
При авторизации <NAS-Port 7>
а при аккаунтинге <NAS-Port 190>
По идее так не должно быть.
commit 33bdf4071ab9db915aa069ef69176f3e4b57484e Author: Dmitry Kozlov <xeb@mail.ru> Date: Fri Apr 11 13:04:54 2014 +0400 ipoe: early allocate interface for shared vlans (prevents different values of NAS-Port in Access-Request and Account-Request)
Спасибо
-
Xeb по поводу того что в личку скидывал не смотрели? есть возможность включить в код или изменения нарушают функционал ?
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
если включено nat=1, то адрес выданный дхцп клиенту через внешний дхцп сервер, локальный поинтерфейный пул или радиусом через атрибут attr-dhcp-client-ip считаются локальными
при этом, адрес выданный через ip-pool или радиусом через атрибут Framed-IP-Address считается внешним
так-же нужно указать в конфиге через опции local-net сети которые являются локальными, к которым, соотвественно, не будет применяться нат
Изначально то что вешал 192.168.5.2 разобрался - экспериментировал с выдачей по радиусу framed-pool и забыл убрать.
убрал он теперь вешает адрес из первого пула.
Конфиг
[ipoe] verbose=10 lua-file=/etc/accel-ppp.lua username=lua:username password=username1 lease-time=600 max-lease-time=3600 unit-cache=10 shared=1 ifcfg=0 mode=L2 start=dhcpv4 proxy-arp=0 nat=1 local-net=192.168.5.0/24 interface=eth3,mode=L2,relay=192.168.0.111,giaddr=192.168.3.1
ответ радиуса
[2014-03-25 18:35:34]: info: eth3: recv [RADIUS(1) Access-Accept id=1 <Acct-Interim-Interval 60> <Service-Type Framed-User> <Framed-Protocol PPP> <PPPD-Down stream-Speed-Limit 1200> <PPPD-Upstream-Speed-Limit 1200> <Vendor-Specific > <Vendor-Specific >]
DHCP ответ клиенту send [DHCPv4 Ack xid=dad46773 yiaddr=192.168.5.253 chaddr=00:0c:42:89:64:01 <Message-Type Ack> <Server-ID 192.168.5.1> < Lease-Time 660> <Router 192.168.5.1> <Subnet 255.255.255.0> <Relay-Agent {Agent-Circuit-ID eth3} {Agent-Remote-ID accel-pppd}> <Relay-Agent {Agent-Circuit-ID eth3} {Agent-Remote-ID accel-pppd}>]
ip a show dev ipoe0 ipoe0: <POINTOPOINT,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc tbf state UNKNOWN qlen 100 link/ether a0:36:9f:2c:f0:4b peer ff:ff:ff:ff:ff:ff inet 192.168.5.1 peer 192.168.0.2/32 scope global ipoe0
ippool подключён в модулях
и есть конфиг он из него и выдает на нат.
Если его отключить тогда не вешает,но тогда pool нельзя будет использовать нигде.
[ip-pool] gw-ip-address=192.168.0.1 attr=Framed-Pool 192.168.0.2-255 192.168.1.1-255,name=pool1 192.168.2.1-255,name=pool2 192.168.3.1-255,name=pool3 192.168.4.0/24
всё разобрался, надо оставить только именованные пулы.
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
Xeb не совсем понятна функция нат.
из доки
Если радиус (или локальный пул) выдаст внешний ип, то он будет назначен на этот псевдоинтерфейс и с помощью него будет осуществляться NAT.
Не совсем понятно как аксел определяет это внешний или локальный адрес. но судя по всему пока не включишь недокументированную nat=1 ничего не происходит.
После включения нат работает, но как я понял для всех адресов локальный или внешний без разницы.
Но:
Если использовать внешний DHCP сервер то например
сервер выдал адрес 192.168.5.254, а на ipoe0 назначается адрес 192.168.5.2 и осуществляется нат.
клиент получил адрес 192.168.5.254 аксел его натит в 192.168.5.2
Если используется внутренний dhcp то всё нормально.
-
Xeb а как в режиме L3 shared UP происходит перенаправление трафика на виртуальный интерфейс в таблице маршрутизации ничего не заметил. Как посмотреть правила в системе?
-
спасибо, у вас приходит в radius NAS-Port-Id = ? В словарях accel есть, а в радиус не прилетает .
Можно так
[pppoe]
ifname-in-sid=called-sid
в радиусе будет что то типо
Called-Station-Id=eth1.3002:00:02:55:53:10:6d
А NAS-Port-Id вроде как нет.
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
чтобы не гнать кучу влан, их можно сагригировать в QinQ и включить монитор влановНасчёт этого знаю. Не хочется весь L2 гнать в ядро. И сеть построена l3(есть нюансы).
в случае L2 эти интефейсы однозначно идентифицируются по приходу дхцп пакетов
в случае L3 релейные запросы будут приходить скорее всего по одному интерфейсу, а клиентский трафик бегать по другим
если клиентский интефейс один, то задачу в принципе можно решить, если несколько, то тупик
у вас реализована схема l2 шаред, когда один родительский интерфейс и ipoeXXX клиентские. Ну и l3 режим шаред старт по не классифицированному пакету тоже есть. И эта проблемма там решена.
Во всех реализациях "железных IPOE" дшсп запросы должны приходить именно на "родительский интерфейс" иначе не работает.
Единственное необходимо разрешать трафик на dhcp релеии(указывая их) либо просто разрешать любой дшсп трафик.
У редбека se600 например, что то аналогичное вашим виртуальным интерфейсам.
-
Xeb хотел попросить добавить если возможно
и насчёт этого вопроса: разные номера портов в запросе авторизации и аккаунтинга, проблему решил так
static void ipoe_session_start(struct ipoe_session *ses)
{
int r;
char *passwd;
struct ifreq ifr;
struct unit_cache *uc;
__sync_add_and_fetch(&stat_starting, 1);
if (!ses->ses.username) {
strncpy(ses->ses.ifname, ses->serv->ifname, AP_IFNAME_LEN);
ipoe_session_set_username(ses);
if (!ses->ses.username) {
ipoe_session_finished(&ses->ses);
return;
}
}
ses->ses.unit_idx = ses->serv->ifindex;
/*My insert */
if ((ses->ifindex == -1)&& (ses->serv->opt_shared )) {
pthread_mutex_lock(&uc_lock);
if (!list_empty(&uc_list)) {
uc = list_entry(uc_list.next, typeof(*uc), entry);
ses->ifindex = uc->ifindex;
list_del(&uc->entry);
--uc_size;
pthread_mutex_unlock(&uc_lock);
mempool_free(uc);
} else {
pthread_mutex_unlock(&uc_lock);
ses->ifindex = ipoe_nl_create(0, 0, ses->serv->opt_mode == MODE_L2 ? ses->serv->ifname : NULL, ses->hwaddr);
if (ses->ifindex == -1) {
log_ppp_error("ipoe: failed to create interface\n");
ap_session_terminate(&ses->ses, TERM_NAS_ERROR, 1);
return;
}
}
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_ifindex = ses->ifindex;
if (ioctl(sock_fd, SIOCGIFNAME, &ifr, sizeof(ifr))) {
log_ppp_error("ipoe: failed to get interface name\n");
ses->ifindex = -1;
ap_session_terminate(&ses->ses, TERM_NAS_ERROR, 1);
return;
}
strncpy(ses->ses.ifname, ifr.ifr_name, AP_IFNAME_LEN);
ses->ses.ifindex = ses->ifindex;
ses->ses.unit_idx = ses->ifindex;
ses->ctrl.dont_ifcfg = 0;
}
/*My insert */
triton_event_fire(EV_CTRL_STARTING, &ses->ses);
triton_event_fire(EV_CTRL_STARTED, &ses->ses);
ap_session_starting(&ses->ses);
if (!conf_noauth) {
r = pwdb_check(&ses->ses, ses->ses.username, PPP_PAP, conf_password ? conf_password : ses->ses.username);
if (r == PWDB_NO_IMPL) {
passwd = pwdb_get_passwd(&ses->ses, ses->ses.username);
if (!passwd)
r = PWDB_DENIED;
else {
r = PWDB_SUCCESS;
_free(passwd);
}
}
if (r == PWDB_DENIED) {
/*My insert */
if ((ses->ifindex != -1)&& (ses->serv->opt_shared )) {
if (uc_size < conf_unit_cache && ipoe_nl_modify(ses->ifindex, 0, 0, "", NULL)) {
uc = mempool_alloc(uc_pool);
uc->ifindex = ses->ifindex;
pthread_mutex_lock(&uc_lock);
list_add_tail(&uc->entry, &uc_list);
++uc_size;
pthread_mutex_unlock(&uc_lock);
} else
ipoe_nl_delete(ses->ifindex);
ses->ifindex = -1;
}
/*My insert */
if (conf_ppp_verbose)
log_ppp_warn("authentication failed\n");
if (conf_l4_redirect_on_reject && !ses->dhcpv4_request && ses->ifindex != -1) {
l4_redirect_list_add(ses->yiaddr, ses->ifindex);
ses->ifindex = -1;
}
ap_session_terminate(&ses->ses, TERM_AUTH_ERROR, 0);
return;
}
}
Но не хочется при каждом обновлении править код. Да и не знаю правильно ли сделал.
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
насчёт маршрутизатора-релея не понял, как он собирается L2 маршрутизировать
В том то и дело что не l2,тут вопросов пока не возникло и в этой схеме никаких маршрутизаторов - релеев нет :)
А l3 режим. Схема удобна тем что не надо гнать кучу vlan в ядро сети.
По такой схеме настраивал se600, cisco asr.
просто из документации сделал вывод что аксел тоже может.
Функциональное отличие L2 от L3, заключается в том что в случае L2 входящий пакет будет проверяться на совпадение mac адреса установленного при старте сессии, а исходящие пакеты будут отправляться прямиком на этот mac адрес, без дополнительных запросов ARP, что обеспечивает защиту от подмены IP/mac адресов. В случае L3 исходящий пакет будет маршрутизироваться согласно установленным правилам маршрутизации.
А реализовать L3 режим со стартом по DHCP не планируете?
-
Как попросите, так и работает.
Ну может не правильно прошу но аксел dhcp релаю отвечает на 68 порт
192.168.3.1 аксел
192.168.5.1 релай
18:51:26.093548 IP 192.168.5.1.67 > 192.168.3.1.67: BOOTP/DHCP, Request from d4:ca:6d:e3:43:e9, length 300 18:51:26.139893 IP 192.168.3.1.67 > 192.168.5.1.68: BOOTP/DHCP, Reply, length 268 18:51:26.145131 IP 192.168.5.1 > 192.168.3.1: ICMP 192.168.5.1 udp port 68 unreachable, length 304
Начал смотреть по коду, есть функция dhcpv4_send_udp
для эксперимента изменил
//addr.sin_port = htons(DHCP_CLIENT_PORT);
addr.sin_port = htons(DHCP_SERV_PORT);
Клиент аренду получил. В качестве дшсп сервера аксел ему назначил адрес роутера... что тоже не правильно... опять в код ... теперь получает адрес аксела в кчестве дшсп. Теперь не продляет лизу по юникасту.... Аксел вижу что шлёт ответ на продление, как я понял на ip+мак пользователя(надо проверить)
решил остановится и спросить. )) На форуме самая популярная схема влан на пользователя. По этой схеме вообще нет информации. Может она не работает или я не тем путём пошёл.
verbose=5 lua-file=/etc/accel-ppp.lua username=lua:username password=username1 lease-time=600 max-lease-time=3600 unit-cache=10 shared=1 ifcfg=0 mode=L3 start=dhcpv4 interface=eth3,mode=L3,range=192.168.5.0/24,src=192.168.3.1
по L2 завелось без проблем.
-
Работает ли аксел в режиме IPOE l3 DHCP по схеме:
пользователь-> коммутатор -> маршрутизатор-релей -> аксел
или
пользователь-> коммутатор -> маршрутизатор-релей -> аксел(релей) -> dhcp сервер
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
т.е 2000, 3000, 4000 - это на самом деле номера радиус-атрибутов, а не скорость в кб?
нет это скорости
ATTRIBUTE Filter-Id 11 string
Любой атрибут. Главное чтоб он был в словаре или добавлен в словарь.
какой атрибут использовать
attr=Filter-Id
Пример ответа радиуса
Type=AUTHENTICATION_ACCEPT Attributes: Acct-Interim-Interval=120 Service-Type=2 Framed-Protocol=1 Filter-Id=1000 Filter-Id=1,2000 Filter-Id=2,3000 Filter-Id=3,4000
можно сделать и отправлять
attr=PPPD-Downstream-Speed-Limit
тогда будет
Type=AUTHENTICATION_ACCEPT Attributes: Acct-Interim-Interval=120 Service-Type=2 Framed-Protocol=1 PPPD-Downstream-Speed-Limit=1000 PPPD-Downstream-Speed-Limit=1,2000 PPPD-Downstream-Speed-Limit=2,3000 PPPD-Downstream-Speed-Limit=3,4000
только PPPD-Downstream-Speed-Limit нет в словарях аксела и его нужно будет добавить.
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
Здравствуйте, честно прошерстил форум, ответа не нашел.
Используем связку Lanbilling+Accel-pppd. Сейчас используем встроенный в accel-pppd шейпер. На нем бы и остались пожалуй.
Планируем запустить ночное удвоение скорости. Ланбиллинг умеет передавать радиус-атрибуты для accel-pppd. Сейчас он передает параметры скорости, которая постоянна в любое время суток. Здесь - http://sourceforge.net/apps/trac/accel-ppp/wiki/ShaperAdvanced - расписано, как использовать разные скорости в разное время суток, но эти скорости жестко задаются в файле конфигурации. Есть ли возможность использовать радиус-атрибуты для задания скорости по временным промежуткам? Ну, например, как-то так:
attr=Filter-Id
time-range=1,1:00-3:00
time-range=2,3:00-5:00
time-range=3,5:00-7:00
Filter-Id=1,PPPD-Downstream-Speed-Limit
Filter-Id=2,PPPD-Downstream-Speed-Limit-1
Filter-Id=3,PPPD-Downstream-Speed-Limit-2
[shaper]
attr=Filter-Id
time-range=1,1:00-3:00
time-range=2,3:00-5:00
time-range=3,5:00-7:00
и передавать
в аксепте три атрибута
Filter-Id=2000
Filter-Id=1,2000
Filter-Id=2,3000
Filter-Id=3,4000
-
тестирую L3 режим ipoe
столкнулся с тем что клиенту в качестве siaddr выдаётся адрес основного шлюза(релея), хотя адресом дшсп сервера должен стать аксел.
В итоге лиза не продляется по юникасту, и начинает запрашивать продление по мультикаст.
в ipoe.c
static void __ipoe_session_start(struct ipoe_session *ses)
if (!ses->siaddr && ses->router != ses->yiaddr) ses->siaddr = ses->router; if (!ses->siaddr) find_gw_addr(ses); if (!ses->siaddr) ses->siaddr = ses->serv->opt_src; if (!ses->siaddr && ses->serv->dhcpv4_relay) ses->siaddr = ses->serv->dhcpv4_relay->giaddr;
Такой порядок справедлив для L2 но не для l3.
ввести параметр в конфиге siaddr аналогично src, или src подставлять в первую очередь я не думаю, что это будет не правильно.
Поправте если ошибаюсь.
-
Опубликовано · Изменено пользователем brodayga · Жалоба на ответ
Опять вопрос к Xeb.
Не планировали добавить в запросы радиуса IPOE(авторизации и аккаунтинга) remoteId и circutid, по аналогии с tr101.
Например
У cisco ASR это
(с вендором и атрибутом тут всё понятно)
cisco-avpair=circuit-id-tag=000407d00018
cisco-avpair=remote-id-tag=010931302e31312e342e33
у redback
vendor 2352
String 96 Agent-Remote-Id
String 97 Agent-Circuit-Id
Agent-Remote-Id=00060022B004515D
Agent-Circuit-Id=000400DE0019
и у первого и у второго присутствуют эти атрибуты и в авторизации и в аккаунтинге. И эти атрибуты просто копируются из dhcp опций.
Блокировка сайтов провайдерами
в Программное обеспечение, биллинг и *unix системы
Опубликовано · Жалоба на ответ
Спасибо, Проблемма была в "Warning Application - Link down on port 0"
Еще вопрос как я понимаю для extfilter в скрипте zapret нет необходимости резолвить ?