ইন্টারফেস আনার সময় আমি কি কোনও ডিফল্ট রুট যুক্ত হওয়া আটকাতে পারি?


12

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

    eth0:
    - 10.x.x.x address space
    - no internet gateway
    - only a few devices

eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet

ppp0 (when used):
- internet access through dialup using KPPP

আমি ইন্টারফেসগুলি উপরে বা নীচে আনার জন্য ifconfig ব্যবহার করছি (পিপিপিপি দ্বারা হ্যান্ডেল করা পিপিপি 0 ব্যতীত)।

যদি আমি প্রথমে এথ 1 নিয়ে আসি তবে এটির ডিএইচসিপি থেকে একটি ঠিকানা পাওয়া যায় এবং গেটওয়েটি পায় এবং এটি রাউটিংয়ে যুক্ত হয় যাতে ল্যান এবং ইন্টারনেটে পৌঁছতে কোনও সমস্যা নেই।

যদি আমি প্রথম বা দ্বিতীয় এথ0 নিয়ে আসি তবে এটির ঠিকানাটি পাওয়া যায় এবং এটির ঠিকানা স্থানের মধ্যে ডিফল্ট গেটওয়ে সেট করা হয় (১০.১০ এক্সএক্সএক্স সীমার মধ্যে)। যদি আমি এথ0 প্রথম এবং এথ 1 সেকেন্ড নিয়ে আসি তবে ডিফল্ট গেটওয়েটি এখনও 10.xxx সীমার মধ্যে রাখা হয়।

সুতরাং আমি যাই করি না কেন, eth0 এথ 1 ওভাররাইড করবে এবং রাউটিংয়ের গেটওয়ে "দাবি" করবে।

এথ0 কে গেটওয়ে দাবি করা থেকে বাঁচানোর কোনও উপায় আছে, বা এথ 1 নিশ্চিত করা (যদি দ্বিতীয় উত্সাহিত হয়) এর প্রবেশপথটি ব্যবহার করে? বা আমি কোনওভাবে কোন ইন্টারফেসের গেটওয়েটি অন্যের উপরে ব্যবহার করা উচিত তার একটি র‌্যাঙ্কিংকে অগ্রাধিকার দিতে পারি?

আমি মূলত এটি নিশ্চিত করতে চাই যে এথ 1 এর ডিফল্ট ঠিকানা স্পেস গেটওয়েটি সক্রিয় থাকলে ব্যবহৃত হয় এবং যদি তা না থাকে তবে পিপিপি 0 এর ডিফল্ট গেটওয়ে ব্যবহার করা হয়। আমি এথ0 কে কখনও ডিফল্ট গেটওয়ে রাখা থেকে আটকাতে সক্ষম হতে চাই।


এটি অদ্ভুত যে ব্যবহারটি যে ifconfigকোনও ধরণের DHCP মিথস্ক্রিয়াকে সৃষ্টি করবে। সাধারণত ifupশুরু করে এটি করবে dhclient। আপনার ইথ * ইন্টারফেসগুলি সম্ভবত সিস্টেম বুট প্রক্রিয়া, বলুন /etc/init.d/network, বা নেটওয়ার্কম্যানেজার দ্বারা উত্থাপিত হচ্ছে ?
মার্ক প্লটনিক

@ মার্কপ্লটনিক: এটি বুট করার পরে এবং "ifconfig eth1 up" (বা ডাউন বা এথ0 ...) ব্যবহার করার পরে এটি। আমার অনুমান যে আমি যা করতে চাই তার সর্বাধিক রূপটি হ'ল 10 xxxx ঠিকানার স্থান ব্যতীত অন্য কোনও রুট যুক্ত না করেই এথ0 আনতে হবে।
টাঙ্গো

উত্তর:


5

DHCP সার্ভার কনফিগারেশনটি ভুল wrong এটি যখন বিশ্বের অন্যান্য অংশে রাউটিং সরবরাহ করতে না পারে তখন অবশ্যই এটি একটি ডিফল্ট গেটওয়ে বিকল্পটি প্রেরণ করবে না। যদি এটি সেই বিকল্পটি প্রেরণ করে তবে কোনও ক্লায়েন্ট ধরে নিতে পারে যে এটি নির্দিষ্ট ডিফল্ট গেটওয়েতে কোনও অফ-লিংক গন্তব্যের জন্য প্যাকেটগুলি প্রেরণ করতে পারে।

সুতরাং আপনার বাক্সটি এথ 0 থেকে ডিফল্ট গেটওয়েটি ব্যবহার করার ক্ষেত্রে ঠিক যদি এটি ডিএইচসিপি দ্বারা বলা হয়। সমাধানটি হ'ল আপনার ডিএইচসিপি সার্ভার থেকে খারাপ বিকল্পটি সরিয়ে ফেলা।


ঠিক আছে, এটি অনেক অর্থবোধ করে। দুর্ভাগ্যক্রমে, DHCP সার্ভারটি একটি DLink DNS-321, যা অনেকগুলি নিয়ন্ত্রণ বিকল্পের অনুমতি দেয় না। মনে হচ্ছে আমি একটি গেটওয়ে অন্তর্ভুক্ত করেছি। আমি দেখতে পাচ্ছি যে আমি এটি কোনওভাবে হ্যাক করে কনফিগার ফাইলটি সম্পাদনা করতে পারি কিনা। তবে, অন্য একটি সমস্যা: কেন এটি সর্বদা 10.XXX ডিএইচসিপি সার্ভার থেকে গেটওয়ে নেয় এবং সর্বদা অন্য সার্ভার থেকে গেটওয়ে নেয় না?
ট্যাঙ্গো

1
আমি নিশ্চিত নই যে লিনাক্স কীভাবে অভিন্ন রুটের মধ্যে নির্বাচন করে। এটি সম্ভবত মেট্রিকের উপর ভিত্তি করে। আপনি যখন একাধিক ডিফল্ট রুট রাখবেন তখন কি আপনি আপনার রাউটিং টেবিলটি প্রদর্শন করতে পারেন?
স্যান্ডার স্টেফান

এটি একাধিক ডিফল্ট রুটের অনুমতি দেবে না। হতাশা হ'ল কোনও কারণে এথ 0 সর্বদা ডিএইচসিপি শোনায় এবং গেটওয়ে আপডেট করে। এথ 1 এর সাহায্যে এটি কেবলমাত্র প্রবেশদ্বারটি শোনে এবং ব্যবহার করে যদি এটির প্রথম এবং একমাত্র ইন্টারফেস থাকে। যদি eth0 এর প্রবেশদ্বারটি সর্বদা E1 এর ওভাররাইড না করে, তবে আমি কেবল একটি স্ক্রিপ্ট লিখব তাই যখন eth0 উত্থাপিত হবে, এথ 1 টি নামিয়ে নেওয়া হবে, এবং তারপরে উত্থাপিত হবে।
টাঙ্গো

এটি প্রায় ডিএইচসিপি ক্লায়েন্টের মধ্যে হার্ড কোডিং অদ্ভুততার মতো শোনাচ্ছে। আপনি কোনটি ব্যবহার করছেন? বিকল্প হিসাবে:
এটিথথ

এটি একটি ডি-লিংক ডিএনএস -321 এ রয়েছে। তবে আমি / var / লগগুলি / সিসলগ দিয়েছি এবং আমি দেখতে পাচ্ছি যে E11 এর জন্য ডিএইচসিপিও প্রতিবার গেটওয়েতে প্রেরণ করে। আমি কেন এথ 1 সর্বদা গেটওয়ে নেয় এবং এটিকে রুটে যুক্ত করে এবং এথ 1 তা বুঝতে পারি না। আমি 10.0.0.3 এ শুরু করার জন্য ডিএইচসিপি eth0 ব্যবহারের জন্য সীমাটি সীমাবদ্ধ করার চেষ্টা করতে যাচ্ছি এবং তারপরে 10.0.0.2 ব্যবহার করে eth0 স্ট্যাটিক তৈরি করব এবং দেখুন যে এটি অভদ্র ডিএইচসিপি সার্ভারকে উপেক্ষা করার দিকে পরিচালিত করে কিনা।
টাঙ্গো

16

আমি রাস্পবিয়ান সম্পর্কে একই ধরণের সমস্যার মুখোমুখি হয়েছি (আমি মনে করি যে নীচের সমাধানটিও ডিবিয়ানের ক্ষেত্রে প্রযোজ্য হবে)। রাস্পবেরি পাই 3 এর 2 টি এনআইসি রয়েছে: ওয়াই-ফাই এবং ইথারনেট। আমি উভয় ব্যবহার করি, তারা যথাক্রমে wlan0 এবং eth0 হয়। wlan0 আমার বাড়ির ওয়াই-ফাই নেটওয়ার্কের সাথে সংযুক্ত এবং এই ইন্টারফেসের মাধ্যমে ইন্টারনেট অ্যাক্সেস আসে। এটি আমার হোম রাউটার থেকে ডিএইচসিপি এর মাধ্যমে সেটিংস পায়। এথ0 সরাসরি আমার উইন্ডোজ পিসিতে সংযুক্ত থাকে এবং স্থির আইপি নির্ধারিত হয়। আমি আমার উইন্ডোজ পিসিতে এটি কনফিগার না করে এথ0 এর মাধ্যমে কোনও ইন্টারনেট অ্যাক্সেস উপলব্ধ ছিল না।

রাস্পবিয়ান-তে, dhcpcd ডিমন নেটওয়ার্ক ইন্টারফেস কনফিগার করার জন্য দায়বদ্ধ। স্ট্যাটিক আইপি এথ0 ইন্টারফেসে সেট করার জন্য, নিম্নলিখিত প্রান্তটির শেষে যুক্ত হয়েছিল /etc/dhcpcd.conf:

interface eth0

static ip_address=192.168.2.2/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1

এই সেটিংসের সাহায্যে, ডিএইচসিপিসিডিটি 2 ডিফল্ট রুট তৈরি করেছে এবং এথ 0 এর মাধ্যমে রুটটি wlan0 এর চেয়ে বেশি অগ্রাধিকার পেয়েছিল:

pi@raspberrypi:~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.2.1     0.0.0.0         UG    202    0        0 eth0
default         192.168.1.254   0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     *               255.255.255.0   U     303    0        0 wlan0
192.168.2.0     *               255.255.255.0   U     202    0        0 eth0

সুতরাং আমার কাছে কোনও ইন্টারনেট অ্যাক্সেস ছিল না, কারণ সিস্টেম এটিথ 0 এর মাধ্যমে রুট করার চেষ্টা করেছিল এবং এটি উপরে ইন্টারনেটের অ্যাক্সেস নেই, যেমন আমি উপরে উল্লেখ করেছি।

সমস্যা সমাধানের জন্য, আমি eth0 ইন্টারফেসের জন্য nogatewayবিকল্পটি ব্যবহার করেছি /etc/dhcpcd.conf। সুতরাং এথ0-নির্দিষ্ট কনফিগারেশনটি এর মতো দেখতে শুরু করেছে:

interface eth0

static ip_address=192.168.2.2/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1
nogateway

এই কনফিগারেশনটি সংরক্ষণ এবং পুনরায় চালু করার পরে, eth0 এর মাধ্যমে কোনও ডিফল্ট রুট ছিল না:

pi@raspberrypi:~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     *               255.255.255.0   U     303    0        0 wlan0
192.168.2.0     *               255.255.255.0   U     202    0        0 eth0

ইন্টারনেট অ্যাক্সেস উপস্থিত হয়েছে এবং সমস্যাটির সমাধান হয়েছে।


1
এটি হ'ল আমার পরিস্থিতি, এবং এটি হ'ল সমাধান।
পিএনডিএ

ধন্যবাদ, nogatewayসর্বশেষ
ডিবিয়ান

রাস্পবিয়ান পাইতে এই সমস্যার মুখোমুখি হওয়ার জন্য কোন ঝামেলা কী তা আপনি কল্পনা করতে পারবেন না এবং আপনি সবেমাত্র মার্জিত এবং সঠিক সমাধান দিয়েছেন। আপনি মানুষ ধন্যবাদ.
টেকনিকুইস্ট

7

RHEL6 / ফেডোরা 22-তে নিম্নলিখিতটি পরীক্ষা করা হয়েছে।

/ Etc / sysconfig / নেটওয়ার্ক-স্ক্রিপ্ট / ifcfg-eth1 এ লাইন যুক্ত করুন:

DEFROUTE=no

ডিফল্ট রাউটিংটি চাওয়া হয় না এমন ইন্টারফেসের নাম দিয়ে eth1 প্রতিস্থাপন করুন।

এটি আইপিভি 4 ট্যাবের নীচে "শুধুমাত্র তার নেটওয়ার্কের সংস্থানসমূহের জন্য এই সংযোগটি ব্যবহার করুন" বাক্সটি চেক করে নেটওয়ার্ক ম্যানেজার জিইউআইয়ের মাধ্যমেও এটি করা যেতে পারে।

ডিফ্রুট = কোনও ইন্টারফেস সক্ষম থাকলে রাউটিং টেবিলটিতে ডিফল্ট রুটের (গন্তব্য 0.0.0.0) সংযোজন রোধ করে না। অর্থাত। নিম্নলিখিত এন্ট্রি যোগ করা হবে না।

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.16.x.x      0.0.0.0         UG        0 0          0 eth1

1
কেন এটি সমস্যার সমাধান করে তা দয়া করে ব্যাখ্যা করুন। এবং যখন এটি কাজ করে। এটা তোলে ডেবিয়ান ভিত্তিক ডিস্ট্রো (আমি বিশ্বাস করি) কিন্তু কাজ করবে না বিভিন্ন ইন্টারফেস নামকরণ (বা সেবা নেটওয়ার্কিং জন্য ডিস্ট্রো systemd হল ব্যবহার করে) সঙ্গে ডিস্ট্রো উপর।
গ্রাচমাল

1
ডেবিয়ান ভিত্তিক সিস্টেমের চেয়ে রেড হ্যাট এর মতো আরও।
ইল্কাচ্চু

4

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

সমাধান এখানে:

ফাইল সম্পাদনা করুন:

/etc/dhcp/dhclient-up-hooks

এবং এর সাথে বসান:

#!/bin/sh
## Prevent DHCP server on eth0 from forcing a default route on us

case ${interface} in
  eth0)
     printf "executing ip route delete default via $new_routers\n" 
     ip route delete default via $new_routers
  ;;
     *)
  ;;
esac

আগে:

[root@centos7lab dhcp]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.4.1     0.0.0.0         UG    20     0        0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

ifdown eth0 এর পরে, ifup eth0:

[root@centos7lab dhcp]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

এটি স্থাপনের পরে গেটওয়ের সাথে রুটটিকে মুছে ফেলে, এর অর্থ এটি ডিফল্ট গেটওয়ে দিয়ে অন্য কোনও রুট ইতিমধ্যে মুছে ফেলা হয়েছে। নাকি আমি ভুল বুঝি?
টাঙ্গো

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

1

আপনি dhcpclient.conf ফাইল সম্পাদনা করতে পারেন এবং দূরবর্তী ডিএইচসিপি সার্ভার থেকে কোনও ডিফল্ট রুটের জন্য অনুরোধ করতে পারেন না।

আমি যা করেছি তার একটি ছোট নমুনা এবং এটি আমার ক্ষেত্রে কাজ করছে

হোস্ট-নাম = "এলোমেলো-হোস্টনাম" প্রেরণ করুন;

সাবনেট-মাস্ক, সম্প্রচারের ঠিকানা, সময়-অফসেট, ইন্টারফেস-এমটিটু, আরএফসি 3442-শ্রেণীবদ্ধ-স্ট্যাটিক-রুটস, এনটিপি-সার্ভারগুলির জন্য অনুরোধ করুন;

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