উবুন্টুতে লোকালহোস্টের জন্য কেন কোনও রুট নেই?


12
$ sudo docker run --rm ubuntu:14.04 route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.17.42.1     0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

এর অর্থ কি এই নয় যে 127.0.0.0/8 172.17.42.1 এর গেটওয়ের দিকে গড়াবে এবং লুপব্যাক ডিভাইসটি নয়?


আমি বলতে চাইছিলাম: উবুন্টুতে লুপব্যাকের জন্য কেন কোনও রুট নেই?
বালাজস রাউ

আমি মনে করি লুপব্যাক নেটওয়ার্কের সুস্পষ্ট রুটগুলি অতীত থেকে। আপনার প্রশ্নটি দেখে আমি আমাদের কয়েকটি সার্ভারে নজর রাখি এবং লুপব্যাকের জন্য রাউটিং টেবিলের কোনও রুট নেই। এটি সোলারিস 10 এর জন্যও বৈধ, সোলারিস 8 এর জন্য নয় (হ্যাঁ, আমাদের এখনও সোলারিস 8 সহ কিছু বাক্স রয়েছে)।
alphamikevictor

উত্তর:


25

routeকমান্ড নিন্দা করা হয়েছে, এবং এটি আর ব্যবহার করা উচিত নয়।

নতুন উপায়টি হ'ল আইপ্রেট কমান্ডের সেটটি ব্যবহার করুন যা সবগুলি ipএকটি অবজেক্ট দ্বারা অনুসরণ করা হয়। উদাহরণ স্বরূপ:

$ ip route show
default via 192.168.1.254 dev eth0 
192.168.0.0/23 dev eth0  proto kernel  scope link  src 192.168.1.27 

এখন, আমি আপনাকে বলতে শুনেছি, এটি মূলত একই তথ্য! হ্যাঁ, তবে এটি পুরো গল্প নয়। রাউটিং টেবিলগুলির আগে (হ্যাঁ, বহুবচন) নিয়ম সারণীটি আসার আগে:

$ ip rule show
    0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 

আমরা যে রাউটিং টেবিলটি আগে mainদেখছিলাম তা হ'ল রাউটিং টেবিল। আপনার প্রশ্নটি localরাউটিং টেবিলের সাথে সম্পর্কিত, যাতে স্থানীয় সংযোগ সম্পর্কিত সমস্ত রুট রয়েছে। এই টেবিলটি নিম্নরূপ প্রদর্শিত হতে পারে:

$ ip ro sh table local
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 192.168.0.0 dev eth0  proto kernel  scope link  src 192.168.1.27 
local 192.168.1.27 dev eth0  proto kernel  scope host  src 192.168.1.27 
broadcast 192.168.1.255 dev eth0  proto kernel  scope link  src 192.168.1.27

( ipঅপশন / প্যারামিটারগুলি যতক্ষণ না তারা এখনও অনন্য ততক্ষণ সংক্ষিপ্ত করতে পারেন , তাই ip ro shএর মতোই ip route show))

এখানে আপনি লুপব্যাক রুটগুলি দেখতে পাবেন।

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


1
আপনার কথাটি সম্পর্কে কেবল উদ্বেগ: তাঁর প্রশ্নটি আসলে স্থানীয় ঠিকানাগুলির জন্য রাউটিং সম্পর্কে ছিল (127.0.0.0/8)। table localউত্তর, কিন্তু প্রশ্ন নয়। এটির উত্তর কারণ যে কোনও 127- তে ট্র্যাফিক * * ঠিকানাটি 127.0.0.1 এর উত্সের ঠিকানাতে রূপান্তরিত হয়ে যায় এবং আমি মনে করি এটি ব্যবহার করতে বাধ্য হয় dev lo
পিটার কর্ডেস

1
সুতরাং প্রশ্নের আসল উত্তর হ'ল "কারণ লুপব্যাক বিশেষ এবং এর একটির প্রয়োজন হয় না", আসল উত্তর। এই রাউটিং টেবিল এন্ট্রিগুলির মধ্যে 127.1.1.1 এ কীভাবে রুট করা যায় সে সম্পর্কে কোনও কিছুই বলেনি, তবে এটি এখনও কাজ করে (যেমন আপনি পিং সময় থেকে বলতে পারেন)। সম্ভবত নেটওয়ার্কিং কোড বিশেষ-ক্ষেত্রে কর্মক্ষমতা কারণে স্থানীয় ঠিকানা, যেহেতু ip addrনা প্রদর্শন করে loশুধু চেয়ে বেশি থাকার 127.0.0.1নিজস্ব ঠিকানা হিসাবে, কিন্তু এটি আসলে 127 যে কোন আইপি জন্য ট্রাফিক লাভ হবে ... / 8
পিটার Cordes

4
@ পিটারকর্ডস আসলে লাইনটি রুটকে 127.1.1.1 পর্যন্ত local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1কভার করে; এর অর্থ হল যে 127 দিয়ে শুরু হওয়া কোনও কিছুই স্থানীয়।
wurtel

আহ, ঠিক আছে, আমি টেবিলে localপ্রবেশের দ্বারা বোঝানো সমস্ত কিছুই বুঝতে পারি নি local। ধন্যবাদ।
পিটার কর্ডেস

2

routeকমান্ড 10 বছর আগে থেকে বয়সে এবং আপনার সাথে যেতে হবে iproute2প্যাকেজ।

আপনি ব্যবহার করছেন যখন টেবিল প্রদর্শন করা হয়। টেবিল ব্যবহার প্রদর্শন করতে ।ip route showmainlocalip route show table local

আশা করি এটি সাহায্য করেছে।

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