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로 전송된다는 점을 제외하면 나에게는 잘 작동합니다. 이 문제를 어떻게 해결할 수 있나요? 두 루프백(일반 루프백과 netns 루프백)이 동일하도록 어떻게든 지정할 수 있습니까? 아니면 내 네임스페이스에서 다른 Bind 복사본을 실행해야 합니까? 다른 건 없나요?