NetworkManager 브리지 인터페이스에 연결된 네트워크 카드를 사용하여 Wake on LAN

NetworkManager 브리지 인터페이스에 연결된 네트워크 카드를 사용하여 Wake on LAN

나는 qemu를 실행하는 Debian Bookworm인 하이퍼바이저용 환경을 설정하려고 노력해 왔습니다.

저는 터미널이 너무 건조할 때 콘텐츠를 볼 수 있도록 웹 인터페이스 Cockpit을 ​​사용해 왔습니다. 하지만 systemd-nerworkd그렇게 하면서 NetworkManager.

최근에는 가상 머신과 호스트가 서로 통신할 수 있도록 브리지된 네트워크를 만드는 방법을 배웠습니다. 하지만 이 작업을 수행한 후 웨이크 네트워크가 작동을 멈췄습니다. 이제 라우터가 네트워크 카드의 MAC 주소가 아닌 브리지의 MAC 주소를 "인식"하기 때문에 이것이 예상된다는 것을 알고 있습니다.

내가 아는 한, wakeonlan은 네트워크 모델의 MAC 수준에서 작동합니다. arping네트워크의 다른 클라이언트에서 이를 사용해 보았지만 내 하이퍼바이저(브리지)의 MAC 주소를 "볼" 수 없었습니다.

이제는 웨이컨란과 동시에 다리를 갖는 것이 불가능할 수도 있다는 생각이 들기 시작했습니다. 가능합니까? 그렇다면 어떻게 해야 합니까? 사용하는 것이 가장 좋습니다 NetworkManager.

답변1

Wake on LAN은 하드웨어 기능입니다. 이는 라우팅에 참여하는 기본 인터페이스(브리지)에 도달하기 위한 것이 아니지만 항상 물리적 인터페이스(브리지 포트로 설정된 실제 NIC 인터페이스)에 도달합니다. Wake-On-LAN의 일반적인 방법은 Magic Packet(1995년 원본 AMD 백서:PDF)를 다른 방법(예: 유니캐스트, 브로드캐스트 또는 ARP) 대신 사용하여 원치 않는 가짜 깨우기를 방지할 수 있습니다.

ethtool일반적으로 eth0Wake on LAN은 다음을 통해(예: on ) 활성화할 수 있습니다.

ethtool --change eth0 wol g

주다:

# ethtool eth0 | grep -i wake
    Supports Wake-on: pumbg
    Wake-on: g

그러나 실제로 달리 명시하지 않으면 NetworkManager는 일시 중지 전이나 일시 중지 후 다시 관리하는 인터페이스에서 Wake on LAN을 비활성화하여 첫 번째 또는 두 번째(그리고 재부팅 후) 실패를 초래할 수 있습니다. 그래서 이것만으로는 충분하지 않습니다. NetworkManager는 이 인터페이스에서 Wake on LAN을 사용하도록 지시받아야 합니다.

nmcliGUI를 사용할 수 있는 경우 GUI 애플릿을 사용하여 다음 명령을 완료할 수 있습니다.

예를 들어, NetworkManager가 다음 연결 이름을 갖고 있고 Bridge connection 1슬레이브 인터페이스인 경우 Ethernet connection 1해당 기능은 에서 활성화되어야 합니다 Ethernet connection 1.

# nmcli connection show id 'Ethernet connection 1' | grep -i wake
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --

이 내용은 다음과 같이 기록됩니다.nm-settings-nmcli(5):

802-3-ethernet.wake-on-lan

NMSettingWiredWakeOnLan 옵션을 활성화합니다. 모든 옵션이 모든 장치에서 지원되는 것은 아닙니다. "phy"(0x2), "unicast"(0x4), "multicast"(0x8), "broadcast"(0x10), "arp"(0x20)의 조합이 가능합니다."마법"(0x40)또는 특수 값 "기본값"(0x1)(전역 설정 사용) 및 "무시"(0x8000)(NetworkManager에서 Wake-on-LAN 관리 비활성화).

다른 곳에 기본값이 있을 수 있지만 이를 명시적으로 설정하면 magicWake on LAN이 이 인터페이스에서 활성화된 상태로 유지됩니다.

다음과 같이 매직으로 설정하세요.

nmcli connection modify 'Ethernet connection 1' 802-3-ethernet.wake-on-lan magic

NetworkManager는 이 설정을 즉시(또는 나중에 nmcli connection reload) 적용하지 않을 수 있으므로 위에서 설명한 대로(필요에 따라 인터페이스 이름 변경) 이 설정을 구성한 후 한 번만 수동으로 설정해야 합니다.

ethtool --change eth0 wol g

이제 사용법에 대해. 브리지의 이더넷 MAC 주소가 NIC의 이더넷 MAC 주소와 동일할 이유는 없습니다. 이는 명시적으로 기본값도 아닙니다.현대적인 시스템(NetworkManager 자체가 이를 브리지에 복사하도록 선택할 수도 있습니다). 따라서 ARP가 여전히 동일한 LAN의 시스템 캐시에 있더라도 Magic Packet을 물리적 인터페이스로 가져오는 올바른 방법은 아닙니다. 일시 중단되면 물리적 인터페이스는 더 이상 무차별 모드로 유지될 수 없습니다(브릿지 포트이기 때문에). 그럼에도 불구하고 캐시 항목이 시스템 캐시에서 제거되면 이러한 ARP도 실패합니다.

IP를 페이로드 메커니즘으로 사용하는 경우 항상 ARP 확인을 시도하지 않고 MAC 이더넷 브로드캐스트 대상(FF:FF:FF:FF:FF:FF)으로 확인되는 대상을 사용하십시오. LAN 브로드캐스트 255.255.255.255 또는 직접 브로드캐스트(예: , LAN 192.168.1.0/24의 192.168.1.255).

예를 들어 네트워크 카드의 MAC 주소가 12:34:56:78:9a:bc인 경우 을(를) 사용하려면 wakeonlan다음을 수행하세요.동일한 LAN에서:

wakeonlan 12:34:56:78:9a:bc

또는 시스템이 192.0.2.0/24 및 192.168.1.0/24와 같은 여러 LAN에 액세스할 수 있고 깨우려는 시스템이 후자에 있는 경우:

wakeonlan -i 192.168.1.255 12:34:56:78:9a:bc

다른 도구에는 추가 기능이 있을 수도 있고 없을 수도 있습니다. 예를 들어 etherwake인터페이스를 지정해야 하며 IP는 사용되지 않지만 이더넷 유형 0x0842가 사용됩니다. 이는 Wake on LAN용으로 예약된 사실상의 유형(사용할 필요는 없음)이며뿌리또는 충분한 기능을 사용하십시오.

etherwake -i eth0 12:34:56:78:9a:bc

이는 질문의 범위를 벗어나지만 지침을 제공하려면 인터넷을 통한 원격 깨우기에는 인터넷 게이트웨이의 도움이 필요합니다. 즉, 사용자 지정 소프트웨어를 실행하거나 브로드캐스트를 NAT해야 하며경로 지향 브로드캐스트 활성화이것은보안상의 이유로 기본적으로 항상 비활성화되어 있습니다.. 위에서 언급했듯이 영구 ARP 주소를 설정하는 것은 일반적으로 브리지에 도움이 되지 않지만서서히 나아가는영구 ARP 주소는 이 목적을 위해 LAN에 가상 IP 주소(브리지 인터페이스에 존재하지 않는 것을 포함하여 어디에도 사용되지 않음)를 예약하여 시스템을 깨우는 데 사용됩니다.

관련 정보