systemd-networkd 구성 파일을 사용하여 Tap 인터페이스를 구성하려고 합니다. 다음 파일을 만들었습니다.
/etc/systemd/network/tap_test.network
/etc/systemd/network/tap_test.netdev
콘텐츠:
tap_test.network:
[Match]
Name=tap_test
[Network]
Description=TEST tap interface
Address=192.168.2.100
tap_test.netdev:
[Match]
[NetDev]
Name=tap_test
Kind=tap
그런 다음 systemd-networkd
서비스를 다시 시작합니다.
sudo systemctl restart systemd-networkd.service
예상대로 ifconfig
실행 시 새로운 클릭 인터페이스가 표시됩니다. 그런데 구성 파일의 IP 주소를 tap_test.network
it 으로 끝나도록 변경 101
하고 다시 재부팅하려고 하면 systemd-networkd
다시 실행해도 아무런 변화가 없습니다 ifconfig
(IP 주소는 여전히 이전 주소입니다).
또한 인터페이스를 종료 ifconfig tap_test down
하고 서비스를 다시 시작해 보았지만 역시 도움이 되지 않았습니다.
systemd-networkd에게 구성 파일을 다시 로드하도록 지시하는 방법은 무엇입니까?
답변1
견적으로 이동systemd.netdev(5):
Networkd는 시작될 때 가상 네트워크 장치를 생성합니다. 지정된 이름의 netdev가 이미 존재하는 경우 networkd는 자체 netdev를 만드는 대신 해당 netdev를 그대로 사용합니다. networkd는 기존 netdev의 설정을 변경하지 않습니다.
분명히 이것은 의도적으로 설계된 것입니다. (가능한 경우) 탭 장치 할당을 직접 해제하고 필요한 명령을 ExecStopPost=
장치 에 추가하는 방법을 찾아야 한다고 생각합니다 systemd-networkd.service
.
후자의 플러그인을 사용할 수 있습니다.
/etc/systemd/system/systemd-networkd.service.d/tuntap.conf
:
[Service]
ExecStopPost=<your command goes here>
답변2
대신 ifdown tap_test
and 를 사용해 보세요 .ifup tap_test
ifconfig
요점은 ifup
더 많은 일을 하는 것입니다. ifconfig
최소입니다.
ifup ethX
구성 파일을 사용하고 올바른 IP 주소 등으로 인터페이스를 시작하십시오.
ifconfig ethX up
인터페이스를 시작하면 됩니다.