Bindを実行するDebian Jessieがあります。 OpenVPN接続が確立されました。まず、resolv.conf
ローカルバインディングを有効にします。
nameserver 127.0.0.1
nameserver 4.2.2.4
このようにシステムを構成したいと思います。確認するインターネットへのプログラムアクセスただそのVPN接続を介して(どこにもアクセスできない)、残りはインターネットに直接アクセスできます。私の考えではみんな4.2.2.4
プログラムはローカルバインディングを使用してドメイン名を解決しますresolv.conf
。
私はNetwork Namespaceが仕事に適したツールだと決めました。 VPNインターフェイスをNetwork Namespaceに移動し(ループバック以外に使用できる唯一の接続です)、次の手順を実行しました。確認する私のネットワーク名前空間のプログラム。次のスクリプトを作成し、route-up
OpenVPNスクリプトとして実行するように設定しました。
NS=zzz
if [ ! -f /var/run/netns/$NS ]; then
/sbin/ip netns add $NS
fi
/sbin/ip link set $dev netns $NS
/sbin/ip netns exec $NS /sbin/ifconfig lo up
/sbin/ip netns exec $NS /sbin/ifconfig $dev $ifconfig_local pointopoint $ifconfig_remote up
/sbin/ip netns exec $NS /sbin/route add default gw $ifconfig_remote metric 1024
Bindが私のネットワーク名前空間のループバックインターフェイスを受信していないので、すべての名前解決要求が外部DNSに送信されることを除いて、私にはうまくいきます。この問題をどのように解決できますか? 2つのループバック(通常のループバックとnetnsループバック)が同じであることを何とか指定できますか?それとも私の名前空間で別のBindコピーを実行する必要がありますか?他にはありませんか?