হোস্ট ফাইলটিতে একাধিক আইপি 1 এন্ট্রি নিযুক্ত করুন


29

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

এটি কি আমার হোস্ট ফাইলের জন্য কাজ করবে?

141.131.286.1   abc.efg.datastore.com   #primary

141.131.286.237 abc.efg.datastore.com   #secondary

উত্তর:


26

হোস্ট ফাইলটি এ জাতীয় প্রক্রিয়া সরবরাহ করে না। যদি আপনি একই নামের জন্য দুটি আইপি তালিকাবদ্ধ করেন তবে কেবলমাত্র প্রথমটি ব্যবহৃত হবে। সুতরাং, প্রাথমিক এবং মাধ্যমিক আইপি বলে কোনও জিনিস নেই।

এছাড়াও, হোস্ট ফাইলটি ইউআরএল হ্যান্ডেল করে না। এটি কেবল প্রশ্নের মধ্যে দেওয়া নামগুলির মতো পরিচালনা করে। একটি URL এ সম্পূর্ণ পথ এবং প্রোটোকল রয়েছে http://host/path/to/resource


ইউআরএল / হোস্ট সম্পর্কে বিভ্রান্তি দূর করতে ওপিএস প্রশ্নের শিরোনাম এবং নামকরণ সম্পাদনা।
dmourati

14

আপনি /etc/hostsফাইলের মাধ্যমে স্থিতিস্থাপকতা বা রাউন্ড রবিন লোড ভারসাম্য সরবরাহ করতে পারবেন না - এটি সেই উদ্দেশ্যে ডিজাইন করা হয়নি।

পরিবর্তে , আপনার বিকল্পগুলি ... (কোনও নির্দিষ্ট ক্রমে নয়)

  1. আপনার নেটওয়ার্কটি যথাযথভাবে কনফিগার করুন, যাতে কোনও লিঙ্ক বাদ পড়লে রুটগুলি পরিবর্তন হয়
  2. পরিচালিত পরিষেবা ব্যবহার করে ডিএনএস রাউন্ড-রবিন লোড ব্যালেন্সিং (ভাল আইডিয়া টিএম নয় ) ব্যবহার করুন (উদাঃ লোডডনস.কম বা ডিএনএসমেডেসি.কম) ইত্যাদি
  3. আউটবাউন্ড ট্র্যাফিকের জন্য স্থানীয় এল 3 লোড ব্যালেন্সার ব্যবহার করুন (HAProxy?) ব্যাক-এন্ডস হিসাবে প্রয়োজনীয় হিসাবে সংজ্ঞায়িত করা হয়েছে
  4. আপনার ওয়েব অ্যাপ্লিকেশনটিতেই স্থিতিস্থাপকতা তৈরি করুন

ডিএনএস রাউন্ড-রবিন লোড ব্যালেন্সিং সাধারণত স্থিতিস্থাপক নয়। একজনকে নির্বাচিত করা হয় এবং অন্যদের বিচার করা হয় না।
অ্যান্টি রাইত্সেল্লা চেনাশোনাগুলি

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

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

আমি সন্দেহ করি এটি ডাটাবেস সহ দুর্দান্ত কাজ করবে। তাদের একটি আইপি আনার প্রবণতা রয়েছে এবং এটি আটকে থাকে। অন্যদিকে একটি ইন্টারনেট ওয়েবসাইট দুর্দান্ত কাজ করবে।
এন্টি রাইতস্লা সার্কেল

এটি হোস্ট মেশিনের সমাধানের উপর নির্ভর করবে। যদি ডিএনএস রেজোলভারটি একটি নন-ক্যাচিং পরিষেবা হিসাবে সেট করা থাকে - বা সরাসরি ডিএনএস রেজিস্ট্রার্স ডিবিকে পোল করে, তবে এটি কার্যকর হবে। তবে আমি যেমন বলেছি, এটি একটি ভাল ধারণা নয় , এটি কেবল একটি ধারণা
বেন লেসানী - সোনাসি

3

/ ইত্যাদি / হোস্টগুলি রাউন্ড রবিন সমর্থন করে না তবে আপনি # রাউন্ডরবিন মন্তব্যে (অথবা আপনি যে কোনও অন্য ট্যাগ ব্যবহার করতে চান, এটি কেবল স্ক্রিপ্টের গ্রেপ লাইনে প্রতিফলিত করুন) এর সাথে ট্যাগ করা একটি এন্ট্রি প্রতিস্থাপন করতে একটি সাধারণ বাশ স্ক্রিপ্ট লিখতে পারেন) ।

#!/bin/bash
fqdnips=( $(nslookup sub.domain.com|grep Address:|awk -F\  '{ print $2 }'|grep -v '#') )

new=`printf "${fqdnips[@]}"`
old=`grep "#RoundRobin" /etc/hosts|awk -F\  '{ print $1 }'`
sed -i "s/$old/$new/g" /etc/hosts

উপরের স্ক্রিপ্টটি sub.domain.com এর জন্য nslookup এর আউটপুট ধরে এবং এটিকে একটি অ্যারেতে সঞ্চয় করে। এরপরে এটি শীর্ষে সর্বাধিক মান প্রিন্ট করে এবং / # / হোস্টগুলিতে বরাদ্দকৃত # রাউন্ডরবিন ট্যাগের জন্য বিদ্যমান মানটি ধরে ফেলে ... শেষ পর্যন্ত, এটি একটি সেড প্রতিস্থাপন সম্পাদন করে

/ ইত্যাদি / হোস্ট ফাইল এন্ট্রি এর মত দেখতে হবে

127.0.0.1        localhost
::1              localhost
11.12.13.14      sub.domain.com      #RoundRobin

শেষ অবধি, এই স্ক্রিপ্টটি প্রতি ঘন্টা বা আরও কয়েক ঘন্টা চালানোর জন্য মূলের ক্রন্টব এ রাখুন এবং আপনার কাছে এখন একটি / ইত্যাদি / হোস্ট রাউন্ড-রবিন থাকবে।

এটি বিশেষত কার্যকর যদি আপনার কোনও কোডড পৃষ্ঠা থাকে যা কোনও এপিআই থেকে কিছু ডেটা টানছে এবং API সার্ভারের জন্য ডিএনএস অনুসন্ধান পৃষ্ঠার স্ক্রিপ্টের প্রয়োগে প্রচুর হ্যাং সময় ঘটাচ্ছে ... ফলে উচ্চতর সিপিইউ খরচ হবে যা অন্যথায় হবে একটি সহজ পৃষ্ঠা বলে মনে হচ্ছে। ব্যয়বহুল ডিএনএস চেহারা এড়াতে (বিশেষত যদি আপনার সাইটটি প্রতি মিনিটে তাদের ভারী ট্র্যাফিকের জন্য শত শত করে করে), আপনার দূরবর্তী API সার্ভারের FQDN সমাধান করার জন্য / ইত্যাদি / হোস্ট ব্যবহার করা উচিত। এটি API ডেটা টানতে এবং পৃষ্ঠাটি উত্পন্ন করার জন্য সিপিইউর ব্যবহার নাটকীয়ভাবে হ্রাস করবে।


ডিএনএস ক্যাচিং প্রতি মিনিটে আপনার শত শত লুকআপের কেস কেটে দেবে না?
জালোরাস

আমি ডিএনএস সার্ভারটি নিয়ন্ত্রণ করি না, এটিই কি আমি সেন্টোস ওয়েব সার্ভারে সেট আপ করতে পারি?
সাতালিংক


0

হ্যাঁ, এটি কাজ করবে।

যাইহোক, অনুসন্ধানের প্রক্রিয়াটি কোনও মিল খুঁজে না পাওয়া পর্যন্ত কেবল তালিকাটি করে।

সুতরাং লিখিত হিসাবে প্রশ্নের উত্তর হ্যাঁ, এটি একটি চ্যালেঞ্জ হতে চলেছে। কিন্তু দুর্গম কিছু নয়।

এটি ব্যবহার করে দেখুন: এই আইপি ঠিকানার প্রত্যেকটিরই আলাদা আলাদা নাম থাকা দরকার।


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

0

এটি হওয়ার সহজ উপায় হ'ল কেবলমাত্র ডাব্লুএসএস রুট ৫3 এর মতো একটি সর্বজনীন ডিএনএস পরিষেবা ব্যবহার করা। আপনি অগ্রাধিকার সহ এক রেকর্ডে একাধিক আইপি ঠিকানা লিখতে পারেন

abc.efg.datastore.com

10 141.131.286.1  
20 141.131.286.237 

যতক্ষণ না কোনও শংসাপত্র জড়িত না থাকে ততক্ষণ এটি কাজ করছে এবং আফাইক এমনকি কোনও মানদণ্ড বা সেরা অনুশীলনের বিরুদ্ধে নয়।

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


ব্রাউজারগুলি এটি হ্যান্ডেল করতে সক্ষম হবে, 10 টি উপলভ্য না হলে এটি 20 এ ফ্যালব্যাক হয়ে যায় It এটি অবশ্যই অ্যাপের উপর নির্ভর করে এবং আপনি উপলভ্যতার জন্য যাচাই করেছেন এমন পয়েন্টটিও থাকতে হবে - যদি আপনি আরও জটিল কিছু স্থাপন করতে চান তবে এবং ভারসাম্য সহ ভারী।
বোর্ত্রান

Aরেকর্ডগুলির একটি অগ্রাধিকার ক্ষেত্র নেই। কিছু অনুমোদিত ডিএনএস পরিষেবাদির রেকর্ড ওজন রয়েছে তবে এটি রেকর্ডগুলি অন্তর্ভুক্ত করে বা বাদ দিয়ে সম্ভাব্যভাবে করা হয়েছে।
ম্যাট নর্ডহফ

0

সেটআপ করা সহজ, দয়া করে নির্দেশ অনুসরণ করুন:

  1. dnsmasq ইনস্টল করুন
  2. /etc/resolv.conf সম্পাদনা করুন এবং "DNSserver 127.0.0.1" প্রথম ডিএনএস হিসাবে সেট করুন
  3. বিকল্প হিসাবে সাধারণ ডিএনএস যুক্ত করুন (উদাহরণস্বরূপ গুগল এক) "দ্বিতীয় নাম্বার হিসাবে নেমসারভার ৮.৮.৮.৮"
  4. আপনার / ইত্যাদি / হোস্ট ফাইলগুলিতে দুটি প্রয়োজনীয় রেকর্ড রয়েছে কিনা তা নিশ্চিত করুন
  5. এখন একটি কমান্ড হোস্ট abc.efg.datastore.com সঙ্গে পরীক্ষা করুন যা

    আরআর-ডিএনএস-এর সাথে দুটি রেকর্ডের প্রতিক্রিয়া জানাতে পারে তাই যদি তালিকা থেকে একটি নোড ডাউন হয় - আপনার আবেদন অন্য একটির সাথে সংযুক্ত হবে

1
আইপি স্ট্যাক ডিএনএসের সাথে পরামর্শের আগে হোস্ট ফাইলটি স্বয়ংক্রিয়ভাবে চেক করে। আমি বিশ্বাস করি এটি আইপি সংজ্ঞার একটি অংশ, তবে আমি জানি যে উইন্ডোজ এবং লিনাক্স উভয়ই এই প্যাটার্নটি অনুসরণ করে। তার dnsmasq দরকার নেই, এবং যদি তিনি নিজের /etc/resolv.conf এভাবে পরিবর্তন করেন তবে তিনি তার আসল ডিএনএস সার্ভারের সাথে সংযোগ হারাবেন।
জালোরাস

সত্য নয়, তিনি রেজোলভ.কনফের জন্য একাধিক লাইন রাখতে পারেন যাতে পরবর্তী লাইনটি "নেমসারভার ৮.৮.৮.৮" হতে পারে, উদাহরণস্বরূপ, বিদ্যমান রেকর্ডগুলি ক্যাশে করার জন্য + এনএসসিডি, এই পদ্ধতির সঠিকভাবে বর্ণিত সমস্যাটির সমাধান করুন
ইহোর কলডিয়ুক

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

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