인터페이스가 작동 중일 때 정적 경로가 필요하고 인터페이스가 작동 중지될 때 이를 제거해야 하지만, 그 안의 셸 명령을 설명하는 인터페이스 구성 파일이 없습니다.
LibreSwan을 사용하여 생성된 IPSec 터널과 ipsec 데몬으로 생성된 터널 인터페이스 vti0이 있습니다. 구성은 다음과 같습니다.
conn dc
authby=secret
auto=start
type=tunnel
esp={{ ipsec_ike_alg }}
ike={{ ipsec_ike_alg }}
ikelifetime={{ ipsec_ikelifetime }}
keylife={{ ipsec_key_lifetime }}
ikev2=insist
rekey=no
fragmentation=yes
narrowing=yes
left={{ ipsec_local_ip }}
leftsubnet={{ ipsec_local_net }}
right={{ ipsec_remote_ip }}
rightsubnet={{ ipsec_remote_net }}
mark=5/0xffffffff
vti-interface=vti0
vti-routing=no
leftvti={{ ipsec_vti_local_ip }}
vti0 터널을 통해 이 IPsec 뒤의 서브넷으로 트래픽을 라우팅해야 합니다. 수동으로 수행하면 모든 것이 계획대로 작동합니다.
ip route add {{ ipsec_static_route }} dev vti0 src {{ ipsec_source_ip }}
하지만 vti0이 시작될 때 이 경로가 자동으로 나타나고 인터페이스가 종료되면 자동으로 사라지기를 원합니다. 내 스크립트를 /etc/network/if-up.d/ 및 /etc/network/if-down.d/에 넣으려고 했지만 작동하지 않습니다.
#!/bin/sh
if [ "$IFACE" = {{ ipsec_vti_interface }} ]; then
route add -net {{ ipsec_static_route }} dev {{ ipsec_vti_interface }}
fi
어쩌면 LibreSwan에는 특정 네트워크에 대해서만 경로를 생성하는 기본 방법이 있을까요? 아니면 제가 노트에 실수를 한 걸까요?