Jump to content
Калькуляторы

isc dhcpd и клиенты "перетыкальщики", кто как решает проблему

Весь код и сопроводительное письмо, которое я высылал: http://goo.gl/Ur0Pq

Тещщено на разных линуксах и на фре.

 

Приятного пользования.

Отправил небольшой донейт. Патч (а я в итоге сделал именно дифф, чтобы можно было собрать rpm для центоса, с наложенными рхелом патчами) работает отлично.

Геморрой с плеч, человеческое спасибо. :)

Share this post


Link to post
Share on other sites

(= dd =),

А можно другую ссылку, а то эта не работает.

А потестировать хочется...

 

Раз уж уважаемый (= dd =) выложил свое творение в паблик, может еще кто-то продублирует патч? Или скинет мне на мыло retimer#ubuntism.ru

Share this post


Link to post
Share on other sites

Он умеет отвечать на 0.0.0.0, формат конфига как ISC DHCP.

jоткуда берется это адрес?

часть запросов нормально прилетает, а часть о 0.0.0.0

Share this post


Link to post
Share on other sites

Когда у клиента нет адреса, он шлёт от 0.0.0.0, ответ ему уходит также на 0.0.0.0 но его мак адрес. Другой вариант ответ уходит на броадкаст.

Share this post


Link to post
Share on other sites

у меня используется cisco ip helper, опидее запросы должны идти от ее имени, что в основном и происходит, но некоторые запросы идут от 0.0.0.0

Share this post


Link to post
Share on other sites

у меня используется cisco ip helper, опидее запросы должны идти от ее имени, что в основном и происходит, но некоторые запросы идут от 0.0.0.0

 

Наверняка такие запросы идут в том же vlan в котором находится и dhcp сервер.

Они в итоге проходят напряимую.

Share this post


Link to post
Share on other sites

нет, сервер находится в отдельной подсети, все запросы идут через cisco.

Единственное, что может какой-то свич на доступе релеит данный запрос

Share this post


Link to post
Share on other sites

нет, сервер находится в отдельной подсети, все запросы идут через cisco.

Единственное, что может какой-то свич на доступе релеит данный запрос

А модель свича, с которого идет запрос?

Share this post


Link to post
Share on other sites

нет, сервер находится в отдельной подсети, все запросы идут через cisco.

Единственное, что может какой-то свич на доступе релеит данный запрос

А модель свича, с которого идет запрос?

на доступе es3526xa2, на агрегации es4612, dhcp relay на свичах не включен

Share this post


Link to post
Share on other sites

нет, сервер находится в отдельной подсети, все запросы идут через cisco.

Единственное, что может какой-то свич на доступе релеит данный запрос

А модель свича, с которого идет запрос?

на доступе es3526xa2, на агрегации es4612, dhcp relay на свичах не включен

вероятно, надо на свичах прописывать что-то типа такого:

ip dhcp relay share-vlan serverVladID sub-vlan clientVlanID

Но у "ёжиков" синтаксис может отличаться

Share this post


Link to post
Share on other sites

Коллеги, кто успел скачать патч от dd, перезалейте пожалуйста.

Оригинальная ссылка устарела, а попробовать хочется.

Заранее спасибо.

Share this post


Link to post
Share on other sites

Смотрели тут проблемы перетыкальщиков..

 

в общем заметили странность такую:

 

допустим есть

комп1 в 1 порту коммутатора.

комп2 в 2 порту коммутатора.

 

class "ONE" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))) = "192.168.95.249:1"; }

class "TWO" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))) = "192.168.95.249:2"; }

 

pool { range *.*.*.28; allow members of "ONE"; }

pool { range *.*.*.29; allow members of "TWO"; }

 

 

суть проблемы.

1) втыкаемся обоими ноутами.. и получаем адреса..

2) выдергиваем оба ноута, втыкаем первый ноут в порт где был второй.

.. происходит магия, ноут шлет реквест, получает нак. (в этот момент обнуляется живая лиза абонента с этого порта, на 'пустую') (можно увидеть если рестартнуть дхцп).

 

3) втыкаем второй ноут в порт первого.. происходит примерно тоже самое с лизами..

 

 

и вот через минуту где-то..

оба компа начинают работать с чужими адресами.

 

кто-нить борол?

 

пытался дебажить.. и разные версии isc dhcp.. 4.2.5 и 4.3.0

Edited by zhenya`

Share this post


Link to post
Share on other sites

Кто-нибудь адаптировал патч для последних версий ISC BIND? Пришлите пожалуйста

Share this post


Link to post
Share on other sites

zhenya`, попробуйте с патчем.

Либо, вместо патча (в случае 1 IP на абонента) чистить лизы каждую минуту.

nanaiki, там самому дописывать надо, они немного по другому написаны

Share this post


Link to post
Share on other sites

Ошибся, я имел в виду для последних версий isc dhcp

если из FULL_dhcp-4.1.1-P1.zip и обычных исходников dhcp-4.1.1-P1.zip сделать diff и потом накатить его например на dhcp-4.2.5-P1 получаем ошибки:

patching file common/bpf.c

Hunk #1 succeeded at 580 (offset 3 lines).

patching file server/dhcp.c

Hunk #1 FAILED at 1.

Hunk #2 succeeded at 80 (offset 4 lines).

Hunk #3 succeeded at 96 (offset 4 lines).

Hunk #4 succeeded at 239 (offset 11 lines).

Hunk #5 succeeded at 545 (offset 37 lines).

Hunk #6 succeeded at 683 (offset 37 lines).

Hunk #7 succeeded at 812 (offset 37 lines).

Hunk #8 succeeded at 1193 (offset 63 lines).

Hunk #9 succeeded at 1381 (offset 79 lines).

Hunk #10 succeeded at 2789 (offset 91 lines).

Hunk #11 succeeded at 2858 with fuzz 2 (offset 114 lines).

Hunk #12 succeeded at 2859 (offset 102 lines).

Hunk #13 succeeded at 2874 (offset 102 lines).

Hunk #14 succeeded at 2900 (offset 102 lines).

Hunk #15 succeeded at 2917 (offset 102 lines).

Hunk #16 succeeded at 3156 (offset 129 lines).

Hunk #17 succeeded at 3916 (offset 199 lines).

Hunk #18 FAILED at 3765.

Hunk #19 succeeded at 4183 (offset 225 lines).

Hunk #20 succeeded at 4281 with fuzz 2 (offset 246 lines).

Hunk #21 succeeded at 4419 (offset 331 lines).

Hunk #22 succeeded at 4461 (offset 331 lines).

Hunk #23 FAILED at 4139.

3 out of 23 hunks FAILED -- saving rejects to file server/dhcp.c.rej

patching file server/dhcpd.c

Hunk #2 succeeded at 177 with fuzz 2 (offset 3 lines).

Hunk #3 succeeded at 190 (offset 3 lines).

Hunk #4 succeeded at 218 (offset 3 lines).

Hunk #5 succeeded at 346 (offset 11 lines).

Hunk #6 FAILED at 1188.

1 out of 6 hunks FAILED -- saving rejects to file server/dhcpd.c.rej

patching file server/mdb.c

Hunk #5 succeeded at 435 (offset -3 lines).

Hunk #6 succeeded at 459 (offset -3 lines).

Hunk #7 succeeded at 602 with fuzz 2 (offset -3 lines).

Hunk #8 succeeded at 625 (offset 3 lines).

Hunk #9 succeeded at 634 (offset 3 lines).

Hunk #10 succeeded at 678 (offset 3 lines).

Hunk #11 succeeded at 729 (offset 3 lines).

Hunk #12 succeeded at 855 (offset 3 lines).

Hunk #13 succeeded at 873 (offset 3 lines).

Hunk #14 succeeded at 892 (offset 3 lines).

Hunk #15 succeeded at 921 (offset 3 lines).

Hunk #16 succeeded at 969 (offset 3 lines).

Hunk #17 succeeded at 983 (offset 3 lines).

Hunk #18 succeeded at 1028 (offset 3 lines).

Hunk #19 succeeded at 1075 (offset 3 lines).

Hunk #20 FAILED at 1407.

Hunk #21 succeeded at 1622 (offset 32 lines).

Hunk #22 succeeded at 1698 (offset 33 lines).

Hunk #23 succeeded at 1774 with fuzz 1 (offset 46 lines).

Hunk #24 succeeded at 1815 with fuzz 1 (offset 54 lines).

Hunk #25 succeeded at 1849 (offset 55 lines).

Hunk #26 succeeded at 1978 (offset 87 lines).

Hunk #27 succeeded at 1986 (offset 87 lines).

Hunk #28 succeeded at 1996 with fuzz 2 (offset 87 lines).

Hunk #29 succeeded at 2027 (offset 95 lines).

Hunk #30 succeeded at 2063 (offset 95 lines).

Hunk #31 succeeded at 2132 (offset 95 lines).

Hunk #32 succeeded at 2182 (offset 97 lines).

Hunk #33 succeeded at 2264 (offset 105 lines).

Hunk #34 succeeded at 2327 (offset 113 lines).

Hunk #35 succeeded at 2469 (offset 112 lines).

Hunk #36 succeeded at 2593 (offset 112 lines).

Hunk #37 succeeded at 2648 (offset 112 lines).

Hunk #38 succeeded at 2721 (offset 112 lines).

Hunk #39 succeeded at 2784 (offset 112 lines).

1 out of 39 hunks FAILED -- saving rejects to file server/mdb.c.rej

 

к сожалению не владею в полной мере Си и не могу сам поправить :(

Share this post


Link to post
Share on other sites

к сожалению не владею в полной мере Си и не могу сам поправить :(

На самом деле такое большое количество кусков в диффе вызвано лишь переиначиванием форматирования. Собственно два года назад я всё это вычистил, оставив чистый патч с непосредственными изменениями. Попробовал его сейчас применить к версии 4.2.6 - сработал весь кроме одного последнего куска, где патчится подсказка по ключам запуска сервера :) Не знаю как на 4.2.5, но на той версии, что прямо сейчас является последней стабильной мой (ну то есть, я тут конечно не приписываю себе его авторство :D) патч сработает.

dhcp-4.2.6.dd.patch.txt

Edited by Victor Safronov

Share this post


Link to post
Share on other sites

Чуть более "чистый" патч.

А зачем у вас в подсказке ключ сменился с правильного -dd на неправильный -bb? :)

Share this post


Link to post
Share on other sites

Чуть более "чистый" патч.

А зачем у вас в подсказке ключ сменился с правильного -dd на неправильный -bb? :)

Точно, исправил. Невнимательность.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.