systemd-networkd를 사용하여 네트워크 구성 변경시 작업 수행


10

데비안에서에서 ifupdown로 전환 systemd-networkd하고 있으며 대부분 잘 작동합니다. 하나의 누락 된 비트는 모든 네트워크 변경시 전화를 걸어 killall -ARLM tincVPN이 적시에 올라가고 싶다는 것입니다.

그러한 기능을 제공 systemd하거나 systemd-networkd제공 합니까 ? 어떻게 사용합니까?

답변:


3

networkd-dispatcher인터페이스 상태가 변경된 후 이벤트를 실행 하는 데 사용 하고 있습니다.

Networkd-dispatcher는 시스템 네트워크 연결 상태 변경을위한 디스패처 데몬입니다. 이 데몬은 NetworkManager-dispatcher와 유사하지만 systemd-networkd의 특성으로 인해 지원하는 이벤트 유형이 훨씬 제한적입니다.

Gitlab에 연결


이것은 데비안 10 (버스터)에 포함되어 있습니다.
존 에이 켄 베리

2

틴은 직접 신호를 보내는 대신 시스템 단위로 업데이트해야합니다. 자신의 유닛 파일을 구성하려면이 하나 개의 요구 사항을 달성하기 위해 적절한과 체인 수 Require=, Before=After=의 행 [Unit]섹션을 참조하십시오. 또한 WantedBy=네트워크 서비스에 맞게 설정했는지 확인하십시오 . (즉 , WantedBy={ 대신 ,, } )network.targetnetwork-online.targetnetwork-pre.targetmulti-user.target

이를 통해 systemctl restart systemd-networkd.service네트워크를 다시 시작할 수 있습니다. 이것을 systemd-resolvd, udev/ dbus( wpa_supplicant@nic.service와이파 이에있을 때 플러스 )와 결합하면 네트워크가 작동합니다.

시스템 네트워크 및 장치 의존성 으로 전환에 관한 기사를 읽으십시오 . 또한 관리자 용 시스템 안내서에 설명 된대로 명령을 통해 장치에 신호를 보내는 방법이기도합니다.systemd.servicesystemctl kill


나는 정말 따라하지 않습니다. 따라서 tinc가 시스템 서비스로 실행되는 systemctl kill경우 신호를 전달하는 데 사용할 수 있습니다 . 그러나 네트워크 구성 변경에서 트리거하는 방법을 모르겠습니다.
Joachim Breitner

타겟 및 관계 종속성 만 systemd의 시그널링을 사용하지 않습니다. 네트워크 인터페이스는이 신호까지이며 따라서 일단 (내부적으로 systemd로)에있는 다른 종속 network.target다음은 network-online.target그 기기의 전원을 걷어차합니다. 그래서 그냥이 tinc.service포함 Requires=systemd-networkd.service하고 WantedBy=network-online.target차기-networkd을 systemd 때 즉, NIC와 TUN 인터페이스를 가지고 IP 주소를 설정하고 필요에 따라 다음 시작 tinc하거나 다시 시작에 신호를 보낸다 떨어져 다음.
드와이트 스펜서

network-online.target이 연결을 끊을 때 멈추지 않기 때문에 서비스를 다시 시작하는 방법을 찾지 못했습니다 (실제로 버그 보고서를 제출해야합니다 ...). 다음 을 포함 하는 /etc/NetworkManager/dispatcher.d/ 스크립트를 사용했습니다.case "$2" in up|connectivity-change) if /usr/bin/nm-online -qx; then systemctl reload autossh.service fi;; esac
eMPee584

1
나는 당신이 쓴 기사에 링크 된 것을 즐겁게 찾을 수 에 의해 그 질문은 대답하는 사람. :) 물론이 답변의 독자에게 도움이되지만 여전히 재미 있습니다.
와일드 카드

1

현재 불가능합니다. 그러나 systemd-networkd-wait-online.servicetinc를 재구성하기 위해 부팅에 대한 종속성으로 만 사용할 수 있습니다 . 내 경험상 tinc는 네트워크 구성의 변경 사항에 빠르게 반응합니다. 적어도 리눅스에서는 인터페이스 변경을 수신하기 위해 rtnetlink를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.