Setelah memperbarui ke OS X 10.6.5 (dari .4), aplikasi tampaknya tidak mencari nama host dalam urutan yang benar (sesuai dengan urutan layanan di Preferensi Jaringan) ketika VPN saya terhubung.
Pengaturan saya saat ini adalah layanan Cisco IPSec VPN di depan layanan AirPort. Server DNS secara otomatis diatur untuk koneksi VPN (yang OK), dan DNS layanan AirPort menunjuk ke router saya (192.168.1.1, yang diarahkan ke server OpenDNS).
Ketika VPN saya terhubung, saya ingin agar pencarian DNS melalui server DNS VPN terlebih dahulu, tetapi semua aplikasi saya (Firefox, Thunderbird, ssh) tampaknya menggunakan server DNS AirPort saya terlebih dahulu (OpenDNS).
Ini berfungsi dengan baik sebelum pembaruan.
Terima kasih atas bantuannya.
** sunting **
Saya menemukan posting ini , dan menjalankan perintah dalam jawaban yang diterima. Tapi sepertinya itu tidak membantu.
Setelah mencari sedikit lebih banyak, saya menemukan perintah ini: scutil --dns
Output dari perintah di bawah ini. Semuanya terlihat benar, kecuali saya pikir resolver # 2 harus didahulukan, dan ada domain pencarian di resolver # 1 (itu jelas bukan foobar.com, tetapi domain VPN yang sebenarnya). Saya pikir ini adalah kebohongan bug (atau apa pun itu). Saya tidak menentukannya secara manual, dan itu tidak ada di tab DNS untuk koneksi AirPort saya. Ketika VPN terputus, domain pencarian itu tidak ada di sana, dan resolver # 2 hilang, sebagaimana mestinya.
resolver #1
search domain[0] : foobar.com
nameserver[0] : 192.168.1.1
order : 200000
resolver #2
domain : foobar.com
nameserver[0] : 172.30.50.100
nameserver[1] : 172.30.50.80
order : 100200
resolver #3
domain : local
options : mdns
timeout : 2
order : 300000
resolver #4
domain : 254.169.in-addr.arpa
options : mdns
timeout : 2
order : 300200
resolver #5
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 2
order : 300400
resolver #6
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 2
order : 300600
resolver #7
domain : a.e.f.ip6.arpa
options : mdns
timeout : 2
order : 300800
resolver #8
domain : b.e.f.ip6.arpa
options : mdns
timeout : 2
order : 301000
** sunting **
Baiklah, sampai seseorang dapat menjawab pertanyaan saya, saya telah menulis sebuah skrip untuk membantu menyelesaikannya di bawah ini. Itu harus dijalankan setelah Anda menghubungkan VPN Anda, dan jalankan lagi setelah Anda terputus (saya belum menemukan cara untuk menjalankannya secara otomatis). Beberapa catatan:
Akun saya dijalankan sebagai Admin dengan Preferensi Jaringan tidak dikunci, jadi saya tidak yakin bagaimana skrip ini adil dalam hal apa pun kecuali.
Anda perlu mengatur vpn_srvc_name dalam skrip ke nama layanan Anda, Anda dapat menebaknya, vpn.
Saya yakin mungkin ada cara yang lebih mudah untuk melakukan ini, jadi jangan ragu untuk mengirim komentar Anda.
Naskah:
#!/bin/bash
function get_pri_srvc_id ()
{
cat <<EOF | scutil | \
grep 'PrimaryService' | \
awk -F': ' '{print $2}'
show State:/Network/Global/IPv4
EOF
}
function get_srvc_name ()
{
cat <<EOF | scutil | \
grep 'UserDefinedName' | \
awk -F': ' '{print $2}'
show Setup:/Network/Service/$1
EOF
}
function get_srvc_ids ()
{
cat <<EOF | scutil | \
sed -nEe '
/ServiceOrder/ {
:ids
n
/[0-9]+ :/ {
s/ *[0-9]+ : ([0-9A-Z-]+) */\1/p
b ids
}
}'
show Setup:/Network/Global/IPv4
EOF
}
function get_srvc_id_by_name ()
{
local srvc_ids=$(get_srvc_ids)
for srvc_id in $srvc_ids
do
local srvc_name=$(get_srvc_name "$srvc_id")
if [[ "$srvc_name" == "$1" ]]
then
echo $srvc_id
return
fi
done
}
function get_dns_ips ()
{
local srvc_id=$(get_srvc_id_by_name "$1")
cat <<EOF | scutil | \
sed -nEe '
/ServerAddresses/ {
:ips
n
/[0-9]+ :/ {
s/ *[0-9]+ : ([0-9.]+) */\1/p
b ips
}
}'
show $2:/Network/Service/$srvc_id/DNS
EOF
}
function set_dns_ips ()
{
networksetup -setdnsservers "$@"
}
vpn_srvc_name='NAME OF VPN SERVICE'
ip_file='/tmp/setup_dns_ips'
pri_srvc_id=$(get_pri_srvc_id)
pri_srvc_name=$(get_srvc_name "$pri_srvc_id")
if [[ ! -e "$ip_file" ]]
then
setup_dns_ips=$(get_dns_ips "$pri_srvc_name" "Setup")
state_dns_ips=$(get_dns_ips "$pri_srvc_name" "State")
vpn_ips=$(get_dns_ips "$vpn_srvc_name" "State")
set_dns_ips "$pri_srvc_name" $vpn_ips $setup_dns_ips $state_dns_ips
if [[ -z "$setup_dns_ips" ]]
then
setup_dns_ips="Empty"
fi
echo $setup_dns_ips >$ip_file
else
setup_dns_ips=$(cat $ip_file)
set_dns_ips "$pri_srvc_name" $setup_dns_ips
rm $ip_file
fi
** sunting **
Sepertinya ini masih menjadi masalah di Lion juga. Saya memperbarui judul dan menambahkan tag.
** sunting **
Rupanya Lion juga membawa beberapa perubahan nirkabel, termasuk mengganti nama layanan AirPort ke Wi-Fi. Ini dapat menyebabkan masalah dengan skrip penyelesaian yang saya berikan jika ada yang terhubung ke VPN mereka melalui koneksi nirkabel. Lion (karena alasan tertentu) menyimpan layanan bernama AirPort di bawah tenda. Untuk memperbaikinya, Anda perlu mengubah nama layanan Wi-Fi Anda menjadi sesuatu selain AirPort. Jika Anda ingin menyimpan nama Wi-Fi, Anda harus mengganti namanya menjadi sesuatu yang berbeda terlebih dahulu, kemudian ganti namanya kembali ke Wi-Fi.
networksetup -setdnsservers "$@"
. Mac Pro saya memiliki dua koneksi Ethernet ("Ethernet 1" dan "Ethernet 2" adalah nama standarnya) sehingga harus dikutip. EDIT: mengapa melakukan iniJawaban:
Dalam kasus saya, permintaan FQDN tidak menyelesaikan ke alamat internal yang benar. Sebaliknya, mereka menunjuk ke alamat eksternal.
Saya terhubung ke ASA Cisco saya melalui IPsec. Sementara pesanan diatur dengan benar dalam koneksi jaringan, permintaan DNS tidak mengikuti pesanan sejak memperbarui ke 10.6.5.
Untuk mengatasinya, saya secara manual menetapkan server DNS untuk VPN saya ke koneksi Bandara (karena saya nirkabel). Setelah saya selesai dengan koneksi VPN, saya menghapus alamat DNS yang ditambahkan secara manual.
sumber
Untuk menghentikan OS X 10.8 dari membuat rute default ke koneksi VPN Anda, buka Internet Connect (dalam Aplikasi). Pilih Opsi dari menu Sambungkan, lalu hapus centang opsi "Kirim semua lalu lintas melalui koneksi VPN". Klik OK, dan Anda selesai.
Untuk membuat rute khusus ke subnet di sisi lain koneksi VPN, baca petunjuk lainnya ...
Sebagai root, buat / etc / ppp / ip-up, dan masukkan kode berikut:
Catatan:
chmod u+x /etc/ppp/ip-up
.Ditemukan di sini
sumber