একটি লিনাক্স মেশিনে রাউটিং টেবিলগুলি ডিবাগিংয়ের সরঞ্জামগুলি?


18

এমন কোনও সরঞ্জাম আছে যা লিনাক্স মেশিনে রাউটিং টেবিলগুলি ডিবাগ করে?

আমি তার মধ্যে একটি আইপি ঠিকানা ইনপুট করে যেটি ব্যবহার করতে পারি তার অর্থ, এটি বিদ্যমান রাউটিং টেবিলটিকে অ্যাকাউন্টে নেবে এবং টেবিল থেকে ম্যাচগুলি আউটপুট দেবে, তাই আমি প্যাকেটগুলি কোথায় যাবে সে সম্পর্কে আমি ধারণা পেতে পারি?


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

আপনার লিনাক্স মেশিনের সাথে কয়টি রাউটার সংযুক্ত রয়েছে? আপনি কি tracerouteপরিবর্তে বোঝাতে চেয়েছিলেন?
অট--

উত্তর:


37

ব্যবহার ip route getনেটওয়ার্ক রাউটিং কনফিগার করা থেকে :

ip route getকমান্ড একটি দরকারী বৈশিষ্ট্য যা আপনাকে রুট যার উপর সিস্টেম প্যাকেট পাঠাবে উদাহরণস্বরূপ, একটি নির্দিষ্ট আইপি ঠিকানা পৌঁছানোর হবে অনুসন্ধান করার মঞ্জুরি দেয়:

# ip route get 23.6.118.140
23.6.118.140 via 10.0.2.2 dev eth0 src 10.0.2.15
cache mtu 1500 advmss 1460 hoplimit 64

এই উদাহরণস্বরূপ, 23.6.118.140 এ প্যাকেটগুলি ইথ0 ইন্টারফেসের বাইরে গেটওয়ে 10.0.2.2 এর মাধ্যমে প্রেরণ করা হয়।


ওহ, আমি এরকম করি +1
রোয়াইমা

হুম তাই ওপেনডব্লিউআরটিতে আমাকে কেবল iproute2 ইনস্টল করতে হবে এবং তারপরে সম্ভবত আমি এটি করতে পারি? ডিফল্টরূপে আইফোনফিগ যা আসে তা হ'ল, আমি নিশ্চিত যে আমি এটিকে opkg দিয়ে যুক্ত করতে পারি ... তবে যদি এটি অপশন না হয় তবে রোইমার উত্তরটি আরও ভাল হতে পারে, যদি আইপ্রাউট 2 উপলব্ধ থাকে তবে এটি দুর্দান্ত কাজ করবে, ধন্যবাদ আপনি উভয়।
leeand00

1
আমার কাছে ওপেনডব্লিউআরটি নেই তবে তাদের ডকুমেন্টেশনগুলি দেখে মনে হচ্ছে তারা এখন এটিকে ipপ্যাকেজ বলে।
মার্ক প্লটনিক

: এবং এখানে টুল সেট এটি একটি অংশ হয় en.wikipedia.org/wiki/Iproute2
leeand00

আহ ... এটি নীতি ভিত্তিক রাউটিংয়ের সাথে কাজ করে? বলুন আমি কীভাবে iptables, এফডব্লিউমার্ক বিধিগুলি সহ পোর্টের নির্দিষ্ট রাউটিংটিকে ট্রেস করব?
mlt

2

নিম্নলিখিত স্ক্রিপ্ট দরকারী কোথাও সংরক্ষণ করুন। আপনি যে আইপি ঠিকানাটি পরীক্ষা করতে চান তার সাথে এটি কল করুন এবং এটি আপনাকে সংশ্লিষ্ট রুটটি বলবে।

#!/bin/bash
#
# Find the appropriate routing entry for a given IP address
########################################################################

########################################################################
# Calculate the base network address for a given addres and netmask
#
baseNet() {
    local ADDRESS="$1" NETMASK="$2"
    ipcalc -nb "$ADDRESS" "$NETMASK" | awk '$1=="Network:"{print $2}'
}

########################################################################
# Go
#
for IPADDRESS in "$@"
do
    netstat -rn |
        tac |
        while read DESTINATION GATEWAY GENMASK FLAGS MSS WINDOW IRTT IFACE
        do
            NSBASENET=$(baseNet "$DESTINATION" "$GENMASK")
            IPBASENET=$(baseNet "$IPADDRESS" "$GENMASK")
            if test "X$NSBASENET" = "X$IPBASENET"
            then
                if test '0.0.0.0' = "$GATEWAY"
                then
                    echo "Matches $DESTINATION with netmask $GENMASK directly on $IFACE"
                else
                    echo "Matches $DESTINATION with netmask $GENMASK via $GATEWAY on $IFACE"
                fi
                break
            fi
        done
done

# All done
#
exit 0

ব্যবহারের উদাহরণ

./what-route.sh 10.0.5.6
Matches 0.0.0.0 with netmask 0.0.0.0 via 10.0.2.2 on eth0
./what-route.sh 10.0.2.6
Matches 10.0.2.0 with netmask 255.255.255.0 directly on eth0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.