দুটি ইন্টারফেস, দুটি ঠিকানা, দুটি গেটওয়ে?


15

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

সমস্যাটি এই মুহূর্তে, যদি আমি দ্বিতীয় ইন্টারফেসে ঠিকানাটি পিং করার চেষ্টা করি, তবে ডিফল্ট রুটটি প্রথম ইন্টারফেসের মাধ্যমে চিহ্নিত করে - এবং কখনই সঠিকভাবে উপস্থিত হয় না।

প্রতিক্রিয়াগুলি সর্বদা একই নেটওয়ার্ক ইন্টারফেসের (এবং একই উত্স আইপি সহ) চালু হওয়ার সাথে সাথেই তা নিশ্চিত করা সম্ভব? এবং যদি তা হয়, কিভাবে?


1
সম্ভবত এটিতে
শন জে গফ

উত্তর:


17

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

একে উত্স-ভিত্তিক রাউটিং বা নীতি রাউটিং বলে। আপনি এটি একটি সাধারণ iptablesনিয়ম দিয়ে করতে পারেন , তবে সবচেয়ে ভাল উপায় হ'ল দুটি রাউটিং টেবিল স্থাপন করা, প্রতিটি জনসাধারণের উত্সের ঠিকানাগুলির জন্য একটি:

প্রথমে দুটি সারণী তৈরি করুন (<NAME1> এবং <NAME2> আপনার দুটি সরবরাহকারীর জন্য বুদ্ধিমান নামের সাথে প্রতিস্থাপন করুন, আইপি 1, ডিইভি 1, এবং এর মতো):

echo 200 <NAME1> >> /etc/iproute2/rt_tables
echo 201 <NAME2> >> /etc/iproute2/rt_tables

প্রতিটি রাউটিং টেবিলের একটি গেটওয়ে যুক্ত করুন (যদি প্রয়োজন হয়):

ip route add <NET1> dev <DEV1> src <SRC1> table <NAME1>
ip route add <NET2> dev <DEV2> src <SRC2> table <NAME2>

তারপরে একটি ডিফল্ট রুট:

ip route add default via <IP1> table <NAME1>
ip route add default via <IP2> table <NAME2>

তারপরে উত্স ঠিকানার ভিত্তিতে রুট টেবিলটি নির্বাচন করার নিয়ম:

ip rule add from <IP1> table <NAME1>
ip rule add from <IP2> table <NAME2>

আরও তথ্যের জন্য একাধিক uplinks / সরবরাহকারীদের জন্য রাউটিং দেখুন ।


আপনি লিখেছেন: 'প্রতিটি প্যাকেট একটি প্রতিক্রিয়া নয় এবং প্রতিটি প্যাকেট অন্য কোনও প্যাকেটের সাথে মিলে যায় না যেমন "একই নেটওয়ার্ক ইন্টারফেস যেমন তারা এসেছিল" তা বোঝায়। 'আপনি এই আরও ব্যাখ্যা করতে পারেন? আমি বুঝতে পেরেছি, প্রতিটি প্যাকেট একটি প্রতিক্রিয়া নয় এবং প্রতিটি প্যাকেট অন্য "উত্স" প্যাকেটের সাথে মেলে না। যদি আমরা এই প্যাকেটগুলি বিবেচনা থেকে বাদ দিয়ে থাকি কারণ এগুলি কোনও সমস্যা সৃষ্টি করে না এবং তাই আমাদের উদ্বিগ্ন না করে, কেন প্যাকেটগুলি "একই নেটওয়ার্ক ইন্টারফেসে চালু হওয়ার সাথে সাথে" কেন তা চালু করা যায় না?
অ্যান্ড্রু সাভিনিখ

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

ডেভিড, আমি ওপির মতো একই জিনিস অর্জন করতে চাই তবে আমি তা করতে পারিনি। আমি এখানে একটি প্রশ্ন পোস্ট করেছি: সার্ভারসফল্ট / প্রশ্ন / 99৯২26২৪/২ , আপনি যদি একবার
খেয়াল

6

ডেভিড শোয়ার্টজের উত্তরটি দুর্দান্ত তবে আপনি কেবল একটি অতিরিক্ত টেবিল রেখে এবং অন্যটির জন্য আপনার ডিফল্ট রুটটি ব্যবহার করে রাউটিংয়ের নিয়মগুলি কিছুটা সহজ করতে পারেন। আমার একটি সার্ভার রয়েছে যা দুটি NAT গেটওয়ের পিছনে রয়েছে এবং আমি সম্প্রতি ভিএমগুলির একগুচ্ছের মধ্যে সেই দৃশ্যটি পুনরুদ্ধার প্রক্রিয়াটি পেরিয়েছিলাম। আমার /etc/network/interfacesচেহারাটি এরকম:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.13.13
    netmask 255.255.255.0
    up ip route add table optus default via 192.168.13.10
    up ip rule add from 192.168.13.213 table optus
    up ip route add default via 192.168.13.11

auto eth0:0
iface eth0:0 inet static
    address 192.168.13.213
    netmask 255.255.255.0

(এটি এমন একটি সেটআপের জন্য যেখানে দুটি আইএসপি অপটাস এবং আইআইনেট, অতএব 'অপ্টাস' এর সারণির নাম)

এটি, /etc/iproute2/rt_tablesটেবিল তৈরির ক্ষেত্রে লাইনটি আপনার প্রয়োজনীয় সমস্ত হওয়া উচিত। আপনার দুটি আইপি ঠিকানা থাকবে; 192.168.13.13 এর ট্রাফিক 192.168.13.11 এর মাধ্যমে চলে যাবে, এবং 192.168.13.213 এর ট্রাফিক 192.168.13.10 এর মাধ্যমে চলে যাবে। তাদের পোর্ট ফরওয়ার্ডিং যথাযথভাবে করার জন্য সেই দুটি গেটওয়ে কনফিগার করুন (192.168.13.11 ফরোয়ার্ড স্টাফগুলি 192.168.13.13, এবং 192.168.13.10 ফরোয়ার্ড স্টাফগুলি 192.168.13.213 এ ফরোয়ার্ড করা হয়েছে), এবং বাকীগুলি নিজের যত্ন নিতে হবে।

আপনার পরিস্থিতিটির জন্য আপনাকে কিছুটা টুইট করতে হবে, কারণ আপনি সরাসরি পাবলিক আইপি ব্যবহার করছেন তবে এর মতো কিছু এখনও কাজ করা উচিত। এছাড়াও, /etc/network/interfacesদু'বছর পরে যখন সিস্টেমটি পুনরায় চালু করতে হয় তখন আপনি কীভাবে এটি সেট আপ করেছিলেন তা মনে করার পরিবর্তে এই ফাইলগুলিতে কাজ করা এবং তারপরে গিট-পরিচালনা করা অনেক সহজ !


1

দ্বৈত নেটওয়ার্ক উদাহরণ

এই উদাহরণটি দেখিয়ে দিচ্ছে যে নেটমাস্ক এবং গেটওয়ে eth1সহ একটি অতিরিক্ত কীভাবে পরিষেবাগুলির জন্য এটি যেমন বাঁধাই করা যায় তা উপলব্ধ করা যায়10.130.0.2255.255.255.25510.130.0.1ping -I eth1 8.8.8.8

প্রযুক্তিগতভাবে আমরা:

  • আরও বড় মেট্রিকের সাথে অন্য গেটওয়ে যুক্ত করা হচ্ছে
  • টেবিলটি 100 যুক্ত এবং ব্যবহার করে সেট আপ করা হচ্ছে
  • এর মাধ্যমে / এথ 1 এর মাধ্যমে ট্র্যাফিকের পথে রুট যুক্ত করা
ip addr add 10.130.0.2/32 broadcast 10.130.0.2 dev eth1
ip link set eth1 up
ip route add 10.130.0.1 src 10.130.0.2 dev eth1
ip route add 10.130.0.1 src 10.130.0.2 dev eth1 table 100
ip route add default via 10.130.0.1 dev eth1 metric 10
ip route add default via 10.130.0.1 dev eth1 table 100
ip rule add from 10.130.0.2/32 table 100
ip rule add to 10.130.0.2/32 table 100
curl --interface eth1 ifconfig.co
curl --interface eth0 ifconfig.co
ping -I eth1 8.8.8.8
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.