インターフェイスが動作しているときは静的パスが必要で、インターフェイスが停止したときにそれらを削除する必要がありますが、その中のシェルコマンドを説明するインターフェイス設定ファイルはありません。
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には、特定のネットワークに対してのみルートを生成する基本的な方法がありますか?それとも私がノートに間違いを犯したのでしょうか?