
É de alguma forma possível usar o Xinetd (ou qualquer outra solução) para ouvir pacotes recebidos para um endereço IP que não está atribuído a uma interface e iniciar um daemon (como o Xinetd)?
Então minha máquina Linux é o GW padrão, todos os pacotes são enviados para ela. Gostaria de reconhecer pacotes específicos com um IP de destino, que não esteja vinculado a uma interface e reagir a ele (iniciar um daemon)
Obrigado!
Responder1
Sim, habilite uma net.ipv4.ip_nonlocal_bind
configuração:
echo "net.ipv4.ip_nonlocal_bind = 1" > /etc/sysctl.d/enable-nolocal-bind.conf"
sysctl net.ipv4.ip_nonlocal_bind=1
(o último é "enable it now", a primeira linha é para tornar isso persistente). Agora você pode vincular daemons a qualquer endereço IP.
No entanto, isso pode não funcionar como você esperava. Na mesma LAN, os computadores não usam o gw padrão para se comunicar. Eles enviam pacotes diretamente, por exemplo, fazendo consultas ARP para descobrir o endereço MAC do sistema para onde enviar um pacote. Se não houver resposta, ele não reverterá para o envio de um pacote para um gw padrão. Em vez disso, ele falhará com o erro.
Responder2
No Linux, as rotas do tipo local são loopback e serão entregues ao localhost. Também conhecido comoQualquer IP.
Roteie um prefixo tão grande quanto desejado. Se estiver usando IPv6, talvez reserve um /64 inteiro para essa finalidade, digamos 2001:db8:bdd2:c0e::/64
. Roteie isso para este host (a caixa Linux) e na caixa Linux envie para o local.
Configure o xinetd para escutar na porta desejada.
Resultado final, qualquer IP nessa rede, digamos 2001:db8:bdd2:c0e::138
, terminará nesta caixa e iniciará o programa do servidor.