আমি কীভাবে পরে ডিএইচসিপি 3-সার্ভার শুরু করতে পারি, যাতে এটি লোড হওয়ার আগে ব্রিজ ইন্টারফেসের আরম্ভের জন্য অপেক্ষা করে?


8

আমার কাছে উবুন্টু 10.04 সার্ভার বর্তমানে ডিএইচসিপি 3-সার্ভারের পাশাপাশি ভার্চুয়াল মেশিনগুলির সাথে ব্যবহারের জন্য একটি ব্রিজড ইন্টারফেস (বিআর 0) রয়েছে। আমার সমস্যাটি হ'ল যখন সার্ভারটি রিবুট হয় তখন ব্রিজড ইন্টারফেস আনার কারণে অতিরিক্ত বিলম্বের কারণে ডিএইচসিপি-সার্ভার লোড হতে ব্যর্থ হয়।

মূলত ডিএইচসিপি 3-সার্ভারের সাথে বুট চক্রের শেষ অবধি ব্যবহারের জন্য ব্র্যাকের একটি আইপি ঠিকানা নেই, DHCP3-সার্ভারটি লোড করার চেষ্টা করার পরেও।

একবার সার্ভার বুট হয়ে গেলে আমি কোনও সমস্যা ছাড়াই '/etc/init.d/dhcp3-server start' চালাতে পারি।

আমি যেভাবে পারি সেগুলির কি কোনও উপায় আছে: - ডিএইচসিপি-সার্ভারটি চাপ দেওয়ার আগে ইন্টারফেসটি লোড না হওয়া পর্যন্ত অপেক্ষা করতে বাধ্য করুন? - ডিএইচসিপিইএন-সার্ভারের পরে সবকিছু শেষ হয়ে যাওয়ার পরে?

উত্তর:


9

একটি সমাধান হ'ল ডিএইচসিপি-সার্ভারকে স্বয়ংক্রিয়ভাবে শুরু না হওয়া এবং তারপরে /etc/network/interfacesআপনার ব্রিজ সংজ্ঞা দেওয়ার জন্য ফাইলটিতে নিম্নলিখিত দুটি লাইন যুক্ত করুন

post-up /etc/init.d/dhcp3-server start
pre-down /etc/init.d/dhcp3-server stop

সুতরাং এটি এর মত চেহারা শেষ হবে

iface br0 inet static
    bridge_ports eth0 eth1
    address 192.168.1.2
    broadcast 192.168.1.255
    netmask 255.255.255.0
    gateway 192.168.1.1
    post-up /etc/init.d/dhcp3-server start
    pre-down /etc/init.d/dhcp3-server stop

এই পদ্ধতিতে নেটওয়ার্ক পরিচালনা (ifup / ifdown, not নেট-নেট-ম্যানেজার) ব্রিজটি আনার পরে DHCP সার্ভারটি শুরু করবে এবং সেতুটি সরানোর আগে এটি বন্ধ করে দেবে।


আমি উভয় উত্তর পরীক্ষা করেছি এবং এই পোস্ট-আপ / প্রাক-ডাউন সমাধানটি অনেক বেশি ক্লিনার এবং আপগ্রেড বন্ধুত্বপূর্ণ। দুর্দান্ত পরামর্শের জন্য গাদা ধন্যবাদ! আমি এর মতো সহজ সমাধানের জন্য উচ্চ এবং নিম্ন সন্ধান করেছি
user2009

আমার আনন্দ;) এর প্রশংসা করা সর্বদা দুর্দান্ত।
লাসেপলসেন

2

আপনি /etc/init.d/dhcp3-serverকোনও আইপি ঠিকানা উপলভ্য হওয়ার জন্য অপেক্ষা করতে স্টার্টআপ স্ক্রিপ্টটি পরিবর্তন করতে পারেন br0। উদাহরণস্বরূপ: (সতর্কতা: অরক্ষিত কোড!)

# wait 5 secs between br0-ready tests
wait_time_between_probes=5
# maximum number of attempts (i.e., timeout)
max_attempts=10

log_progress_msg "Waiting for br0 to get an IP address"
for n in $(seq 1 $max_attempts); do
  if /sbin/ifconfig br0 | egrep -q "inet addr:" ; then
    # IP address ready on br0, exit loop
    break
  else
    sleep $wait_time_between_probes
  fi
done
if [ "$n" = "$max_attempts" ]; then
    log_warning_msg "Maximum number of attempts reached, but br0 has no IP address yet" 
    log_warning_msg "Continuing anyway but DHCP3 server might not start correctly"
fi 

স্নিপেটটি case ... start)ডিএইচসিপি 3 ডিমন শুরুর আগে অংশটির মধ্যেই স্টার্টআপ স্ক্রিপ্টে যেতে হবে । অবশ্যই, আপনার পরিবেশের সাথে ম্যাচ করার জন্য অপেক্ষা করার সময় এবং প্রচেষ্টার সংখ্যাটি টিউন করা উচিত (আইপি ঠিকানা পেতে BR0 পেতে সর্বোচ্চ কত সময় লাগে?)


এটি অবশ্যই সঠিক পথে রয়েছে। আমি এটিকে "কেস" start 1 "শুরু করার পরে)" /etc/init.d/dhcp3-server "তবে" শর্ত "/ sbin / ifconfig br0 | fgrep -q" অ্যাডার: "" ছাড়াও সফল বলে মনে হচ্ছে ব্রিজ ইন্টারফেস অনলাইন। "/ Sbin / ifconfig br0 | fgrep -q" addr: "" টার্মিনালে টাইপ করলে আউটপুট দেয় না।
user2009

এছাড়াও স্ক্রিপ্টের শেষে দুটি 'লগ_ওয়ার্নিং_এমএসজি' তুচ্ছ হলেও সাফল্য এবং ব্যর্থতা নির্বিশেষে প্রদর্শিত হবে। ব্যর্থতায় এই বার্তাগুলি সঠিকভাবে দেখাতে যদি (max_attempts = n) স্টাইলের বিবৃতি দিয়ে তারা লগের ভিতরে আরও ভাল হতে পারে?
user2009

এছাড়াও ব্রিজ ইন্টারফেসটি স্বাভাবিকভাবে ইন্টারফেসগুলি লোড হওয়ার পরে 5 - 10 সেকেন্ড সময় নেয়, ডিএইচসিপি 3-সার্ভারের ব্যর্থ হওয়ার জন্য যথেষ্ট দীর্ঘ।
ব্যবহারকারী2009

@ ইউজার ২০০৯ grep -q: লাইনটি সম্পর্কে : ১. আমি মনে করি ম্যাচটি ব্যর্থ হয় কারণ ব্রিজটি আইপিভি address ঠিকানাটি সঙ্গে সঙ্গেই এটি অর্জন করে। যদি আপনি কেবল আইপিভি 4 ঠিকানাতে আগ্রহী হন তবে কেবল grepলাইনটি প্রতিস্থাপন করুন grep -q 'inet addr:'(ইতিমধ্যে উপরে করা হয়েছে); অন্যথায়, আরও জটিল নিয়মিত এক্সপ্রেশন খুঁজে পাওয়া দরকার যা আপনার ব্রিজের সমস্ত সম্ভাব্য চূড়ান্ত আইপি ঠিকানার সাথে মেলে । 2. -qবিকল্পটি আউটপুটকে দমন করে (ঠিক যেমন > /dev/null)
রিকার্ডো মুরি

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