ওএস এক্স> 10.6.5 ভিপিএন সহ ডিএনএস লিকআপ অর্ডার


13

ওএস এক্স 10.6.5 (.4 থেকে) আপডেট করার পরে, যখন আমার ভিপিএন সংযুক্ত থাকে তখন অ্যাপ্লিকেশনগুলি সঠিক ক্রমে (নেটওয়ার্ক প্রিফারেন্সিতে সার্ভিস অর্ডার অনুসারে) হোস্টের নাম সন্ধান করবে বলে মনে হয় না।

আমার বর্তমান সেটআপটি এয়ারপোর্ট পরিষেবাটির সামনে একটি সিসকো আইপিসেক ভিপিএন পরিষেবা। ডিএনএস সার্ভারগুলি স্বয়ংক্রিয়ভাবে ভিপিএন সংযোগের জন্য সেটআপ হয়ে যায় (যা ঠিক আছে), এবং এয়ারপোর্ট পরিষেবা ডিএনএস আমার রাউটারের দিকে নির্দেশ করছে (192.168.1.1, যা ওপেনডিএনএস সার্ভারগুলিতে নির্দেশিত)।

আমার ভিপিএন সংযুক্ত থাকাকালীন আমি প্রথমে ডিপিএস ডিভিএসের ভিপিএন ডিএনএস সার্ভারগুলির মধ্য দিয়ে যেতে চাই, তবে আমার সমস্ত অ্যাপ্লিকেশন (ফায়ারফক্স, থান্ডারবার্ড, এসএসএস) আমার এয়ারপোর্ট ডিএনএস সার্ভারটি প্রথমে (ওপেনডিএনএস) ব্যবহার করছে বলে মনে হচ্ছে।

এটি আপডেটের ঠিক আগে কাজ করছিল।

কোন সাহায্যের জন্য ধন্যবাদ।

** সম্পাদনা **

আমি এই পোস্টটি জুড়ে এসেছি , এবং গৃহীত উত্তরে কমান্ডগুলি চালিত করেছি। যদিও এটি সাহায্য করবে বলে মনে হয় নি।

আরও কিছুটা অনুসন্ধান করার পরে, আমি এই কমান্ডটি পেয়েছিলাম: স্কুটিল - ডিএনএস

কমান্ড থেকে আউটপুট নীচে। সবকিছু ঠিকঠাক মনে হচ্ছে, কেবলমাত্র আমি মনে করি রেজোলভার # 2 এর আগে আসা উচিত এবং সমাধান সমাধান # 1 এ একটি অনুসন্ধান ডোমেন রয়েছে (এটি সম্ভবত foobar.com নয়, তবে আসল ভিপিএন ডোমেন)। আমি মনে করি এটি বাগ (বা যা কিছু হোক) মিথ্যা ছিল। আমি ম্যানুয়ালি এটি নির্দিষ্ট করেছিলাম না, এবং এটি আমার এয়ারপোর্ট সংযোগের জন্য ডিএনএস ট্যাবে নেই। যখন ভিপিএন সংযোগ বিচ্ছিন্ন হয়ে যায়, সেই অনুসন্ধান ডোমেনটি সেখানে নেই, এবং সমাধানকারী # 2 চলে গেছে, যেমনটি হওয়া উচিত।

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

** সম্পাদনা **

ঠিক আছে, যতক্ষণ না কেউ আমার প্রশ্নের উত্তর দিতে সক্ষম না হয়, আমি নীচে উল্লিখিত কাজের সাথে সহায়তার জন্য একটি স্ক্রিপ্ট লিখেছি। আপনি আপনার ভিপিএন সংযুক্ত করার পরে এটি চালানো উচিত এবং সংযোগ বিচ্ছিন্ন হওয়ার পরে আবার দৌড়াতে হবে (এটি স্বয়ংক্রিয়ভাবে চালানোর কোনও উপায় আমি খুঁজে পাইনি)। কয়েকটি নোট:

  1. আমার অ্যাকাউন্টটি আনলকযুক্ত নেটওয়ার্ক পছন্দগুলি সহ অ্যাডমিন হিসাবে চালিত হয়, সুতরাং আমি নিশ্চিত না যে এই স্ক্রিপ্টটি অন্য কোনও ক্ষেত্রে কীভাবে সুষ্ঠু হবে।

  2. আপনাকে স্ক্রিপ্টে vpn_srvc_name সেট করতে হবে, আপনি এটি অনুমান করেছিলেন, ভিপিএন পরিষেবা নাম।

  3. আমি নিশ্চিত যে এটি করার সম্ভবত একটি সহজ উপায় আছে, তাই আপনার মন্তব্য পোস্ট করতে দ্বিধা বোধ করবেন।

এই পান্ডুলিপি:

#!/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

** সম্পাদনা **

দেখে মনে হচ্ছে এটি লায়নতে এখনও একটি সমস্যা is আমি শিরোনাম আপডেট করছি এবং একটি ট্যাগ যুক্ত করছি।

** সম্পাদনা **

স্পষ্টতই সিংহ ওয়াই-ফাইতে এয়ারপোর্ট পরিষেবাটির নতুন নামকরণ সহ কিছু বেতার পরিবর্তন আনল। যদি আমি একটি ওয়্যারলেস সংযোগের মাধ্যমে তাদের ভিপিএন এর সাথে সংযোগ স্থাপন করি তবে আমি সরবরাহ করা কাজের স্ক্রিপ্ট নিয়ে সমস্যা সৃষ্টি করতে পারে issues সিংহ (কোনও কারণে) এয়ারপোর্ট নামক পরিষেবাটি ফণীর নীচে রাখে। এটি ঠিক করতে, আপনার এয়ারপোর্টের পাশাপাশি আপনার ওয়াই-ফাই পরিষেবাটির নতুন নামকরণ করতে হবে। আপনি যদি Wi-Fi নাম রাখতে চান তবে আপনাকে অবশ্যই প্রথমে এটির নতুন নামকরণ করতে হবে, তারপরে আবার নামটি Wi-Fi এ রাখতে হবে।


আপনি যখন সিস্টেমের পছন্দগুলি দেখুন এবং নেটওয়ার্কগুলিতে ক্লিক করুন, তখন বাম দিকে ভিপিএন সংযোগের অধীনে উন্নত (নীচের ডানদিকে কর্নার) নির্বাচন করুন। আপনার এখন শীর্ষে একটি ডিএনএস ট্যাব দেখতে হবে। বামদিকে ডিএনএসের জন্য আইপি রয়েছে এবং ডানদিকটি আপনার ডোমেনটি দেখায়। এগুলি কি সঠিক (ভিপিএন ডিএনএস সার্ভারের দিকে ইঙ্গিত করছে)?
এভারেট

হ্যাঁ, তারা সঠিক।
সাইট্রাসমুজ

Set_dns_ips এ রেখাটি হওয়া উচিত networksetup -setdnsservers "$@"। আমার ম্যাক প্রোতে দুটি ইথারনেট সংযোগ রয়েছে ("ইথারনেট 1" এবং "ইথারনেট 2" ডিফল্ট নাম) এবং তাই সেগুলি উদ্ধৃত করতে হবে। সম্পাদনা: কেন এটি করবেন
ক্রিস আর ডোনেলি

আপনি ঠিক বলেছেন, ক্রিস। আমি স্ক্রিপ্ট আপডেট করেছি। আপনি "এটি কেন করবেন" বলতে কী বোঝায় তা নিশ্চিত নন।
সাইট্রাসমুজ

দুঃখিত, @ সাইট্রাসমুজ আমি কেন মন্তব্যটি সম্পাদনা করেছি তা বলার চেষ্টা করছিলাম; আমি সাবমিট হিট তখন বুঝতে পেরেছিলাম যে আমি কেন এটি পরিবর্তন করতে চাই নি এবং কোনও ভাল কারণ ছাড়াই পরিবর্তনের পক্ষে পরামর্শ হিসাবে আসতে চাইনি।
ক্রিস আর ডোনেলি

উত্তর:


1

আমার ক্ষেত্রে, FQDN অনুরোধগুলি সঠিক অভ্যন্তরীণ ঠিকানার সমাধান করছে না। পরিবর্তে, তারা বাহ্যিক ঠিকানার দিকে ইশারা করছিল।

আমি আইপিস্কের মাধ্যমে আমার সিসকো এএসএ সংযোগ করি। নেটওয়ার্ক সংযোগে অর্ডারটি সঠিকভাবে সেটআপ করা অবস্থায়, ডিএনএস অনুরোধগুলি 10.6.5 এ আপডেট হওয়ার পরে আদেশটি অনুসরণ করে না।

এটিকে ঘিরে কাজ করার জন্য, আমি নিজেই আমার ভিপিএন এর জন্য ডিএনএস সার্ভারটি বিমানবন্দর সংযোগের জন্য (যেহেতু আমি বেতারহীন) নিযুক্ত করেছি assigned ভিপিএন সংযোগটি সম্পন্ন করার পরে আমি ম্যানুয়ালি যুক্ত ডিএনএস ঠিকানা সরিয়ে ফেলি।


হ্যাঁ, এটি আমারও কাজ নয় (তবে খুব বিরক্তিকর)। আমি খুশি যে অন্য কারও এই সমস্যাটি হচ্ছে, কারণ মনে হয় আমিই একজন। আমি মনে করি অভ্যন্তরীণ ডোমেনগুলির সর্বাধিক অনুসন্ধান ব্যর্থ হবে এবং সঠিক ডিএনএস সার্ভারে ফিরে যাবে বলে অন্যরা লক্ষ্য নাও করতে পারে। আমার ক্ষেত্রে তবে, কয়েকটি অভ্যন্তরীণ ডোমেন রয়েছে যা (কোনও কারণে) বাহ্যিক ডিএনএস সার্ভারগুলিতে প্রবেশ রয়েছে।
সাইট্রাসমুজ

@ সিট্রাসমুজ এর থেকে আরও ভাল পদ্ধতির হতে হবে, আপনার কি কম ম্যানুয়াল এবং আরও শক্তিশালী কিছু নিয়ে ভাগ্য আছে?
মাইইটি

না, আমি এখনও কিছুই দেখতে পাই না।
সাইট্রাসমূজ

1

আপনার ভিপিএন সংযোগে ডিফল্ট রুট তৈরি করা থেকে ওএস এক্স ১০.৮ বন্ধ করতে, ইন্টারনেট কানেক্ট (অ্যাপ্লিকেশনগুলিতে) খুলুন। সংযুক্ত মেনু থেকে বিকল্পগুলি চয়ন করুন, তারপরে "ভিপিএন সংযোগের মাধ্যমে সমস্ত ট্র্যাফিক প্রেরণ করুন" বিকল্পটি চেক করুন। ঠিক আছে ক্লিক করুন, এবং আপনি সম্পন্ন করেছেন।

ভিপিএন সংযোগের অন্যদিকে সাবনেটে একটি কাস্টম রুট তৈরি করতে, বাকী ইঙ্গিতটি পড়ুন ...

রুট হিসাবে, / ইত্যাদি / পিপিপি / আইপি-আপ তৈরি করুন এবং নিম্নলিখিত কোডটিতে রাখুন:

#!/bin/sh
# When the ppp link comes up, this script is called with the following
# parameters
#       $1      the interface name used by pppd (e.g. ppp3)
#       $2      the tty device name
#       $3      the tty device speed
#       $4      the local IP address for the interface
#       $5      the remote IP address
#       $6      the parameter specified by the 'ipparam' option to pppd

DEBUGFILE=/tmp/ip-up-debug.txt
## echo "1:$1 2:$2 3:$3 4:$4 5:$5 6:$6" > $DEBUGFILE
NET=`echo $5 | cut -d. -f1,2,3`
## echo $NET >> $DEBUGFILE

case $NET in 192.168.3)
     ## echo "CASE1" >> $DEBUGFILE
     RESULT=`/sbin/route add -net 192.168.30.0 $5 255.255.255.0`
     ##echo $RESULT >> $DEBUGFILE
     ;;
     192.168.2)
     ## echo "CASE2" >> $DEBUGFILE
     RESULT=`/sbin/route add -net 192.168.20.0 netmask 255.255.255.0 gw $5`
     ## echo $RESULT >> $DEBUGFILE
     ;;
     192.168.1)
     ## echo "CASE3" >> $DEBUGFILE
     RESULT=`/sbin/route add -net 192.168.10.0 netmask 255.255.255.0 gw $5`
     ## echo $RESULT >> $DEBUGFILE
     ;;
     *)
     ## echo "No match" >> $DEBUGFILE
     ;;
esac

মন্তব্য:

  1. আপনি ফাইলটি তৈরি করার পরে, একটি করুন chmod u+x /etc/ppp/ip-up
  2. $ 5 ভেরিয়েবলটি আপনার দূরবর্তী আইপি ঠিকানা (দূরবর্তী নেটওয়ার্কে আপনার আইপি ঠিকানা)।
  3. প্রথম কেস স্টেটমেন্টে, 192.168.x এন্ট্রিটি আপনার দূরবর্তী নেটওয়ার্কের প্রথম তিনটি অক্টেটে পরিবর্তন করুন। এই উদাহরণস্বরূপ, দূরবর্তী আইপি 192.168.3.1, এবং রিমোট নেটওয়ার্ক 192.168.30.0/24 হয় (রিমোট ভিপিএন বক্সটি রাউটিং করছে - এটি তাই স্যাম্বা প্রক্সি এআরপি ছাড়াই কাজ করবে)।
  4. এই স্ক্রিপ্টটি কী করছে তা দেখার জন্য ডিবাগ লাইনগুলি থেকে কমেন্টস (## 'সরিয়ে দিন)। আউটপুট /tmp/ip-up-debug.txt ফাইলে লেখা হবে। আপনার পরীক্ষা শেষ হয়ে গেলে ## এর পিছনে প্রবেশ করতে ভুলবেন না।
  5. এই স্ক্রিপ্টটিতে তিনটি পৃথক ভিপিএন সংযোগের জন্য বিকল্প রয়েছে। আপনার বিভিন্ন ভিপিএনগুলির বিভিন্ন নেটওয়ার্ক ঠিকানায় কেবল 192.168.x এন্ট্রি পরিবর্তন করুন।

এখানে পাওয়া গেছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.