Перейти к содержимому
Калькуляторы

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

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

(= dd =),

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

DHCP, похоже, проклятый протокол. :)

 

Вот я всегда и говорил - используйте PPPoE.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

но dhсpd просто так ip не выдает, надо ждать окончания аренды

А почему нельзя использовать one-lease-per-client true ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

ip dhcp relay share-vlan serverVladID sub-vlan clientVlanID

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Извиняюсь, нашел другой архив, в описанием работы патча.

dhcpd.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

комп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

Изменено пользователем zhenya`

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

А причём тут BIND???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ошибся, я имел в виду для последних версий 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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

dhcp-4.2.6.dd.patch.txt

Изменено пользователем Victor Safronov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

большое спасибо! работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

dhcpd-opt82-dd.patch.txt

Изменено пользователем poofeg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.