Cramac Posted October 5, 2015 Posted October 5, 2015 у меня мало абонентов, поэтому не скажу, работает без проблем, лиза на сутки. Вставить ник Quote
kayot Posted October 5, 2015 Posted October 5, 2015 коллеги, а этот самый сервер в бою кто нибудь гоняет? если да, какая нагрузка в количестве абонентов, и сколько времени стоит лиза? ~2.5k IPOE сессий, лиза 5 минут. Сервер работает железобетонно. Вставить ник Quote
pppoetest Posted October 5, 2015 Posted October 5, 2015 >3к, пару лет полёт нормальный. Ни единого разрывасегфолта. Вставить ник Quote
Negator Posted October 5, 2015 Posted October 5, 2015 А зачем лиза 5 минут? Давайте ***ем базу? Вставить ник Quote
kayot Posted October 6, 2015 Posted October 6, 2015 А зачем лиза 5 минут? Давайте ***ем базу? А пофиг на базу, она развернута в виде slave на этом же NASе, с engine=memory. Т.е. сугубо местная и сугубо в памяти. Все для удобства клиента. Вставить ник Quote
OKyHb Posted October 6, 2015 Posted October 6, 2015 Поделюсь нашими графиками. Начали постепенно переводить клиентов на этот DHCP. lease-time - 1 час, mysql на другом сервере (вместе с биллингом). К-во клиентов точно не скажу, но 15k по ip unnumbered вечером есть. На графике - абсолютное к-во запросов за 5 минут. То есть, 15к запросов за 5 минут - это ~50 запросов в секунду. Пока проблем не замечено, всё работает. Вставить ник Quote
pppoetest Posted October 6, 2015 Posted October 6, 2015 О, спасибо за идею, надо реализовать такой график. ))) Вставить ник Quote
wed Posted October 6, 2015 Posted October 6, 2015 Может подскажете - как у Вас такой график реализован? Если прям пример кода будет - вообще здорово... Вставить ник Quote
OKyHb Posted October 6, 2015 Posted October 6, 2015 График - по счётчикам iptables. Сейчас так: iptables: -N DHCP_CLIENTS -A DHCP_CLIENTS -m string --hex-string "|350103|" --algo bm --from 268 --to 301 -m comment --comment "DHCP Request" -j ACCEPT -A DHCP_CLIENTS -m string --hex-string "|350108|" --algo bm --from 268 --to 301 -m comment --comment "DHCP Inform" -j ACCEPT -A DHCP_CLIENTS -m string --hex-string "|350101|" --algo bm --from 268 --to 301 -m comment --comment "DHCP Discover" -j ACCEPT -A DHCP_CLIENTS -m string --hex-string "|350107|" --algo bm --from 268 --to 301 -m comment --comment "DHCP Release" -j ACCEPT -A DHCP_CLIENTS -m string --hex-string "|350104|" --algo bm --from 268 --to 301 -m comment --comment "DHCP Decline" -j ACCEPT -A DHCP_CLIENTS -j LANET -N DHCP_SERVER -A DHCP_SERVER -m string --hex-string "|63825363350105|" --algo bm --from 264 --to 271 -m comment --comment "DHCP Ack" -j ACCEPT -A DHCP_SERVER -m string --hex-string "|63825363350102|" --algo bm --from 264 --to 271 -m comment --comment "DHCP Offer" -j ACCEPT -A DHCP_SERVER -m string --hex-string "|63825363350106|" --algo bm --from 264 --to 271 -m comment --comment "DHCP Nack" -j ACCEPT -A DHCP_SERVER -j ACCEPT -A INPUT -p udp --dport 67 -j DHCP_CLIENTS -m comment --comment "DHCP clients" -A OUTPUT -p udp --sport 67 -j DHCP_SERVER -m comment --comment "DHCP server" cron: */5 * * * * root /sbin/iptables -nvxL DHCP_CLIENTS > /var/lib/zabbix/tmp/iptables.dhcp && /sbin/iptables -nvxL DHCP_SERVER >> /var/lib/zabbix/tmp/iptables.dhcp zabbix-agent: UserParameter=dhcp.counter[*],awk '/$1/ {print $$1}' /var/lib/zabbix/tmp/iptables.dhcp Хотя подозреваю, что есть клиенты, которые option 53 (message type) ставят с другим смещением. К примеру, у меня таких 197 неопознаных пакетов (за пару недель). Ну и DHCP_CLIENTS стоит перед стандартным "-m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT". Вообще, буду признателен, если кто подскажет, как улучшить мониторинг статистики :) Вставить ник Quote
pppoetest Posted October 6, 2015 Posted October 6, 2015 Омг, а я чуть перепилил сабж(всмысле перловый дхцп), буквально час назад, вот что вышло: Вставить ник Quote
Cramac Posted January 16, 2016 Posted January 16, 2016 Всем привет. Обращусь к автору. Помоги, появился новый свитч, в нем 82 опция выглядит так OPTION: 82 ( 14) Relay Agent Information Circuit-ID 00:e1:00:16 Remote-ID 70:72:cf:74:9f:d4 до этого все свитчи отвечали так: OPTION: 82 ( 18) Relay Agent Information Circuit-ID 00:04:00:e1:01:06 Remote-ID 00:06:00:12:cf:48:d6:87 где поправить чтоб обрабатывать и тот и тот вариант? П.С. я так понимаю надо поправить sub GetRelayAgentOptions($$$$$) в этом месте: case 1 { # Circuit ID # first bytes must be: 00 04 $_[1] = unpack('n', substr($RelayAgent[($i+1)], 2, 2)); # may be 's' $_[2] = unpack('C', substr($RelayAgent[($i+1)], 4, 1)); $_[3] = unpack('C', substr($RelayAgent[($i+1)], 5, 1)); # как и ниже, надо вставить условие, если длинное, как есть, если короткая, то разобрать на влан и порт } case 2 { # Remote ID # first bytes must be: 00 06 or 01 06 $_[4] = FormatMAC(unpack("H*", substr($RelayAgent[($i+1)], 2, 6))); # тут я как понял вырезается первые два, надо добавить условие, если длинное - удаляем, если короткое - берем как есть } UPD: В общем вот что получилось: case 1 { # Circuit ID if (length($RelayAgent[($i+1)]) < 6) { logger("Circuit ID 4 = ".length($RelayAgent[($i+1)])); $_[1] = unpack('n', substr($RelayAgent[($i+1)], 0, 2)); # may be 's' $_[2] = unpack('C', substr($RelayAgent[($i+1)], 2, 1)); $_[3] = unpack('C', substr($RelayAgent[($i+1)], 3, 1)); } else { logger("Circuit ID 6 = ".length($RelayAgent[($i+1)])); # first bytes must be: 00 04 # for Circuit ID type = 00:04:00:e1:01:06 $_[1] = unpack('n', substr($RelayAgent[($i+1)], 2, 2)); # may be 's' $_[2] = unpack('C', substr($RelayAgent[($i+1)], 4, 1)); $_[3] = unpack('C', substr($RelayAgent[($i+1)], 5, 1)); } } case 2 { # Remote ID if (length($RelayAgent[($i+1)]) < 8) { logger("Remote ID 6= ".length($RelayAgent[($i+1)])); $_[4] = FormatMAC(unpack("H*", $RelayAgent[($i+1)])); } else { logger("Remote ID 8= ".length($RelayAgent[($i+1)])); # first bytes must be: 00 06 or 01 06 # for Remote ID type = 00:06:00:12:cf:48:d6:87 $_[4] = FormatMAC(unpack("H*", substr($RelayAgent[($i+1)], 2, 6))); } } Вставить ник Quote
Ivan_83 Posted January 16, 2016 Author Posted January 16, 2016 Обращусь к автору. Помоги, появился новый свитч, в нем 82 опция выглядит так А ты уверен что свитч присылает полный мак? tcpdump/dhcpdump что показывает? Вставить ник Quote
Cramac Posted January 16, 2016 Posted January 16, 2016 да, я выложил в посте выше, как старые свитчи шлют и как шлет новый. новый Circuit-ID пишет влан и порт в виде 00:e1:00:16 и в Remote-ID сразу мак 70:72:cf:74:9f:d4 Вставить ник Quote
Yarlan Zey Posted January 17, 2016 Posted January 17, 2016 3528m? забирайте с помощью substr длину мака с конца по влану и порту тоже с конца. не плодите лишние условия) Вставить ник Quote
Yarlan Zey Posted January 18, 2016 Posted January 18, 2016 Винда XP Prof SP3 не хочет просить адреса DNS (отдавал дпже принудительно, см. ниже) ... Хотя в связке с Dlink DIR-615 все впорядке. мистика. Options : DHO_DHCP_MESSAGE_TYPE(53) = DHCPACK DHO_DHCP_SERVER_IDENTIFIER(54) = 91.1.1.2 DHO_ROUTER_DISCOVERY(31) = 0 DHO_VENDOR_ENCAPSULATED_OPTIONS(43) = \x01\x04\x00\x00\x00\x02\x02\x04\x00\x00\x00\x01\xFF DHO_NETBIOS_NODE_TYPE(46) = 8 (249) = \x16[\xCA\x08\xAC\x10\x02\x01 DHO_DHCP_LEASE_TIME(51) = 300 DHO_DHCP_RENEWAL_TIME(58) = 400 DHO_DHCP_REBINDING_TIME(59) = 500 DHO_SUBNET_MASK(1) = 255.255.255.0 DHO_ROUTERS(3) = 172.16.2.1 DHO_DOMAIN_NAME_SERVERS(6) = 1.2.3.4 DHO_DOMAIN_NAME(15) = kuku2.net DHO_ROUTER_DISCOVERY(31) = 0 DHO_VENDOR_ENCAPSULATED_OPTIONS(43) = \x01\x04\x00\x00\x00\x02\x02\x04\x00\x00\x00\x01\xFF DHO_NETBIOS_NODE_TYPE(46) = 8 (249) = \x16[\xCA\x08\xAC\x10\x02\x01 DHO_DHCP_AGENT_OPTIONS(82) = \x01\x06\x00\x04\x00\xCA\x00\x09\x02\x08\x00\x06\xF0}h5\xD1 padding [0] = как-нибудь победилось? принудительно отправлять не помогает( Вставить ник Quote
Ivan_83 Posted January 18, 2016 Author Posted January 18, 2016 да, я выложил в посте выше, как старые свитчи шлют и как шлет новый. новый Circuit-ID пишет влан и порт в виде Нормальное решение. Хотя то что они шлют без типа и длины это ИМХО не правильно, написать им чтобы правили. как-нибудь победилось? принудительно отправлять не помогает( А там точно руками не прописаны днс? Вставить ник Quote
Yarlan Zey Posted January 18, 2016 Posted January 18, 2016 точно. есть тестовой ноутбук и несколько абонентов. discover-offer-request-pack на этом общение с dhcp заканчивается. принудительное добавление dns не помогает. nextif тоже ничего не откидывает Вставить ник Quote
Yarlan Zey Posted January 18, 2016 Posted January 18, 2016 https://support.microsoft.com/ru-ru/kb/953761 решил проблему перестановкой опций) Вставить ник Quote
Ivan_83 Posted January 18, 2016 Author Posted January 18, 2016 В общем вот что получилось: Проверяй, я тоже поправил. https://support.micr...ru-ru/kb/953761 решил проблему перестановкой опций) Вот нет чтобы накатить апдейты. Я когда писал/отлаживал тестил в том числе и на своём нетбуке, там ХР была, но с патчами. Тоже попробуй исправленную. Ещё по мелочам форматирование поправил. Вставить ник Quote
Yarlan Zey Posted January 19, 2016 Posted January 19, 2016 накатить апдейты всем абонентам? не лучший путь... Вставить ник Quote
Dimic Posted March 17, 2016 Posted March 17, 2016 (edited) Немного мимо кассы, но подскажите как сделать каунтеры dhcp запросов для ipfw по типам? Может есть готовый пример? Я так понял, что без ng_ipfw b ng_bpf точно не обойтись? Конвертнул вырежения в bpf код: DHCPDISCOVER udp port 67 and udp[247:4] = 0x63350101 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418049 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] DHCPOFFER udp port 67 and udp[247:4] = 0x63350102 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418050 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] DHCPREQUEST udp port 67 and udp[247:4] = 0x63350103 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418051 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] DHCPDECLINE udp port 67 and udp[247:4] = 0x63350104 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418052 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] DHCPACK udp port 67 and udp[247:4] = 0x63350105 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418053 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] DHCPNAK udp port 67 and udp[247:4] = 0x63350106 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418054 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] DHCPRELEASE udp port 67 and udp[247:4] = 0x63350107 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418055 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] DHCPINFORM udp port 67 and udp[247:4] = 0x63350108 bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418056 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] Осталось связать с ipfw. Edited March 17, 2016 by Dimic Вставить ник Quote
Ivan_83 Posted March 17, 2016 Author Posted March 17, 2016 Видимо да, придётся матчить по оффсетам. Вставить ник Quote
Dimic Posted March 17, 2016 Posted March 17, 2016 А как-нибудь можно модернизировать вот это, чтобы не создавать потом 8 правил в файрволе? Я не силен в netgraph, к сожалению. ngctl mkpeer ipfw: bpf 1 main ngctl mkpeer ipfw: bpf 2 main ngctl mkpeer ipfw: bpf 3 main ngctl mkpeer ipfw: bpf 4 main ngctl mkpeer ipfw: bpf 5 main ngctl mkpeer ipfw: bpf 6 main ngctl mkpeer ipfw: bpf 7 main ngctl mkpeer ipfw: bpf 8 main ngctl name ipfw:1 dhcp_discover ngctl name ipfw:2 dhcp_offer ngctl name ipfw:3 dhcp_request ngctl name ipfw:4 dhcp_decline ngctl name ipfw:5 dhcp_ack ngctl name ipfw:6 dhcp_nak ngctl name ipfw:7 dhcp_release ngctl name ipfw:8 dhcp_inform #DHCPDISCOVER #udp port 67 and udp[247:4] = 0x63350101 ngctl msg dhcp_discover: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418049 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } #DHCPOFFER #udp port 67 and udp[247:4] = 0x63350102 ngctl msg dhcp_offer: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418050 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } #DHCPREQUEST #udp port 67 and udp[247:4] = 0x63350103 ngctl msg dhcp_request: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418051 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } #DHCPDECLINE #udp port 67 and udp[247:4] = 0x63350104 ngctl msg dhcp_decline: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418052 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } #DHCPACK #udp port 67 and udp[247:4] = 0x63350105 ngctl msg dhcp_ack: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418053 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } #DHCPNAK #udp port 67 and udp[247:4] = 0x63350106 ngctl msg dhcp_nak: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418054 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } #DHCPRELEASE #udp port 67 and udp[247:4] = 0x63350107 ngctl msg dhcp_release: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418055 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } #DHCPINFORM #udp port 67 and udp[247:4] = 0x63350108 ngctl msg dhcp_inform: setprogram { thisHook=\"main\" ifMatch=\"main\" ifNotMatch=\"main\" bpf_prog_len=19 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=15 jf=0 k=96 } { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=12 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=10 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=8 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=72 jt=0 jf=0 k=0 } { code=21 jt=2 jf=0 k=67 } { code=72 jt=0 jf=0 k=2 } { code=21 jt=0 jf=3 k=67 } { code=64 jt=0 jf=0 k=247 } { code=21 jt=0 jf=1 k=1664418056 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] } Может при помощи one2many навешать хуков? Сейчас счетчики работают конечно, но реализация.. DISCOVER: 1 OFFER: 1 REQUEST: 4 DECLINE: ACK: 4 NAK: RELEASE: INFORM: Вставить ник Quote
Ivan_83 Posted March 17, 2016 Author Posted March 17, 2016 Издеваешься? http://www.netlab.linkpc.net/wiki/ru:software:freebsd:igmpproxy_on_netgraph вот тут как из tcpdump делать вот такой вот асм, на tcpdump тренируешься и потом получаешь программу для бпф на асме. Вставить ник 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.