В чем проблема?:
в сети стоит isc-dhcp на freebsd.
1. Провожу следующий опыт: останавливаю dhcpd, чищу dhcpd.leases и dhcpd.leases~
Запускаю dhcpd. Подключаю к сети комп (Vista с изменениями в реестре на BROADCAST-флаг) - получил адрес, запись в dhcpd.leases появилась. Отключаю комп от сети и сразу подключаю снова - получаю тот же адрес, но при этом в /var/log/messages сообщение что: Mar 25 21:58:17 cryonic dhcpd: uid lease 172.30.4.254 for client 00:1e:33:49:25:89 is duplicate on 172.30.4/24
В dhcpd.leases появляется еще одна запись на этот комп аналогичная, только время аренды отличается. Почему сервер просто не выдает повторно и все, без ругани?2. Вторая проблема:
Происходит на разных компах с разными ОС.
Пример: клиент с Windows XP. Включаем в сеть: получает айпишник и кривую маску, например 255.0.0.0; отключаем сеть на компе и включаем - не может получить адрес; отключаем и включаем - снова кривые настройки; отключаем и включаем - получили адрес и настройки в полном объеме.
Итого в dhcpd.leases три записи на одного клиента с разным временем аренды, остальное все одинаково.
в /var/log/messages:
Mar 25 22:33:26 cryonic kernel: arp: 00:1d:60:b9:5c:71 is using my IP address 172.30.4.1! - ваще красотища, как он ИП сервака мог получить?
Mar 25 22:33:36 cryonic dhcpd: uid lease 172.30.4.251 for client 00:1d:60:b9:5c:71 is duplicate on 172.30.4/24
Mar 25 22:33:40 cryonic dhcpd: uid lease 172.30.4.129 for client 00:1d:60:b9:5c:71 is duplicate on 172.30.4/24
Mar 25 22:34:45 cryonic kernel: arplookup 0.0.0.0 failed: host is not on local network - а это вообще отдельная песня, тоже хз почему, но когда компьютер какой-нить не может получить настройки или получает их битые периодически появляется подобное сообщение, только ИП вместо 0.0.0.0 отличается (например 169.168.254.2 и т.п.). Чтобы этого сообщения не было в dhcpd.conf прописываю ping-check false.
Проверял dhcpddump'ом пакеты - отправляется информация полностью с сервера. Фаерволл отключен. Сетка вроде работает нормально:
cryonic# ping -f -c 10000 172.30.4.88 (клиент с того же свича)
PING 172.30.4.88 (172.30.4.88): 56 data bytes
.
--- 172.30.4.88 ping statistics ---
10000 packets transmitted, 10000 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.089/0.364/1.673/0.127 ms
cryonic# /usr/local/sbin/dhcpd --version
isc-dhcpd-V3.0.5
Стоит из портов, пробовал собирать последнюю версию с офф сайта isc - безрезультатно.
Конфигурация системы и конфиги:
FreeBSD cryonic.mai.net 7.0-RELEASE FreeBSD 7.0-RELEASE #8: Sun Mar 22 02:37:18 MSK 2009 *****@****************:/usr/obj/usr/src/sys/NEWKERNEL amd64
Сервак раздает настройки на этих интерфейсах (каждый интерфейс смотрит в свой VLAN (подсеть)):
vlan10: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:1b:21:03:52:aa
inet 172.30.0.1 netmask 0xffffff00 broadcast 172.30.0.255
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
vlan: 10 parent interface: em0
vlan20: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:1b:21:03:52:aa
inet 172.30.1.1 netmask 0xffffff00 broadcast 172.30.1.255
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
vlan: 20 parent interface: em0
vlan30: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:1b:21:03:52:aa
inet 172.30.2.1 netmask 0xffffff00 broadcast 172.30.2.255
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
vlan: 30 parent interface: em0
vlan40: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:07:e9:0f:b9:b5
inet 172.30.3.1 netmask 0xffffff00 broadcast 172.30.3.255
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
vlan: 40 parent interface: em1
vlan50: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:07:e9:0f:b9:b5
inet 172.30.4.1 netmask 0xffffff00 broadcast 172.30.4.255
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active
vlan: 50 parent interface: em1
cryonic# grep dhcp /etc/rc.conf
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_pidfile="/var/run/dhcpd/dhcpd.pid"
dhcpd_ifaces="vlan10 vlan20 vlan30 vlan40 vlan50"
dhcpd_chuser_enable="NO"
dhcpd_leasesfile="/var/state/dhcpd/dhcpd.leases"
cryonic# more /usr/local/etc/dhcpd.conf
authoritative;
option domain-name "*******";
option ntp-servers 172.30.4.10;
default-lease-time 259200;
max-lease-time 604800;
deny bootp;
# allow duplicates;
# ping-check false;
ddns-updates off;
ddns-update-style none;
log-facility local7;
# MS-routes
option ms-classless-static-routes code 249 = array of unsigned integer 8;
# RFC3442 routes
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
subnet 172.30.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 172.30.0.1;
option broadcast-address 172.30.0.255;
option domain-name-servers 172.30.0.1, 172.30.4.10;
option ms-classless-static-routes 24, 172,30,4, 172,30,0,1, 24, 172,30,1, 172,30,0,1, 24, 172,30,2, 172,30,0,1, 24, 172,30,3, 172,30,0,1, 24, 172,16,15, 172,30,0,1, 16, 192,168, 172,30,0,1;
option rfc3442-classless-static-routes 24, 172,30,4, 172,30,0,1, 24, 172,30,1, 172,30,0,1, 24, 172,30,2, 172,30,0,1, 24, 172,30,3, 172,30,0,1, 24, 172,16,15, 172,30,0,1, 16, 192,168, 172,30,0,1;
pool {
range 172.30.0.30 172.30.0.254;
}
}
Аналогичные subnet для каждой подсети и несколько постоянных host'ов.
Я уже не знаю куда копать. Поиски в Интернет по ошибкам в /var/log/messages - ничего не подходит. Может система встала криво на комп, но подобное не наблюдал на предыдущей фре 6.2. Уже склоняюсь к замене на 6.4...