0.0.0.0%virbr0이 무엇인가요?

0.0.0.0%virbr0이 무엇인가요?

나는 다음 줄에서 얻습니다 ss -lun.

udp       UNCONN     0          0                0.0.0.0%virbr0:67                  0.0.0.0:*         users:(("dnsmasq",pid=950,fd=3))                

0.0.0.0%virbr0여기서 무슨 뜻인지 알고 싶습니다 . 인간에게는 그 흔적이 없으며 검색 엔진에서 찾기가 어렵습니다.

답변1

이는 SO_BINDTODEVICE소켓 옵션을 사용하는 IPv4 와일드카드 주소 외에 특정 인터페이스에 바인드된 소켓에 적용됩니다. ~에서socket(7):

SO_BINDTODEVICE
전달된 인터페이스 이름에 지정된 대로 이 소켓을 "eth0"과 같은 특정 장치에 바인딩합니다. 이름이 빈 문자열이거나 옵션 길이가 0이면 소켓 장치 바인딩이 제거됩니다. 전달된 옵션은 최대 크기가 IFNAMSIZ. 소켓이 인터페이스에 바인딩된 경우 소켓은 해당 특정 인터페이스에서 수신된 패킷만 처리합니다.. 이는 특정 소켓 유형, 특히 소켓에서만 작동한다는 점에 유의하세요 AF_INET . 패킷 소켓은 이를 지원하지 않습니다( bind거기서 일반 (2) 사용).

Linux 3.8 이전에는 이 소켓 옵션을 설정할 수 있었지만 getsockopt(2)를 사용하여 검색할 수는 없었습니다. Linux 3.8부터는 읽을 수 있습니다. optlen 매개변수에는 장치 이름을 수신하는 데 사용할 수 있는 버퍼 크기가 포함되어야 하며 IFNAMSIZ바이트 단위가 권장됩니다. 실제 장치 이름 길이는 매개변수에 보고됩니다 optlen.

(강조는 내 것)

일반적으로 소켓을 인터페이스의 IP 주소에 바인딩합니다. SO_BINDTODEVICE하지만 약간 다릅니다. 방화벽에 의해 차단되지 않는 한 rp_filter, 들어오는 패킷의 대상 주소가 소켓에 바인딩된 주소와 일치하는 한(패킷이 해당 인터페이스 1에서 시작되지 않은 경우에도) 지정된 주소에 대한 연결이 허용됩니다. 의 경우 SO_BINDTODEVICE위에서 언급한 대로 이 인터페이스에서 들어오는 패킷만 고려됩니다.

예를 들어:

$ sudo socat udp-listen:1234,so-bindtodevice=guest-bridge - &
$ ss -Hau 'sport = 1234'
UNCONN    0         0            0.0.0.0%guest-bridge:1234         0.0.0.0:*

dnsmasq귀하의 경우에는 libvirt에 의해 시작된 인스턴스에 바인딩된 DHCP 서버 UDP 소켓일 수 있습니다. 너는 볼 수있어소프트웨어가 옵션을 설정합니다.인터페이스에 바인딩하거나 특정 인터페이스를 제외해야 하는 경우.

DHCP 서버의 경우 DHCP 서버가 255.255.255.255로 향하는 브로드캐스트 검색 패킷을 허용하도록 설계되었기 때문에 인터페이스 주소에 바인딩하지 않으려고 합니다. 여기서 와일드카드 주소를 사용한다는 것은 해당 브리지 인터페이스가 DHCP 요청을 처리하고 별도 (또는 다른 소프트웨어)가 다른 인터페이스의 동일한 와일드카드 주소에서 이를 처리하도록 SO_BINDTODEVICE할 수 있음을 의미합니다 .dnsmasqvirbr0dnsmasq


1 이것은 매우 정상적이고 흔한 일입니다. 예를 들어, 라우터는 일반적으로 인터페이스에서 인바운드 주소로 들어오는 연결을 수락하거나 일반적으로 네트워크 인터페이스의 로컬 주소로 로컬 루프백 연결을 수행할 수 있습니다.

답변2

virbr0 인터페이스의 로컬 주소와 포트 67(0.0.0.0)입니다.

관련 정보