2019년 7월 27일 토요일

network-manager, vpn, ubuntu, netplan

가상머신 안에서 항상 VPN을 연결하고 싶었다.

일단 network-manager-l2tp 패키지를 설치하고, 프로필은 실은 이미 설정된 다른 데가 있어서, 파일만 복사해다 /etc/Network/system-connections 안에 넣어줬다.

하지만 nmcli c u VPN_ID 만으로는 접속이 되지 않았다.
"Error: Connection activation failed: Could not find source connection." 이런 오류가 떴다.

이리저리 찾아보고 내린 결론은 nmcli가 VPN을 입힐 연결을 보유하지 않고 있기 때문인 거였다.
network-manager에 ethernet 장치를 추가해주면 되려나 싶어서 찾아봤는데 딱히 뭐가 없었다.

그러다가 netplan이라는 게 /etc/network/interfaces 파일 대신 쓰이게 됐다는 걸 알았다. 한참 전부터 써오던 설치본과는 달라서 당황했다.
/etc/netplan/*.yml 파일을 보면 (이미 이더넷이 구동되고 있을 테니) ethernets 장치를 활성화해주는 설정이 있을 거다. 거기에 "renderer: NetworkManager"라고 위임해주는 부분을 넣고 sudo netplan apply 라고 하면 설정 파일이 적용된다.

/etc/NetworkManager/NetworkManager.conf 파일의 ifupdown managed=true 설정으로 바꾸라는 건 적용이 되어있긴 한데 netplan 하위로 붙은 셈이니까 아마 영향이 없었을 것이다.

이제 nmcli device status 해보면 이더넷이 managed로 잡힌다.
nmcli c u VPN_ID 해봐도 바로는 안 되어서 재부팅을 한 번 했고, 잘 된다.

부팅 때 항상 VPN을 먹일 방법이 network-manager 안에는 없어보이고 /etc/rc.local 파일에 기록해서 처리했다. 우분투의 방법은 https://askubuntu.com/a/886631 를 참조해 systemctl 기능 안에서 해결했다.