এই লেখায় আমরা দেখাব কিভাবে লিনাক্সে ip কমান্ড ব্যবহার করে রাউটিং কনফিগার এবং নেটওয়ার্ক রুট পরিচালনা করবেন CentOS-এ (রাউটিং টেবিল দেখুন, স্ট্যাটিক রুট যোগ/সরানো, ইত্যাদি)। এই লেখা ip টুলসহ যেকোনো অন্যান্য লিনাক্স ডিস্ট্রো (Red Hat, Fedora, ইত্যাদি) માટે প্রযোজ্য।
লিনাক্সে রাউটিং ম্যানেজ করতে route কমান্ডের পরিবর্তে ip কমান্ড ব্যবহার করার পরামর্শ দেওয়া হয়। route কমান্ড এডভান্সড রাউটিং ফিচার (রাউটিং পলিসির মতো) কনফিগার করার অনুমতি দেয় না এবং ip টুল ব্যবহার করে সেট করা স্পেশাল রাউটিং সেটিংস দেখাতে পারে না।
লিনাক্সে নেটওয়ার্ক রাউটিং টেবিল কীভাবে দেখবেন?
লিনাক্সে বর্তমান রাউটিং টেবিল দেখতে এই কমান্ড চালান:
# ip route

default via 192.168.1.1 dev enp0s3এই উদাহরণে enp0s3 ইন্টারফেস ব্যবহার করে ডিফল্ট গেটওয়ে। যদি টার্গেট IP ঠিকানার জন্য রাউটিং টেবিলে কোনো স্ট্যাটিক রুট না থাকে, তবে প্যাকেটটি সেই গেটওয়ের মাধ্যমে পাঠানো হয় (ডিফল্ট রুট);192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201হল 192.168.1.0/24 নেটওয়ার্কের জন্য 192.168.1.201 ইন্টারফেস দিয়ে একটি স্ট্যাটিক রুট;proto kernelহল কার্নেল দ্বারা তৈরি একটি রুট (proto static– অ্যাডমিনিস্ট্রেটর দ্বারা যোগ করা রুট);metricহল রুটের প্রায়োরিটি (metric মান যত কম, প্রায়োরিটি তত বেশি)। দুটি রুটের একই metric থাকলে (কখনো করবেন না!), কার্নেল র্যান্ডমলি রুট বেছে নেবে।
নির্দিষ্ট IP ঠিকানার জন্য কোন ইন্টারফেস (গেটওয়ে) ব্যবহার হচ্ছে তা জানতে নিচের কমান্ড ব্যবহার করা হয়:
# ip route get 192.168.2.45
192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201
আপনি আপনার লিনাক্স সার্ভারকে দুটি বা অধিক ইন্টারফেসের সাথে একটি রাউটার বা ইন্টারনেট গেটওয়ে হিসেবে ব্যবহার করতে পারেন। একাধিক ইন্টারফেসের মধ্যে প্যাকেট রাউটিং সক্ষম করতে, net.ipv4.ip_forward = 1 কার্নেল প্যারামিটার সক্ষম করুন।
লিনাক্সে স্ট্যাটিক রুট যোগ ও সরানো
লিনাক্স রাউটিং টেবিলে একটি নির্দিষ্ট IP নেটওয়ার্কের জন্য একটি নতুন রুট যোগ করতে এই কমান্ড চালান:
# ip route add 192.168.0.0/24 via 192.168.1.1
এভাবে, আমরা 192.168.0.0/24 IP নেটওয়ার্কের জন্য 192.168.1.1 গেটওয়ে দিয়ে রুট যোগ করলাম।
ip route কমান্ডের ফরম্যাট খুব.somewhat Cisco IOS সিনট্যাক্সের মতো। এখানে সংক্ষিপ্ত রূপও ব্যবহার করা যায়, উদাহরণস্বরূপ, ip route add এর পরিবর্তে ip pro ad ব্যবহার করা যায়।

আপনি একটি একক IP ঠিকানা (হোস্ট) জন্য আলাদা একটি স্ট্যাটিক রুটও যোগ করতে পারেন:
# ip route add 192.168.1.0 via 192.168.1.1
আপনি Cisco-র মতো (ip route null0) একটি নাল রুট তৈরি করতে পারেন। এই নেটওয়ার্কে পাঠানো প্যাকেট No route to host এর কারণে ড্রপ হয়:
# ip route add blackhole 10.1.20.0/24
এই পদ্ধতিতে যোগ করা রুটগুলো مؤقت এবং নেটওয়ার্ক সার্ভিস বা সার্ভার রিস্টার্ট করার পর্যন্ত কাজ করে।
ম্যানুয়ালি তৈরি করা একটি স্ট্যাটিক রুট সরাতে নিচের কমান্ড চালান:
# ip route del 192.168.0.0/24

আপনি দেখতে পাচ্ছেন, লিনাক্স রাউটিং টেবিল থেকে রুটটি সরিয়ে দেওয়া হয়েছে।
একটি পার্মানেন্ট রুট যোগ করতে, আপনাকে রুটের জন্য একটি ফাইল তৈরি করতে হবে, অথবা rc.local ফাইলে একটি রুল যোগ করতে হবে (হোস্ট স্টার্টআপে রান হয়)।
একটি পার্মানেন্ট স্ট্যাটিক রুট যোগ করতে, আপনাকে রাউটিংয়ে ব্যবহার করা নেটওয়ার্ক ইন্টারফেসের নাম জানতে হবে। নিচের কমান্ড ব্যবহার করে নেটওয়ার্ক ইন্টারফেসের নাম পেতে পারেন:
# ip a
আমার কেসে, এটি enp0s3।
RHEL/CentOS লিনাক্সে নেটওয়ার্ক ইন্টারফেস কনফিগারেশনের বিস্তারিত লেখা এখানে।

তারপর নিচের ফাইলটি খুলুন:
# nano /etc/sysconfig/network-scripts/route-enp0s3
এবং এখানে রুট ধারণকারী লাইনটি যোগ করুন:
192.168.0.0/24 via 192.168.1.1
ফাইলে রুট যোগ করার পর, network সার্ভিস রিস্টার্ট করুন:
# service network restart

নেটওয়ার্ক রিস্টার্ট করার পর, রাউটিং টেবিলে একটি স্ট্যাটিক রুট দেখা যাচ্ছে।
আপনি সার্ভার বুট হলে স্বয়ংক্রিয়ভাবে স্ট্যাটিক রুট যোগ করার জন্য rc.local ফাইলে একটি কমান্ডও যোগ করতে পারেন। ফাইলটি খুলুন:
# nano /etc/rc.local
এবং স্ট্যাটিক রুট যোগ করার কমান্ডটি লিখুন:
# ip route add 192.168.0.0/24 via 192.168.1.1

তবে আপনার সার্ভার রিস্টার্ট হলে, সিস্টেম বুটের সময় রুটটি স্বয়ংক্রিয়ভাবে যোগ হবে।
লিনাক্সে বিদ্যমান একটি রুট এন্ট্রি মডিফাই করা
একটি বিদ্যমান রুট পরিবর্তন করতে, আপনি ip route replace কমান্ড ব্যবহার করতে পারেন:
# ip route replace 192.168.0.0/24 via 192.168.1.1

রাউটিং টেবিলের সব مؤقت রুট রিসেট করতে, শুধু নেটওয়ার্ক সার্ভিস রিস্টার্ট করুন:
# service network restart
Restarting network (via systemctl): [ OK ]
# ip route
default via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.0.0/24 via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 metric 100
লিনাক্সে ডিফল্ট রুট বা ডিফল্ট গেটওয়ে পরিবর্তন কীভাবে করবেন?
আপনি ip route del কমান্ড ব্যবহার করে একটি ডিফল্ট রুট সরাতে পারেন:
# ip route del default via 192.168.1.1 dev enp0s3
CentOS/RHEL লিনাক্সে একটি নতুন ডিফল্ট রুট সেট করতে নিচের কমান্ড ব্যবহার করা হয়:
# ip route add default via 192.168.1.2 (গেটওয়ে IP ঠিকানা দিয়ে রুট)
# ip route add default via enp0s3 (ডিভাইস নাম দিয়ে রুট)
ডিফল্ট রুট সেটিংস পরিবর্তন করতে এই কমান্ড ব্যবহার করা হয়:
# ip route replace default via 192.168.1.2
