localhostでリッスンするためにnetnsにバインドする

localhostでリッスンするためにnetnsにバインドする

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-upOpenVPNスクリプトとして実行するように設定しました。

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コピーを実行する必要がありますか?他にはありませんか?

ベストアンサー1

おすすめ記事