NetworkManager는 어떻게 외부 장치를 얻습니까?

NetworkManager는 어떻게 외부 장치를 얻습니까?

KDE 플라즈마 5.27.5와 함께 Debian 12.2 사용하기

외부 장치에 대한 정보는 어디서 nmcli device얻을 수 있나요 docker0?virbr0

# nmcli device console output
DEVICE   TYPE      STATE                   CONNECTION
eno1     ethernet  connected               Wired_eno1
lo       loopback  connected (externally)  lo
docker0  bridge    connected (externally)  docker0
virbr0   bridge    connected (externally)  virbr0
enp5s0   ethernet  unavailable             --

완전성을 위해 `의 내용은 다음과 같습니다.

cat `/etc/network/interfaces

# console output
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback


ls -l /etc/NetworkManager/system-connections/

# console output
-rw------- 1 root root 322 Nov 15 09:15 Forti_VPN
-rw------- 1 root root 210 Nov 14 21:48 Wired_eno1

읽다Linux에서 NetworkManager 시작하기. NetworkManager가 D-Bus 정보를 사용하여 각 NIC를 초기화한다는 것을 배웠습니다.

udev 데몬은 시스템에 설치된 각 네트워크 인터페이스 카드(NIC)에 대해 네트워크 규칙 파일에 항목을 만듭니다. D-Bus는 새로운 네트워크 장치(유선 또는 무선)가 있음을 NetworkManager에 알립니다. 그런 다음 NetworkManager는 D-Bus의 트래픽을 수신하고 새 장치에 대한 구성을 생성하여 응답합니다. 기본적으로 이러한 구성은 RAM에만 저장되며 영구적이지 않습니다. 컴퓨터가 시작될 때마다 생성되어야 합니다.

하지만 물리적 장치나 가상 장치 등 네트워크 장치에 대한 udev정보는 어디서 얻을 수 있습니까?eno1enp5s0docker0virbr0

udevNetworkManager에서 검색한 네트워크 장치에 대한 정보를 쿼리하기 위해 어떤 수동 단계나 명령을 실행할 수 있는지 알아보십시오 .

답변1

커널은udev 이벤트추가, 변경, 삭제를 위해모든 장치, 네트워크 장비를 포함합니다. 이러한 이벤트를 모니터링 한 결과 udev, 해당 드라이버는 하드웨어를 감지하면 모든 네트워크 장치를 인식하게 됩니다.

udevadm info -q all -n <device node>udev에서 네트워크 장치를 쿼리하려면 해당 네트워크 장치에 장치 노드가 없으므로 사용할 수 없습니다 . 하지만 당신은할 수 있는sysfs 경로를 사용하여 쿼리합니다.

udevadm info -q all -p /sys/class/net/<interface name>

또는

udevadm info -q all -a -p /sys/class/net/<interface name>

이전 명령은 새 네트워크 인터페이스에 사용할 수 있는 모든 이름을 알려줍니다.예측 가능한 네트워크 인터페이스 이름 체계, 다양한 ID_NET_NAME_*환경 변수가 있습니다.

후자의 명령은 네트워크 인터페이스 장치 및 모든 상위 장치(해당되는 경우)에 대한 모든 udev 속성을 나열합니다. 이는 일부 특이한 속성을 기반으로 네트워크 인터페이스에 이름을 할당하는 등 사용자 정의 udev 규칙을 작성해야 하는 경우 까다로울 수 있습니다. . 효과가있다.

관련 정보