MacbookからVPN接続を設定したところ、正常に接続されているようです。
ただし、ホスト名が解決されないため、仕事用のコンピューターにアクセスできません:
$ ping myusername
ping: cannot resolve myusername: Unknown Host
できる限りのことを試したところ、このコマンドを実行すると、VPNネットワークとインターネットの両方を利用できるようになります。
Sudo route add -net 192.168.7.218 192.168.7.117 255.255.0.0
会社のDNSサーバーはIPでアクセスできます。 192.168から始まるすべてにそれらを使用するようにネットワークを構成するにはどうすればよいですか?
2つのオプションを変更して、VPN経由でネットワークにアクセスできる一時的な回避策を見つけました。
これらの2つの手順を実行するだけで、私の作業中のコンピューターをping可能にするのに十分です。
$ nslookup myusername
Server: 192.168.10.16
Address: 192.168.10.16#53
Name: myusername.universe.mycompany
Address: 192.168.11.56
$ ping myusername
PING myusername.universe.mycompany (192.168.11.56): 56 data bytes
64 bytes from 192.168.11.56: icmp_seq=0 ttl=126 time=126.164 ms
ただし、VPNを通過するようにすべてのトラフィックをトンネリングしたため、インターネットにアクセスできなくなりました
$ ping google.com
PING google.com (74.125.232.48): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
VPNを通過するタイミングと通常の接続を使用するタイミングを理解できるように、ネットワークを正しく設定するにはどうすればよいですか? Windowsサーバー名を正しく解決するために必要です。
コンソールコマンドの出力を投稿する必要がある場合は、正確にお知らせいただければ、喜んでそれを行います。
これは現在私にとって一種のショーストッパーであるため、どんな助けも高く評価されます。
ありがとう!
OSXによるネットマスクの設定に問題があるようです。これは、Snow LeopardとMountain Lionの両方でPPTP VPNを使用した私の経験であり、このスレッド here によってサポートされています。
私は解決策を見つけました ここ 、これはppp0トラフィックのルーティングルールを設定することを含みます。
基本的に:
$ Sudo <your_text_editor_of_choice> /etc/ppp/ip-up
#!/bin/sh
/sbin/route add -net 192.168 -interface ppp0
$ Sudo chmod 755 /etc/ppp/ip-up
これにより、VPNに接続するたびにルーティングルールが設定されます。
resolverのマンページ を見たいと思うかもしれません
1つのソリューションを引用するには:
特定のクライアントの構成は、このマニュアルページで説明されている形式のファイルから読み取ることができます。これらは現在、システムによって/etc/resolv.confファイルと/ etc/resolverディレクトリにあるファイルにあります。ただし、クライアント構成はファイルストレージに限定されません。 DNSマルチクライアント検索戦略の実装では、システム構成データベースなどの他のデータソースでクライアント構成を見つけることもできます。 DNSシステムのユーザーは、構成データのソースについて想定しないでください。
私の知る限り、example.com
に特別なネームサーバーが必要な場合は、/etc/resolver
という名前のファイルをそのドメインのネームサーバーのIPとともにexample.com
に配置する必要があります--resolv.conf
を使用できます構文、覚えていません。しかし、あなたはそれを理解することができるはずです:)
編集:プロセスの自動化に関する限り、AppleScriptまたはAutomatorでそれが可能であると確信しています。しかし、私はそれについて頭に浮かぶことは決してないので、そのトピックに関する2番目の質問が役立つかもしれません。
Mac OSX DNS解決は面白いです。これがクイックフィックスです。
次のコードをファイル名reset_dns
に入れます。
#!/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='MY VPN'
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")
setup_vpn_ips=$(get_dns_ips "$vpn_srvc_name" "Setup")
state_vpn_ips=$(get_dns_ips "$vpn_srvc_name" "State")
echo "set_dns_ips $pri_srvc_name $setup_vpn_ips $state_vpn_ips $setup_dns_ips $state_dns_ips"
set_dns_ips "$pri_srvc_name" $setup_vpn_ips $state_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)
echo "set_dns_ips $pri_srvc_name $setup_dns_ips"
set_dns_ips "$pri_srvc_name" $setup_dns_ips
rm $ip_file
fi
「MY VPN」という単語をVPN接続の名前に置き換えます。
VPNに接続したら、ターミナルウィンドウからreset_dns
を実行します
Mac OSXは、「プライマリ」ネットワーク接続に関連付けられたDNSサーバーのみを使用します。上記のコードは、VPN接続のDNSサーバーをプライマリネットワーク接続(通常はWi-Fiまたはイーサネット)に追加するため、VPN DNSサーバーが最初に使用され、次にプライマリ接続DNSサーバーが使用されます。
VPNから切断した後、reset_dns
コマンドを再度実行して、エントリを削除し、元のDNSサーバー構成を復元します。ただし、これはオプションであり、通常はDNSサーバーを関連付けたままにしておくだけでは何の問題もありません。
同じ問題がありました。私のホームルーターが私の仕事用システムと同じIP範囲にあることがわかりました。ホームルーターを別の範囲に変更したら、接続できました。