Xinetd는 인터페이스에 할당되지 않은 IP 주소를 수신합니다.

Xinetd는 인터페이스에 할당되지 않은 IP 주소를 수신합니다.

인터페이스에 할당되지 않은 IP 주소에 대해 들어오는 패킷을 수신하기 위해 Xinetd(또는 다른 솔루션)를 사용하고 Xinetd와 같은 데몬을 시작하는 것이 어떻게든 가능합니까?

따라서 내 Linux 시스템은 기본 GW이며 모든 패킷이 여기에 전송됩니다. 인터페이스에 바인딩되지 않은 대상 IP가 있는 특정 패킷을 인식하고 이에 반응하고 싶습니다(데몬 시작).

감사해요!

답변1

예, net.ipv4.ip_nonlocal_bind설정을 활성화합니다:

echo "net.ipv4.ip_nonlocal_bind = 1" > /etc/sysctl.d/enable-nolocal-bind.conf"
sysctl net.ipv4.ip_nonlocal_bind=1

(후자는 "지금 활성화"이며, 첫 번째 줄은 이것을 지속되게 만드는 것입니다). 이제 모든 IP 주소에 데몬을 바인딩할 수 있습니다.

그러나 예상대로 작동하지 않을 수도 있습니다. 동일한 LAN 컴퓨터에서는 기본 gw를 사용하여 통신하지 않습니다. 예를 들어 패킷을 보낼 시스템의 MAC 주소를 찾기 위해 ARP 쿼리를 만드는 등 직접 패킷을 보냅니다. 응답이 없으면 기본 gw로 패킷을 보내는 것으로 되돌아가지 않습니다. 대신 오류로 인해 실패합니다.

답변2

Linux에서 local 유형의 경로는 루프백이며 localhost로 전달됩니다. 또한 ~으로 알려진AnyIP.

원하는 만큼 큰 접두사를 라우팅합니다. IPv6를 사용하는 경우 해당 목적을 위해 전체 /64를 예약할 수 있습니다 2001:db8:bdd2:c0e::/64. 이를 이 호스트(Linux 상자)로 라우팅하고 Linux 상자에서 로컬로 보냅니다.

원하는 포트에서 수신 대기하도록 xinetd를 구성하십시오.

최종 결과, 해당 네트워크의 모든 IP(예: 2001:db8:bdd2:c0e::138)가 이 상자에서 종료되고 서버 프로그램이 시작됩니다.

관련 정보