На DHCP-сервере Linux я получаю несколько строк журнала:
dhcpd: DHCPDISCOVER from 00:30:48:fe:5c:9c via eth1: network 192.168.2.0/24: no free leases
У меня нет машин с 00: 30: 48: fe: 5c: 9c, и я не собираюсь выдавать IP на 00: 30: 48: fe: 5c: 9c (что бы это ни было).
Я отследил сервер, с которого это происходит, и убил всех работающих DHCP-клиентов, но запросы DHCPDISCOVER не прекращаются.
Я могу доказать, что это отправляющий сервер, потянув за кабель Ethernet - запросы прекращаются.
Странно то, что у отправляющего сервера всего 2 интерфейса:
В чем может быть причина нечетного адреса? Кто мог отправлять запросы?
Мой DHCP-клиент установлен по умолчанию в Debian 6.0 (Squeeze) http://packages.debian.org/squeeze/isc-dhcp-client
На хосте DHCP-клиента:
root@n34:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 100
link/ether 00:30:48:fe:5c:9a brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 00:30:48:fe:5c:9b brd ff:ff:ff:ff:ff:ff
4: ib0: <BROADCAST,MULTICAST> mtu 2044 qdisc noop state DOWN qlen 256
link/infiniband 80:00:00:48:fe:80:00:00:00:00:00:00:00:02:c9:03:00:08:81:9f brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
5: ib1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2044 qdisc pfifo_fast state UP qlen 256
link/infiniband 80:00:00:49:fe:80:00:00:00:00:00:00:00:02:c9:03:00:08:81:a0 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
На хосте DHCP-клиента (та же информация, что и выше):
root@n34:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:30:48:fe:5c:9a
inet addr:192.168.2.234 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::230:48ff:fefe:5c9a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:72544 errors:0 dropped:0 overruns:0 frame:0
TX packets:152773 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4908592 (4.6 MiB) TX bytes:89815782 (85.6 MiB)
Memory:dfd60000-dfd80000
eth1 Link encap:Ethernet HWaddr 00:30:48:fe:5c:9b
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Memory:dfde0000-dfe00000
ib0 Link encap:UNSPEC HWaddr 80-00-00-48-FE-80-00-00-00-00-00-00-00-00-00-00
BROADCAST MULTICAST MTU:2044 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:256
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ib1 Link encap:UNSPEC HWaddr 80-00-00-49-FE-80-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.3.234 Bcast:192.168.3.255 Mask:255.255.255.0
inet6 addr: fe80::202:c903:8:81a0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:2044 Metric:1
RX packets:1330 errors:0 dropped:0 overruns:0 frame:0
TX packets:255 errors:0 dropped:5 overruns:0 carrier:0
collisions:0 txqueuelen:256
RX bytes:716415 (699.6 KiB) TX bytes:17584 (17.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
Узлы были отображены с помощью Персей который использует kexec вместо перезагрузки.
Проверьте информацию BIOS об интерфейсах, а не только о том, что легко получить в ОС.
Сетевые карты серверов все чаще включают встроенную поддержку iSCSI (или FCoE). Когда они это делают, то через общую карту Ethernet, но с другим MAC-адресом. И другой MAC-адрес будет отключен на один. Вы можете остановить запросы DHCP, заблокировав загрузку драйвера хранилища (или каким-то образом настроив этот драйвер хранилища). Это было бы похоже на какой-то драйвер SCSI или FC. Если это так, то дополнительные запросы DHCP безвредны.
Также возможно, что это интерфейс управления (не горит), использующий один и тот же порт. Это, вероятно, также появится где-нибудь в BIOS.
Первое, что приходит в голову, это интерфейс Supermicro IPMI (MAC-адреса производитель указывает как Supermicro). По умолчанию карты IPMI пытаются получить адрес DHCP. На более новых платах интерфейсы IPMI встроены и обычно используют порт Ethernet. Но есть свой MAC-адрес.
Что это за плата Supermicro или модель суперсервера?
Вероятно, это карта IPMI. Вы можете отключить запросы DHCP с помощью этой команды:
sudo ipmitool lan set 1 ipsrc static
(Возможно, вам придется изменить '1' в этой команде в зависимости от вашего LAN-канала.)
Само сообщение об ошибке сообщает вам все, что вам нужно знать. В частности: no free leases
. Это означает, что у DHCP-сервера больше нет свободных адресов для раздачи. Потому что машина, запрашивающая адрес, не получила его, но сделал получить действительный ответ от DHCP-сервера, он будет продолжать запрашивать его. Другими словами, вы смотрите не на ту сторону проблемы.
Вы можете попробовать использовать lshw -short
, чтобы получить подробную информацию о вашем оборудовании. Это может указать вам правильное направление. Однако, как сказал Джон, это скорее всего какой-то порт управления. Вероятно, вы могли бы фильтровать Mac на своем коммутаторе.
Что-то вроде:
mac-address-table static 00:30:48:fe:5c:9c vlan <vlan> drop