기본 경로를 재설정하는 bash 명령/스크립트

기본 경로를 재설정하는 bash 명령/스크립트

저는 Openconnect VPN 클라이언트를 실행하기 위해 bash 스크립트를 작성한 여러 OpenWrt(임베디드 Linux) 라우터를 관리합니다. 클라이언트는 "vpnc-script"를 사용하여 원래 DHCP에서 제공한 기본 경로를 대체하는 경로를 설정합니다.

내 문제는 터널이 충돌하거나 프로세스가 종료될 때 기본 경로가 재설정되지 않아 라우터에 다시 연결할 수 있는 기본 경로가 없다는 것입니다.

지금까지 저는 게이트웨이 IP 주소로 변수를 수동으로 설정하여 이 문제를 해결해 왔습니다. 그러나 나는 이것이 필요하다고 생각하지 않습니다. 또한 라우터가 이동되면(다른 게이트웨이 뒤에 VPN 연결을 제공하기 위해) 스크립트에서 게이트웨이 변수를 수동으로 변경해야 합니다.

라우터가 부팅될 때 기본 경로가 올바르게(자동으로) 설정되므로 나중에 쉽게 트리거할 수 있는 방법이 있을 것이라고 확신하지만 평생 동안 찾을 수 없습니다!

Linux 시스템에 기본 경로를 재설정하도록 지시하는 쉬운 방법이 있습니까?

답변1

잘. 내 모든 스크립트에서 이전에 이것을 생각해 본 적이 없는 이유는 확실하지 않지만 쉬운 방법은 인터페이스를 재설정하는 것입니다.

ip link set eth0 down
ip link set eth0 up

답변2

기본 경로는 또 다른 경로일 뿐입니다. 삭제하면 커널이 이를 유지할 수 없습니다. 런타임 구성만 변경할 수 있습니다.

어딘가에 인터페이스를 구성한 경우 인터페이스를 다시 시작해 볼 수 있습니다(귀하의 답변에서 언급한 대로). 그러나 아직 그렇게 하지 않았다면 다른 솔루션이 필요합니다.

두 가지 옵션이 표시됩니다.

  • VPN 구성 스크립트에서 인터페이스를 구성하면 먼저 이전 기본 경로를 읽고 다른 곳에 저장합니다. 그런 다음 터널이 실패하면 다른 스크립트를 시작하여 저장한 내용을 읽고 다시 적용할 수 있습니다.
  • VPN 구성 스크립트가 별도의 경로 테이블(기본값으로 설정)을 사용하도록 합니다. 그런 다음 인터페이스가 다운되면 라우팅 테이블을 다시 전환하기만 하면 됩니다.

관련 정보