15分ごとにcronで実行されるスクリプトがあります。このスクリプトは、私のDNSサーバーをpingして動的に変更されるIPを更新するように設計されています。このスクリプトwlan
はeth0
。
eth0
ただし、他のプロセスはインターネットへの基本インターフェイスとして使用する必要があります。
他のプロセスを中断することなく特定のプロセスに対してのみこれを行うにはどうすればよいですか?標準出力を指示するのと同じ方法でインターフェイスを介してトラフィックを指示する方法はありますか?良いls -al > /dev/tty2'
。chroot
サンドボックス環境を提供していただければ、お手伝いできますか?
ベストアンサー1
解決策は、高度なルーティングで使用できるようにNetfilterパケット表示を設定することです。プロセスIDによるマッチングはできませんが、NetfilterではプロセスUIDまたはGIDによるマッチングが可能です。この場合、新しいシステムユーザー(特にこのタスクの場合)を作成するのが最も簡単な回避策のようです。
iptables -t mangle -A OUTPUT -m owner --uid-owner wlanping -j MARK --set-mark 42
/etc/iproute2/rt_tablesに新しいルーティングテーブル(forecewlan)を作成し、wlanゲートウェイをデフォルトゲートウェイとして選択します。
ip route add default via $WLAN_GATEWAY
そして、次のタグを持つパケットに対してこのルーティングテーブルを強制します。
ip rule add fwmark 42 table forcewlan
おそらく、デフォルトのルーティングテーブルからそのエントリをコピーする必要があります。
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.100