লিনাক্সে নিয়মিত আইপি রুল (রেডহ্যাট)


12

আমি কীভাবে ip ruleলিনাক্সে একটি ধ্রুবক কনফিগার করতে পারি (বিশেষত রেডহ্যাট ভিত্তিক ডিস্ট্রোস)? পদ্ধতিতে কোন বিল্ট নেই? আমার একমাত্র বিকল্পটি /etc/rc.d/rc.localআমার নিজস্ব rc.dস্ক্রিপ্টে যুক্ত বা তৈরি করছে ?

সম্পাদনা: স্পষ্টকরণের জন্য আমি উল্লেখ করছি না iptablesতবে ipহাতিয়ারটি (যা আমি মনে করি না যে অনেক লোকের সাথে পরিচিত)। যাই হোক না কেন, আমি যে নিয়মটি ধরে রাখতে চাইছি তা নিম্নলিখিত কমান্ডের সাথে যুক্ত করা হয়েছে:

# ip rule add fwmark 1 lookup 100
# ip rule
...
32765: from all fwmark 0x1 lookup 100
...

আমি কেবল এটিই পেয়েছি রেফারেন্সটি হ'ল নভেল থেকে: http://www.novell.com/support/viewContent.do?externId=7008874&sliceId=1 যা rc.dস্ক্রিপ্ট তৈরি করার পরামর্শ দেয়


আপনি যে আইপি নিয়মটি চালিয়ে যেতে চান তা ভাগ করে নিতে পারেন?
ew white

নিয়ম নেইip rule add fwmark 1 lookup 100
ব্রেন্ট

উত্তর:


11

প্রচলিত হিসাবে আমি জিজ্ঞাসা করার সাথে সাথেই আমার নিজের সমস্যার উত্তরটি নিয়ে হোঁচট খেয়েছি :) http://grokbase.com/t/centos/centos/099bmc07mq/persisting-iproute2-routes-and-rules এ একটি উত্তর খুঁজে পেয়েছি

Redhat 5+ এ /etc/sysconfig/network-scripts/ifup-routesস্ক্রিপ্ট rule-*ফাইলগুলি পরিচালনা করে। নীচে সম্পর্কিত কোড:

# Routing rules
FILES="/etc/sysconfig/network-scripts/rule-$1"
if [ -n "$2" -a "$2" != "$1" ]; then
    FILES="$FILES /etc/sysconfig/network-scripts/rule-$2"
fi

for file in $FILES; do
   if [ -f "$file" ]; then
       { cat "$file" ; echo ; } | while read line; do
           if [[ ! "$line" =~ $MATCH ]]; then
           /sbin/ip rule add $line
       fi
       done
   fi
done

আরএইচএল 6.5 এর জন্য স্ক্রিপ্ট (সম্ভবত 6+ বছরের বেশি পুরানো):

# Routing rules
FILES="/etc/sysconfig/network-scripts/rule-$1 /etc/sysconfig/network-scripts/rule6-$1"
if [ -n "$2" -a "$2" != "$1" ]; then
FILES="$FILES /etc/sysconfig/network-scripts/rule-$2 /etc/sysconfig/network-scripts/rule6-$2"
fi

for file in $FILES; do
   if [ -f "$file" ]; then
       handle_ip_file $file
   fi
done

handle_ip_file() {
    local f t type= file=$1 proto="-4"
    f=${file##*/}
    t=${f%%-*}
    type=${t%%6}
    if [ "$type" != "$t" ]; then
        proto="-6"
    fi
    { cat "$file" ; echo ; } | while read line; do
        if [[ ! "$line" =~ $MATCH ]]; then
            /sbin/ip $proto $type add $line
        fi
    done
}

6

উপরের উত্তরের প্রায় 3/4 অংশ রয়েছে - অনুপস্থিত অংশটি কীভাবে / ইত্যাদি / সিস্কোনফ / নেটওয়ার্ক-স্ক্রিপ্ট / নিয়ম-এথএক্স ফাইলটি ফর্ম্যাট করতে পারে। আপনাকে রাউটিং টেবিলগুলি / etc / iproute2 / rt_tables এ যুক্ত করতে হবে:

# add a line with a table identifier and name:
100    ISPname

এবং রুল ফাইল / ইত্যাদি / সিসকনফিগ / নেটওয়ার্ক-স্ক্রিপ্ট / নিয়ম-এথ0 যুক্ত করুন:

# rule-eth0
from 1.2.3.4/24 table {table name from /etc/iproute2/rt_tables}
to 1.2.3.4/24 table {table name from /etc/iproute2/rt_tables}

নোট করুন যে টেবিলের নামগুলি অবশ্যই মিলবে এবং কেস সংবেদনশীল।


1

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

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