Нет объявления подсети для WAN
- у меня 2 сетевые карты
enp0s3
для глобальной сети иenp0s8
для локальной сети. - WAN имеет динамический IP-адрес (полученный от интернет-провайдера).
- В локальной сети есть статический IP-адрес класса C для моей локальной сети.
- У меня есть isc-dhcp-сервер с такой конфигурацией:
nano /etc/dhcp/dhcpd.conf
# ISC-DHCP-Server Configuration
authoritative;
option wpad code 252 = text;
server-identifier 192.168.0.10;
deny duplicates;
one-lease-per-client true;
deny declines;
deny client-updates;
ping-check true;
log-facility local7;
ddns-update-style none;
host user3 {
hardware ethernet 40:e2:30:f4:00:04;
fixed-address 192.168.0.90;
}
host user1 {
hardware ethernet 40:e2:30:f4:00:02;
fixed-address 192.168.0.50;
}
class "blockdhcp" {
match pick-first-value (option dhcp-client-identifier, hardware);
}
subclass "blockdhcp" 1:90:68:c3:00:00:00;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.10;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
#option domain-name "example.org";
option domain-name-servers 8.8.8.8,8.8.4.4;
min-lease-time 2592000; # 30 days
default-lease-time 2592000; # 30 days
max-lease-time 2592000; # 30 days
pool {
min-lease-time 60;
default-lease-time 60;
max-lease-time 60;
deny members of "blockdhcp";
range 192.168.0.100 192.168.0.250;
}
}
Проблема в том, что isc-dhcp-сервер показывает сообщения об ошибках. Нет объявления подсети для enp0s3 (10.0.2.15), поскольку он просит меня назначить диапазон для WAN, а это невозможно, поскольку он является динамическим, и провайдер интернет-провайдера может в конечном итоге изменить IP
sudo systemctl status isc-dhcp-server
● isc-dhcp-server.service - ISC DHCP IPv4 server
Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-01-18 18:29:32 -05; 7min ago
Docs: man:dhcpd(8)
Main PID: 17055 (dhcpd)
Tasks: 4 (limit: 19112)
Memory: 4.9M
CPU: 24ms
CGroup: /system.slice/isc-dhcp-server.service
└─17055 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf
ene 18 18:29:32 uservm dhcpd[17055]: Sending on LPF/enp0s8/08:00:27:8d:e7:c9/192.168.0.0/24
ene 18 18:29:32 uservm dhcpd[17055]:
ene 18 18:29:32 uservm dhcpd[17055]: No subnet declaration for enp0s3 (10.0.2.15).
ene 18 18:29:32 uservm dhcpd[17055]: ** Ignoring requests on enp0s3. If this is not what
ene 18 18:29:32 uservm dhcpd[17055]: you want, please write a subnet declaration
ene 18 18:29:32 uservm dhcpd[17055]: in your dhcpd.conf file for the network segment
ene 18 18:29:32 uservm dhcpd[17055]: to which interface enp0s3 is attached. **
ene 18 18:29:32 uservm dhcpd[17055]:
ene 18 18:29:32 uservm dhcpd[17055]: Sending on Socket/fallback/fallback-net
ene 18 18:29:32 uservm dhcpd[17055]: Server starting service.
Как мне избежать этой ситуации, чтобы сообщения об ошибках, заполняющие журнал, больше не появлялись? заранее спасибо
2 ответа
Хотя другой ответ верен, поскольку это предупреждение можно безопасно игнорировать, некоторые люди предпочитают «политику нулевого предупреждения», заранее настраивая систему так, чтобы она не выдавала предупреждения для известных ситуаций. Тогда любые предупреждения, которые будет генерировать система, по-прежнему будут иметь смысл, и вы случайно не пропустите их в потоке «известных и ожидаемых предупреждений».
Вы можете настроить dhcpd так, чтобы он прослушивал только те интерфейсы, на которых вы хотите предоставлять услуги, что настраивается в/etc/default/isc-dhcp-server
:
INTERFACES="enp0s8"
(по умолчанию прослушивается везде). В более новых системах вам может потребоваться настроить это следующим образом:
INTERFACESv4="enp0s8"
INTERFACESv6=""
Другой способ подавить предупреждение — сообщить ему, что интерфейс/подсеть существует, но не предоставлять для него никаких услуг. есть пример как это сделатьВ стокеdhcpd.conf
файл (вероятно, не тот, который Ubuntu или Debian установили в /etc):
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
subnet 10.152.187.0 netmask 255.255.255.0 {
}
(замените сеть на WAN NIC). Именно об этом говорит само предупреждение.
ene 18 18:29:32 uservm dhcpd[17055]: No subnet declaration for enp0s3 (10.0.2.15).
ene 18 18:29:32 uservm dhcpd[17055]: ** Ignoring requests on enp0s3. If this is not what
ene 18 18:29:32 uservm dhcpd[17055]: you want, please write a subnet declaration
ene 18 18:29:32 uservm dhcpd[17055]: in your dhcpd.conf file for the network segment
ene 18 18:29:32 uservm dhcpd[17055]: to which interface enp0s3 is attached. **
Это означает: «Я ничего не знаю об этом интерфейсе и подсети, к которой он подключен, поэтому я буду игнорировать любой запрос DHCP, исходящий от него». И это совершенно нормально, поскольку на самом деле вы не хотите предоставлять службу DHCP на своем интерфейсе WAN.
Просто игнорируйте предупреждение и продолжайте.