jsmax
Пользователи-
Публикации
17 -
Зарегистрирован
-
Посещение
Все публикации пользователя jsmax
-
BDCOM - ONU попадает в чужой VLAN
тему ответил в jsmax пользователя jsmax в Оборудование BDCOM
http://data.nag.ru/BDCOM/Firmware/P3608/ подходят для обеих моделей P3608-2TE и P3616-2TE ? -
BDCOM - ONU попадает в чужой VLAN
тему ответил в jsmax пользователя jsmax в Оборудование BDCOM
@Muhachev Konstantin Спасибо, попробуем ваш вариант. А где можно брать актуальные версии софта ? -
BDCOM - ONU попадает в чужой VLAN
тему добавил jsmax в Оборудование BDCOM
Здравствуйте, Есть у клиента железки: gepon2#show version BDCOM(tm) P3608-2TE Software, Version 10.1.0E Build 37276 gepon3#show version BDCOM(tm) P3616-2TE Software, Version 10.1.0E Build 37276 Пара template-ов: epon onu-config-template CLIENT203 cmd-sequence 1 epon onu port 1 ctc vlan mode tag 203 cmd-sequence 2 epon onu port 1 ctc rate-limit 100000 ingress cmd-sequence 3 epon onu port 1 ctc rate-limit 100000 egress ! epon onu-config-template CLIENT204 cmd-sequence 1 epon onu port 1 ctc vlan mode tag 204 cmd-sequence 2 epon onu port 1 ctc rate-limit 100000 ingress cmd-sequence 3 epon onu port 1 ctc rate-limit 100000 egress Пример настройки интерфейса: interface EPON0/2 description Clients #2 epon onu-authen-method mac epon pre-config-template CLIENT204 binded-onu-llid 6-59 epon pre-config-template CLIENT203 binded-onu-llid 1-5 epon bind-onu mac xxxx.xxxx.xxxx 1 epon bind-onu mac xxxx.xxxx.xxxx 2 epon bind-onu mac xxxx.xxxx.xxxx 3 epon bind-onu mac xxxx.xxxx.xxxx 4 epon bind-onu mac xxxx.xxxx.xxxx 5 epon bind-onu mac xxxx.xxxx.xxxx 6 epon bind-onu mac xxxx.xxxx.xxxx 7 epon bind-onu mac xxxx.xxxx.xxxx 8 epon bind-onu mac xxxx.xxxx.xxxx 9 switchport trunk vlan-allowed 203-204 switchport mode trunk no switchport protected После перезагрузки OLT, например на интефейсе EPON0/2, первые 5 ONU должны быть в VLAN 203, остальные в VLAN 204. Но получается так что ONU попадают в виланы 203 и 204 хаотично, т.е. к примеру, ONU 1, 2, 7, 8 попадают в вилан 203, остальные в вилан 204. Данная проблема наблюдается только при загрузке OLT. Лечится удалением всех ONU с интерфейса и добавлением обратно. Есть идеи ? Спасибо. -
Прошивка CWDM, образы SFP
тему ответил в qos пользователя jsmax в Активное оборудование Ethernet, IP, MPLS, SDN/NFV...
Здравствуйте, Маршрутизатор Juniper SRX поддерживает только SFP+ модули "SFPP-10GE-LR" (SR, ER, LRM). Кто знает чем можно прошить OEM SFP+ модуль на 10Км чтоб девайс выше его увидел ? Может у кого есть оригинальная прошивка модулей Juniper ? -
Люды добрые, очень надо c5400-jk9su2_ivs-mz.124-15.T17.bin Буду премного благодарен. Спасибо заранее.
-
Juniper ex4200 рекомендуемый софт
тему ответил в MasterJey пользователя jsmax в Активное оборудование Ethernet, IP, MPLS, SDN/NFV...
https://yadi.sk/d/wDlanOuNgBWh7 Спасибо, но по ссылке: jinstall-ex-4200-12.3R9.4-domestic-signed.tgz Можно, но только если есть учетная запись у них. Я писал выше что учетка будет в течении пары дней готова. -
Juniper ex4200 рекомендуемый софт
тему ответил в MasterJey пользователя jsmax в Активное оборудование Ethernet, IP, MPLS, SDN/NFV...
Поделитесь пожалуйста с jinstall-ex-4200-12.3R9-S1-domestic-signed.tgz Доступ получим только через пару дней, не хочется терять время. -
ISG в Linux
тему ответил в Умник пользователя jsmax в Программное обеспечение, биллинг и *unix системы
И так, как и обещал, покажу куски кода более детально. Я могу конечно выложить полностью исходники, но поддержка нескольких айпи на клиента это не единственная вещь которую я реализовал, поэтому приведу код который занимается именно этим. Код написанный мною снабжен комментариями. После того как демон получил ответ "Access-Accept" от радиуса с атрибутом "Framed-IPX-Network", то он просто вместе с остальными параметрами шлет и этот параметр модулю: if ($rp->code eq "Access-Accept") { my $oev; .................... my $alive_interval = $rp->attr('Acct-Interim-Interval'); my $max_duration = $rp->attr('Session-Timeout'); my $idle_timeout = $rp->attr('Idle-Timeout'); my $pipaddr = $rp->attr('Framed-IPX-Network'); // Этим параметром демон указывает что это дочерния сессия $oev->{'type'} = ISG::EVENT_SESS_APPROVE; $oev->{'port_number'} = $exp_ev->{'port_number'}; ......................... if (defined($pipaddr)) { $oev->{'pipaddr'} = ISG::ip2long($pipaddr); // Тоже самое } if (isg_send_event($sk, $oev) < 0) { do_log("err", "Error sending reply for SESS_CREATE: $!"); } ......................... Получив эти данные, модуль вызывает функцию isg_update_session: static int isg_update_session(struct isg_net *isg_net, struct isg_in_event *ev) { struct isg_session *is; ............................... if (is) { is->info.in_rate = ev->si.sinfo.in_rate; is->info.in_burst = ev->si.sinfo.in_burst; is->info.pipaddr = ev->si.sinfo.pipaddr; // Указываем что у сессии есть родительская ............................... А теперь листинг где происходят главные действия: #elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) // У меня Centos 5.5 2.6.18-194.32.1.el5 isg_tg(struct sk_buff **pskb, const struct net_device *in, const struct net_device *out, unsigned int hooknum, const struct xt_target *target, const void *targinfo, void *userinfo) .................................. struct isg_session *is, *isrv, *classic_is = NULL; struct isg_session *pis = NULL; // Если пакет будет от дочерней сессии то эта переменная будет хранить родительскую struct isg_session *cis = NULL; // А в этой будем хранить дочернюю .................................. is = isg_lookup_session(isg_net, laddr); // Здесь ищем сессию от которой пришел пакет if (is == NULL) { // Если сессии нету то далее идет ее создание и отброс пакета .................................. /* * Смотрим если у этой сессии есть родительская */ if (is->info.pipaddr) { pis = isg_lookup_session(isg_net, is->info.pipaddr); // Если она есть то находим ее /* * Если находим то инициализируем переменные */ if (pis) { cis = is; // Сохраняем дочернюю is = pis; // Далее будем работать уже с родительской } else { /* * Если у родителя нету открытой сессии то создаем ее */ u_int8_t *src_mac = NULL; if (skb_mac_header(skb) >= skb->head && skb_mac_header(skb) + ETH_HLEN <= skb->data) { if (iinfo->flags & INIT_BY_SRC) { src_mac = eth_hdr(skb)->h_source; } } isg_create_session(isg_net, is->info.pipaddr, src_mac); goto DROP; } } .......................... found: .......................... /* * В is мы храним родительскую сессию, а в cis дочернюю. */ if (iinfo->flags & INIT_BY_SRC) { isg_update_tokens(is, now, ISG_DIR_IN); if (cis) { cis->in_last_seen = now; // Обновляем счетчик } if (pkt_len_bits <= is->in_tokens || !is->info.in_rate) { is->in_tokens -= pkt_len_bits; /* Если это дочерняя то обновляем ее счетчики */ if (cis) { cis->stat.in_bytes += pkt_len; cis->stat.in_packets++; } else { is->stat.in_bytes += pkt_len; is->stat.in_packets++; } ...................... Вот и все. Если есть вопросы, задавайте. -
ISG в Linux
тему ответил в Умник пользователя jsmax в Программное обеспечение, биллинг и *unix системы
ОК, освобожусь немножко и покажу куски кода чтобы идея была понятна. Полоса одна на всех. -
ISG в Linux
тему ответил в Умник пользователя jsmax в Программное обеспечение, биллинг и *unix системы
Поделюсь своим решением поддержки нескольких IP адресов. Работает уже пару месяцев, все ок. У каждой сессии может быть родительская: struct isg_session_info { u_int32_t ipaddr; /* User's IP-address */ u_int32_t pipaddr; /* Parent's IP Address (Only for additional sessions) */ ....... } Если у клиента всего лишь один IP адрес, то все происходит как обычно. Если у него несколько IP адресов (может быть даже из разных сетей) то выделяется один главный айпи для которого будет создана родительская сессия, для остальных айпи будут созданы дочерние сессии у которых pipaddr будет равен IP родительской. Теперь покажу как происходит авторизация дочерней сессии. У меня есть модуль в радиусе который тянет из биллинга клиентов, и если у клиента есть главный IP, а сессия открывается для дополнительного, то он отвечает так: [root@ex2 /]# radtest 192.168.10.11 192.168.10.11 localhost 0 test Sending Access-Request of id 207 to 127.0.0.1 port 1812 User-Name = "192.168.10.11" User-Password = "192.168.10.11" NAS-IP-Address = 127.0.0.1 NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=207, length=51 Idle-Timeout = 1800 Acct-Interim-Interval = 0 Session-Timeout = 39604 Class = 0x31302f3130 Framed-IPX-Network = 192.168.10.10 Где Framed-IPX-Network это IP адрес родительской сессии (атрибут выбрал от балды). Счетчики обновляются для каждой сессии отдельно, но когда дело доходит до полосы пропускания, то она режется на основе счетчиков родительской сессии. Список клиентов выдлядит так: [root@ex2 /]# /usr/local/ISG/bin/ISG.pl User IP-address Parent IP Port number Uniq. Identifier Duration Bytes-in Bytes-out Rate-in Rate-out Status ......... 192.168.35.104 0.0.0.0 Virtual83 69C905438CD864C5 02:06:31 357.01 MB 6.07 MB 4 Mbit/s 2 Mbit/s On 192.168.22.149 0.0.0.0 Virtual392 72E352E634A71956 02:10:52 145.23 MB 10.85 MB 2 Mbit/s 1 Mbit/s On 192.168.42.80 0.0.0.0 Virtual654 1B207950199C66A7 02:09:18 10.91 MB 16.39 MB 4 Mbit/s 2 Mbit/s On 192.168.25.120 192.168.25.90 Virtual401 55FADF71734B0E79 02:10:33 8.65 MB 15.09 MB 10 Kbit/s 10 Kbit/s On 192.168.20.2 192.168.20.50 Virtual201 0E223E9BE5F27FB8 02:13:01 189.97 MB 7.86 MB 10 Kbit/s 10 Kbit/s On .......... Главный минус в моем подходе это куча дочерних сессий если клиенту выделен /28. За то видна статистика по каждому айпи адресу. Если что могу показать более детально код где происходит вся магия. PS. У меня нет NATа. Все IP адреса придуманы. Также нету классов направления, при разработке я их вообще не брал во внимание, так что с ними работать думаю не будет. -
ISG в Linux
тему ответил в Умник пользователя jsmax в Программное обеспечение, биллинг и *unix системы
А есть идеи как реялизовать L4 Redirect ? Ведь вся работа lISG происходит в таблице filter где пакеты только фильтруются, а подмена IP адресов и портов происходит в таблице nat ... -
ISG в Linux
тему ответил в Умник пользователя jsmax в Программное обеспечение, биллинг и *unix системы
Я бы так не сказал. Сама идея очень хороша, поэтому найдутся люди которые продолжат разработку. Я допустим уже реализовал поддержку 2-ух и более айпи адресов. У нас много клиентов с 2-мя айпи адресами или с сетями /29, поэтому пришлось дописывать их поддержку. Скоро будем тестить. Личная просьба автору: комментируйте пожалуйста хотя-бы немножко код, пару дней потратил только для его разбора. -
ISG в Linux
тему ответил в Умник пользователя jsmax в Программное обеспечение, биллинг и *unix системы
Установил на CentOS 5.5 .. Работает прекрасно. # uname -sr Linux 2.6.18-194.17.4.el5 # iptables -V iptables v1.3.5 Подправил немножко ISG.pl чтоб показывал "duration" и "Octets" в более дружелюбной форме: # ./ISG.pl User IP-address NAT IP-address Port number Uniq. Identifier Duration Octets-in Octets-out Rate-in Rate-out Service name Flags XXX.XXX.20.50 0.0.0.0 Virtual1 2296884591C681F5 00:00:48 461.34 KB 34.00 MB 5000000 10000000 Undefined A -
AS5400 + PGW 2200 + SS7
тему ответил в jsmax пользователя jsmax в Телефония: классическая, IP-телефония (VoIP), NGN сети
Прочитал про вышеуказанные платформы на оффсайтах. Весьма сумбурно и поверхостно все описано. Цены тоже не указаны. Интересует именно тема про AS5400 + PGW2200 ... Какие минусы ? Кто из них рулит все ? Я просто видел решение где вместо PGW 2200 используется сторонний опенсорсный софт, темболее что нам AS5400 легче достать .. -
Здравствуйте. Есть потоки E1 на SS7 от телекома и пул номеров. В плане давать клиентам услуги IP телефонии. Так как это SS7, то Cisco предлагает решение на AS5400 + PGW 2200 .. Прочитал много доков, но для меня так и остались многие вопросы без ответов. В частности: - На кого возлагается вся логика ? Я так полагаю маршрутизацией звонков, радиусом и регистрацией клиентских телефонов будет заниматься софтсвитч (PGW 2200) ? - Получается циска выступает лишь как конвертер из Е1 в IP ? - Какие еще решения можете предложить ?
-
ARP Flood в "чужие" сети ...
тему ответил в jsmax пользователя jsmax в Программное обеспечение, биллинг и *unix системы
Ну это понятно ... Интересна сама проблема .. От чего может быть такое ... Гугл вообще про такое ничего не знает .. -
Здравствуйте. В последнее время столкнулись со следуещей проблемой: Некоторые машины в сети шлют арп запросы не только на айпи адреса из своей сети, но и на чужие айпи. В примере вывод с машинки подключенной к зазеркалированному порту: # tshark -i em1 -n 'ether dst host ff:ff:ff:ff:ff:ff' 0.204643 00:1f:d0:30:fa:69 -> ff:ff:ff:ff:ff:ff ARP Who has 210.197.130.162? Tell 188.243.20.11 1.925713 00:1f:d0:30:fa:69 -> ff:ff:ff:ff:ff:ff ARP Who has 114.198.190.79? Tell 188.243.20.11 2.484155 00:1f:d0:30:fa:69 -> ff:ff:ff:ff:ff:ff ARP Who has 183.179.189.58? Tell 188.243.20.11 3.795447 00:1f:d0:30:fa:69 -> ff:ff:ff:ff:ff:ff ARP Who has 86.122.186.146? Tell 188.243.20.11 4.483576 00:1f:d0:30:fa:69 -> ff:ff:ff:ff:ff:ff ARP Who has 203.218.32.90? Tell 188.243.20.11 6.807573 00:1f:d0:30:fa:69 -> ff:ff:ff:ff:ff:ff ARP Who has 216.239.89.148? Tell 188.243.20.11 Проверяли клиента, получает айпи по DHCP, маска правильная, шлюз тоже, свежий Windows 7 ... Таких клиентов мы уже нашли штук 5 ... Никто с таким не сталкивался ?