"আইপি অ্যাডার চেঞ্জ" এবং "আইপি অ্যাড্রেসার রিপ্লেস" কমান্ডগুলি বুঝতে


10

এই মুহুর্তে আমি নীচের আইপিভি 4 ঠিকানাগুলি এথ0 ইন্টারফেসের সাথে যুক্ত করেছি :

T60:~ # ip -V
ip utility, iproute2-ss110629
T60:~ # ip addr show dev eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:15:58:2a:84:3e brd ff:ff:ff:ff:ff:ff
    inet 10.11.12.2/24 scope global eth0
    inet 10.11.12.3/24 scope global secondary eth0
    inet 10.11.12.4/24 scope global secondary eth0
    inet6 fe80::215:58ff:fe2a:843e/64 scope link 
       valid_lft forever preferred_lft forever
T60:~ # 

আমি 10.11.12.3/24 ঠিকানাটি 10.11.12.6/24 এ প্রতিস্থাপন বা পরিবর্তন করতে চাই। এই কিভাবে করবেন? যদি আমি এক্সিকিউট করি ip addr change 10.11.12.6/24 dev eth0বা ip addr replace 10.11.12.6/24 dev eth0তারপরে 10.11.12.6 কেবল এথ0 এ যুক্ত করা হয়। এছাড়াও, পরিবর্তন / প্রতিস্থাপনের ক্ষেত্রে সিনট্যাক্সটি হওয়া উচিত নয় change/replace from 10.11.12.3/24 to 10.11.12.6/24? আমি জানি যে আমি ip addr delকমান্ড ব্যবহার করতে পারি , তবে কীভাবে ip addr changeবা এটি অর্জন করব ip addr replace?

উত্তর:


19

(আমি বুঝতে পারছি একটি পুরানো প্রশ্ন হল, কিন্তু Google আমাকে এখানে আনা কারণ আমি আউট ঠিক কি চিন্তা করার চেষ্টা করা হয় changeএবং replaceএবং কিভাবে তারা ব্যতিক্রম)।

আমি বিশ্বাস করি যে উভয় replaceএবং changeএকটি বিদ্যমান ঠিকানা পরিবর্তন করার জন্য ব্যবহার করা হয়। বিবেচনা:

ip addr add 192.168.1.10/32 dev dummy0

এটি আমাকে পেয়েছে:

32: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
    link/ether 5a:ec:58:4f:d1:35 brd ff:ff:ff:ff:ff:ff
    inet 192.168.111.10/32 scope global dummy0
       valid_lft forever preferred_lft forever
    inet6 fe80::58ec:58ff:fe4f:d135/64 scope link 
       valid_lft forever preferred_lft forever

যদি আমি আবার একই কমান্ডটি চালাই তবে আমি একটি ত্রুটি পেয়েছি:

# ip addr add 192.168.111.10/32 dev dummy0 
RTNETLINK answers: File exists

আমি যদি সেই ঠিকানায় ফ্ল্যাগগুলি সংশোধন করতে চাই, তবে আমি changeবা হয় ব্যবহার করতে পারি replace। এখানে, আমি সেই ঠিকানায় এবং সেটিংস ip addr changeসংশোধন করতে ব্যবহার করি :preferred_lftvalid_lft

# ip addr change 192.168.111.10/32 dev dummy0  preferred_lft 300 valid_lft 300
# ip addr show dummy0
32: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
    link/ether 5a:ec:58:4f:d1:35 brd ff:ff:ff:ff:ff:ff
    inet 192.168.111.10/32 scope global dynamic dummy0
       valid_lft 298sec preferred_lft 298sec
    inet6 fe80::58ec:58ff:fe4f:d135/64 scope link 
       valid_lft forever preferred_lft forever

আচরণ ip addr replaceএকই রকম। আসলে, আপনি যদি কোডটি দেখুন তবে সেগুলি প্রায় অভিন্ন ক্রিয়ায় ফলিত:

    if (matches(*argv, "change") == 0 ||
            strcmp(*argv, "chg") == 0)
            return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);
    if (matches(*argv, "replace") == 0)
            return ipaddr_modify(RTM_NEWADDR, NLM_F_CREATE|NLM_F_REPLACE, argc-1, argv+1);

দেখে মনে হচ্ছে এখানে উদ্দেশ্যটি changeকেবলমাত্র একটি বিদ্যমান ঠিকানাটি replaceসংশোধন করবে , যখন হয় হয় একটি বিদ্যমান ঠিকানা সংশোধন করবে বা নির্দিষ্ট ঠিকানাটি উপস্থিত না থাকলে একটি নতুন ঠিকানা তৈরি করবে। অনুশীলনে, মনে হচ্ছে এটি উভয়ই changeএবং replaceঠিকানাটি ইতিমধ্যে উপস্থিত না থাকলে যোগ করবে।

আপনি আসলে একটি নতুন ঠিকানা যুক্ত করবে ও একটি পুরানো এক অপসারণ করতে চান তাহলে, আপনাকে যা করতে হবে যে দুটি ধাপে ব্যবহার করতে হবে, ip addr delদ্বারা অনুসরণ ip addr add(অবশ্যই বা অন্যান্য উপায় কাছাকাছি)।


এই উত্তরের জন্য আপনাকে ধন্যবাদ। এটি আমার উত্পাদনের পরিবেশকে এক টন ডাউনটাইম বাঁচিয়েছিল (কেবল যদি আমি এটির আগে খুঁজে পেতাম তবে আমি এটি করতে পারতাম NO P0:()
সামভিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.