systemd 서비스 파일을 사용하여 시스템 시작 시 고정 경로를 추가하고 싶습니다.
기본 게이트웨이를 통해 액세스할 수 있는 별도의 192.168 클래스 C 네트워크에 DMZ 네트워크가 있습니다. 또한 OpenVPN을 사용하여 노트북의 인터넷 트래픽을 라우팅하는데, 이는 NetworkManager를 통해 Wi-Fi 연결에 자동으로 연결됩니다. 문제는 OpenVPN이 연결되어 경로 테이블에 새로운 기본 경로를 추가하면 DMZ에 더 이상 연결할 수 없다는 것입니다. 분명히 고정 경로를 수동으로 추가하면 이 문제를 해결할 수 있지만 시작할 때나 OpenVPN이 연결될 때 자동으로 이 작업을 수행하고 싶습니다.
시작 시 이 작업을 수행하기 위해 systemd 서비스 파일을 생성해 보았습니다. 서비스 파일은 실행을 시도 ip route add
하므로 네트워크가 가동된 후에 실행되어야 합니다.
#01-static-route.service
[Unit]
Description=Static route to the DMZ
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
# Add a route to the DMZ network since the vpn will change our default gateway
ExecStart=/usr/bin/ip route add 192.168.0.0/24 via 192.168.1.1
[Install]
WantedBy=multi-user.target
다음과 같이 NetworkManager-wait-online.service를 활성화했습니다.
#systemctl enable NetworkManager-wait-online.service
시스템이 시작되면 서비스 파일이 실패하고 systemctl status 01-static-route.service
다음 메시지를 반환합니다.
# systemctl status 01-static-route.service
● 01-static-route.service - Static route to the DMZ
Loaded: loaded (/etc/systemd/system/01-static-route.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2015-04-13 16:40:11 BST; 28s ago
Process: 558 ExecStart=/usr/bin/ip route add 192.168.0.0/24 via 192.168.1.1 (code=exited, status=2)
Main PID: 558 (code=exited, status=2)
Apr 13 16:40:11 archlap ip[558]: RTNETLINK answers: Network is unreachable
Apr 13 16:40:11 archlap systemd[1]: 01-static-route.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Apr 13 16:40:11 archlap systemd[1]: Failed to start Static route to the DMZ.
Apr 13 16:40:11 archlap systemd[1]: Unit 01-static-route.service entered failed state.
Apr 13 16:40:11 archlap systemd[1]: 01-static-route.service failed.
ip route add
실행시 네트워크 연결이 없어서 명령이 실패한 것 같습니다 .
이 문제를 해결하기 위해 systemd(또는 다른 방법)를 사용하여 영구 정적 경로를 추가하는 올바른 절차를 설명할 수 있는 사람이 있습니까?