- Tenho 2 netcards
enp0s3
para WAN eenp0s8
para LAN. - WAN tem endereço IP dinâmico (recebido do ISP).
- LAN tem endereço IP estático classe C para minha rede local
- Eu tenho isc-dhcp-server com esta configuração:
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;
}
}
O problema é que o isc-dhcp-server está apresentando mensagens de erro Nenhuma declaração de sub-rede para enp0s3 (10.0.2.15) porque ele me pede para atribuir um intervalo para WAN, e isso não é possível porque é dinâmico e o provedor ISP pode eventualmente mudar o 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.
Como faço para evitar essa situação para que essas mensagens de erro que inundam o log não apareçam mais? desde já, obrigado
Embora a outra resposta esteja correta, pois é seguro ignorar esse aviso, algumas pessoas preferem "política de aviso zero", configurando o sistema com antecedência para que não emita avisos para situações conhecidas. Assim, qualquer sistema de avisos ainda gerado seria significativo e você não os perderia acidentalmente no fluxo de "avisos conhecidos e esperados".
Você pode configurar o dhcpd para escutar apenas nas interfaces nas quais deseja fornecer serviço, que é configurado em
/etc/default/isc-dhcp-server
:(por padrão, ele está ouvindo em todos os lugares). Em sistemas mais novos, pode ser necessário configurá-lo assim:
Outra maneira de suprimir o aviso é informar que a interface/sub-rede existe, mas não fornecer nenhum serviço para ela. Há um exemplo de como fazer isso no
dhcpd.conf
arquivo de estoque (provavelmente não aquele que o Ubuntu ou Debian instalou em /etc):(substitua-o pela rede que você tem na WAN NIC). Isso é exatamente o que o próprio aviso sugere.
O que isso significa é: "Não sei nada sobre essa interface e a sub-rede à qual está conectada, portanto, ignorarei qualquer solicitação de DHCP proveniente dela". O que está perfeitamente bem, porque você não deseja fornecer um serviço DHCP em sua interface WAN.
Apenas ignore o aviso e continue.