Monday, April 29, 2019

রিপ (Routing Information Protocol) কি? রিপ কিভাবে কাজ করে

রিপ কি

RIP রিপ হল Routing Information Protocol। রিপ একটি ডিস্টেন্স ভেক্টর রাউটিং প্রটোকল যা হপ (এখানে হপ বলতে রাউটারকে বুঝানো হয়েছে) কাউন্ট এর উপর ভিত্তি করে কাজ করে । ডিসট্যান্স ভেক্টর রাউটিং  প্রটোকলে এর  মাধ্যমে রাউটার জানতে পারে নেটওয়ার্কের প্রতিবেশী রাউটার সম্পর্কে । রিপ নিয়মিত নেটওয়ার্ক আপডেটের এডভার্টাইজমেন্ট করে এবং এই এডভার্টাইজমেন্ট  প্রতি 30 সেকেন্ড পাঠায় । এটি মেট্রিক মান গণনা করার জন্য হপ কাউন্ট ব্যবহার করে, যা নেটওয়ার্কের কাছে পৌঁছানোর সর্বোত্তম পথ নির্ধারণ করে। RIP সর্বোচ্চ 15 টি রাউটার সমর্থন করে, এবং 16 তম হপ বা রাউটার অপ্রচলিত বা অনির্ধারিত বলে বিবেচিত হয়। সুতরাং, RIP ছোট নেটওয়ার্কে দক্ষতার  সাথে কাজ করতে পারে ।

রিপ এর তিনটি সংস্করণ রয়েছে। IPv4 এ RIP V1 এবং RIP V2 সমর্থন করে, এবং RIPng বা RIP পরবর্তী প্রজন্ম IPv6 দ্বারা বাস্তবায়িত হয়। RIP V1 classfull নেটওয়ার্ককে advertises এবং সাবনেট সাপোর্ট করে না, কিন্তু RIP V2 একটি সাবনেটিং সাপোর্ট করে।

রিপ এর বৈশিষ্ট সমুহ:

  • রিপ একটি ডিস্টেন্স ভেক্টর রাউটিং প্রোটকল
  • ছোট নেটওয়ার্ক এর জন্য রিপ উপযোগি
  • রিপ প্রতি 30 সেকেন্ড পরপর তার রাউটিং টেবিল তার প্রতিবেশি রাউটার এর কাছে শেয়ার করে ।
  • রিপ ভার্সন 1 এ সাবনেটিং সাপোর্ট করে না তবে রিপ ভার্সন 2 তে সাবনেটিং সাপোর্ট করে ।
  • রিপ এর তিনটি সংকরণ রয়েছে যথা : RIP v1 RIP v2 RIPng

মেট্রিক

রিপ হপ কাউন্ট এর উপর ভিত্তি করে রুট কালকুলেশন করে থাকে । এখন প্রশ্ন হলে হপ কি? নেটওয়ার্ক এ সংযুক্ত প্রতিটি রাউটারকে হপ বলা হয়। একটি নেটওয়ার্কে যদি অনেকগুলি রাউটার থাকে তবে সোর্স রাউটার তার ডেস্টিনেশন রাউটার এর কাছে কোন ডাটা পাঠাতে চায় তাহলে যে পথে সে সবচেয়ে কম রাউটার পাবে সেই পথে সে ডাটা পাঠাবে । রিপ এ সর্বোচ্চ 16টি পর্যন্ত রাউটার সাপোর্ট করে । যদি 16টির পর কোন রাউটার থাকে তাহলে রিপ তা সাপোর্ট করে না । যদি কোন নেটওয়ার্ক এর মেট্রিক 16 হয় তাহলে ঐ নেটওয়ার্কটি রিপ তার রাউটিং টেবিল থেকে বাদ দিয়ে দেয়।


উপরের চিত্রটিতে খেয়াল করলে আমরা দেখতে পাব রাউটার R1 যদি Subnet X এ যেতে চায় তাহলে সে তিনটি পথে যেতে পারে । তবে এই তিনটি পথে যাওয়ার জন্য তার তিন রকমের মেট্রিক রয়েছে। যদি রাউটার R1 রাউটার R7 হয়ে Subnet X এ যেতে চায়, তাহলে তার মেট্রিক হবে 2 কারণ এক্ষেত্রে তাকে 2টি রাউটার, রাউটার R8 ও R8 অতিক্রম করতে হবে । আর যদি R5 এর মাধ্যমে যেতে চায় তাহলে তার মেট্রিক হবে 3 কারণ তাকে তিনটি রাউটার অতিক্রম করতে হবে এবং যদি R2 এর মাধ্যমে যেতে চায় তাহলে তার মেট্রিক হবে 4 এক্ষেত্রে তাকে 4টি রাউটার অতিক্রম করতে হবে। এই অবস্থায় রাউটার R1, R7 এর মাধ্যমে Subnet X এ যাবে । কারণ এই পথে সে সবচেয়ে কম মেট্রিক পাচ্ছে।

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

ডিস্টেন্স ভেক্টর রাউটিং প্রোটকল কিভাবে রুট ডিসকোভার করে?

আমরা যদি নিচের চিত্রের দিকে লক্ষ করি তাহলে দেখতে পাব এখানে দুইটি রাউটার R1 ও R2 রয়েছে এবং এই দুইটি রাউটারে মোট 4টি নেটওয়ার্ক রান করছে। নেটওয়ার্ক সমুহ হল A তে 100.30.11.0/24, C তে 100.30.1.0/24  এবং B তে 100.30.22.0/24 ও 10.30.21.0/24 এই চারটি নেটওয়ার্ক ।  একটি বিষয় হয়ত আমরা জানি তা হল রাউটারে যখন কোন রাউটিং প্রোটকল রান করে না তখন রাউটার শুধু তার ডাইরেক্টলি কানেকটেড নেটওয়ার্কদের শুধু চেনে অন্য কোন নেটওয়ার্কদের সে চিনে না । তদ্রুপ এখানে রাউটার R1 100.30.11.0/24 ও 100.30.1.0/24 নেটওয়ার্ক কে চিনে এবং R2 100.30.1.0/24, 100.30.22.0/24 ও 100.30.21.2/24 এই নেটওয়ার্কে চিনে ।


এই অবস্থায় যদি আমরা এর রাউটিং টেবিলটা দেখি তাহলে তা নিচের চিত্রের মত হবে । রাউটার R1 এর কাছে তার ডাইরেক্টলি কানেকটেড দুইটি নেটওয়ার্ক এবং রাউটার R2 এর কাছে তার ডাইরেক্টলি কানেকটেড তিনটি নেটওয়ার্ক এর রাউটিং টেবিল আছে ।


আমরা এবার যদি রাউটার R1 এবং R2 রিপ রান করাই তাহলে রাউটার R1 এবং R2 তাদের ডাইরেক্টলি কানেকটেড নেটওয়ার্ক সমুহ একে অপরের কাছে এডভার্টাইজমেন্ট করবে । এখানে একটি বিষয় খেয়াল করুন রাউটারের সাথে প্রতিটি ডাইরেক্টলি কানেকটেড নেটওয়ার্ক এর মেট্রিক থাকে শুণ্য/0। এবার রাউটার যখন এই নেটওয়ার্কটিকে এডভার্টাইজমেন্ট করে এই মেট্রিককে +1 করে পাঠায়। এবার যদি আমরা এর রাউটিং টেবিলটা দেখি তা নিচের চিত্রের মত হবে ।


দেখুন আমাদের এই টপোলজিতে টোটাল চারটি নেটওয়ার্ক রান করছে এবং এই চারটি নেটওয়ার্ক এর তথ্য প্রতিটি রাউটারের কাছে চলে গেছে। এখানে রাউার R1 100.30.11.0/24 নেটওয়ার্ক এবং রাউটার R2 100.30.22.0/24 ও 100.30.21.0/24 এই দুটি নেটওয়ার্ক এডভার্টাইজমেন্ট করে । এর পর যখন সকল রাউটারের কাছে সকল সাবনেট এর তথ্য চলে যায় তখনও কিন্তু রা তার রাউটিং টেবিলের সাবনেটগুলিকে এডভার্টাইজমেন্ট করতে থাবে এবং এই এডভার্টাইজমেন্ট প্রতি 30 সেকেন্ড পর পর হয়ে থাকে। রিপ যখন এডভার্টাইজমেন্ট পাঠায় তখন তার কাছে যে যে সাবনেটের তথ্য থাকে সেই সব সাবনেটকেই এডভার্টাইজমেন্ট করে থাকে। এক্ষেত্রে তার ডাইরেক্টলি কানেকটেড নেটওয়ার্ক ও রিপ এর মাধ্যমে পাওয়া নেটওয়ার্ককেও এডভার্টাইজমেন্ট করে । এর ফলে রিপে প্রচুর পরিমানে নেটওয়ার্ক লুপের সৃষ্টি হয়। তবে কিছু রুলস ব্যবহার করে এই লুপকে বন্ধ করা যায়, যাকে বলা হয় ‍স্পিল্ট হরিজন রুলস। আমরা এ বিষয়ে পরে আলোচনা করব। কোন রাউটারের কাছে  যখন কোন সাবনেটের তথ্য  আসে কিন্তু তার কাছে যদি ঐ সাবনেটের তথ্য আগে থেকে থাকে এবং যদি তার মেট্রিক কম হয় তাহলে সে এই এডভার্টাইমেন্টকে গ্রহন করে না । অর্থাৎ রিপ লোয়েষ্ট মেট্রিক এর সাবনেটকে তার রাউটিং টেবিলে এ্যড করে । রিপ এর ক্ষেত্রে আমাদের আর একটি বিষয় জানা প্রয়োজন তা হল রাউটারের কাছে যখন কোন রুট থাকে এবং 180 সেকেন্ড পর্যন্ত যদি ঐ নেটওয়ার্ক সম্পর্কে আর কোন আপডেট না আসে তাহলে রউটার ঐ নেটওয়ার্কটিকে আনরিচেবল বা অকার্যকর করে দেয় এবং তার মেট্রিক হয় 16।

Important Fasts of Distance Vector Routing Protocol

  • Periodic: Distance Vector Routing Protocol প্রতিনিয়ত তার রাউটিং টেবিল এর ইনফরমেশন সেন্ট করে থাকে। এবং এই সময় হচ্ছে 30 সেকেন্ড। প্রতি 30 সেকেন্ড পর পর রাউটার তার রাউটিং টেবিলের সাবনেট সমুহকে এডভার্টাইজমেন্ট করে থাবে ।
  • Full Updates: রাউটার যখন প্রতি 30 সেকেন্ড পর পর এই আপডেট পাঠায় তখন সে ফুল আপডেট পাঠায় । রাউটার পরিবর্তন বা নতুন রুট প্রোটোকল পাঠানোর পরিবর্তে সকল রুটকে আপডেট পাঠায়
  • Full Update Limited by Split Horizon rule: প্রিয়ডিক আপডেটের সময় রাউটার যে ফুল আপডেট পাঠায় আমরা Split Horizon rule ব্যবহার করে সেই ফুল আপডেটাকে বন্ধ করতে পারি । যার ফলে নেটওয়ার্কে লুপের সৃষ্টি হয় না ।

What is Routing Loop?

রাউটিং লুপ হল এমন একটি প্রক্রিয়া যেখানে একটি সোর্স রাউটার যখন কোন ডেস্টিনেশন রাউটার এর কাছে কোন পাকেট পাঠায়, ডেস্টিনেশন রাউটার তখন সেটি আবার সোর্স রাউটার এর কাছে ফেরত পঠায় এবং এই প্রক্রিয়া বার বার চলতে থাকে তখন তাকে বলা হয় নেটওয়ার্ক লুপ। নেটওয়ার্ক লুপের কারণে অপ্রয়োজনিয় ট্রাফিক জেনারেট হয় এবং ব্যন্ডউইথ এর অপচয় হয়। আমরা কয়েকটি পদ্ধতি ব্যবহার করে এই লুপকে বন্ধ করতে পারি, যথা:
  • Split Horizon Role
  • Route Poison
  • Poison Reverse
  • Hold Down Process and Hold Down Time
চলুন এবার আমরা দেখি কিভাবে রাউটিং লুপ সৃষ্টি হয় । রিপে যদি রাউটিং লুপ বন্ধ করার জন্য কোন লুপ প্রিভেনশন রুল না রান করানো হয় তাহলে কিভাবে রাউটিং লুপ সৃষ্টি হল আমরা তা বুঝার চেষ্ট করব । কিভাবে রাউটিং লুপ সৃষ্টি হয় তা বুঝার জন্য আমরা নিচের চিত্রের দিবে খেয়াল করি । এখানে মোট চারটি নেটওয়ার্ক রয়েছে এবং এই চারটি নেটওয়ার্ক এর ইনফরমেশন রাউটার R1 ও R2 এর কাছে রয়েছে ।


এবার কোন কারণে যদি রাউটার R2 এর ইন্টারফেস Fa 0/1 এর 100.30.22.0/24 এই সাবনেটটি ডাউন হয়ে গেছে । তাহলে এখন রাউটার R2 এর কাছে 100.30.22.0/24 এর নেটওয়ার্কটি আর নেই কিন্তু রাউটার R1 রাউটিং টেবিল দেখি তাহলে তার কাছে 100.30.22.0/4 এই নেটওয়ার্ক এর এইফরমেশন আছে যার মেট্রিক 1 এবং আউটগোয়িং ইন্টাফেস S 0/0। কিন্তু বাস্তবেই কি এই নেটওয়ার্কটি আছে? নেই কারণ এই নেটওয়াকটি ডাউন হয়ে গেছে । এখন রাউটার R1 যখন আবার এডভার্টাইজমেন্ট পাঠাবে তখন 100.30.22.0/24 এই নেটওয়ার্কটিকে মেট্রিক 2 করে রাউটার R2 এর কাছে পাঠাবে । রাউটার R2 তার রাউটিং টেবিলে দেখবে তার কাছে এই রকম কোন রুট নাই তা রাউটার R2 এই নেটওয়ার্কটিকে তার রাউটিং টেবিলে এড করে নিবে। যার আউটগোয়িং ইন্টাফেস হবে S 0/1/0।  এখন যখন কোন প্যাকেট রাউটার R1 রাউটার R2 এর কাছে পাঠাবে রাউটার R2 তখন পুনরায় তা R1 এর কাছে পাঠাবে এভাবে প্যাকেটি নেটওয়ার্কে ঘূরতে থাববে যতক্ষন না ঐ প্যাকেট এর TTL ভাল 0 না হয় । এভাবে নেটওয়ার্ক লুপ সৃষ্টি হয় ।

Split Horizon Role

Split Horizon রুল হচ্ছে! রাউটার ঐ সকল ইন্টারফেসের সাবনেটকে আপডেট এডভার্টাইজমেন্টে পাঠাবে না যেই ইন্টারফেস দিয়ে রাউটার এডভার্টাইজমেন্ট পাঠায় । বা রাউটার তার Outgoing interface এর সাবনেটকে এডবার্টাইজমেন্ট করে না।


আমরা উপরের চিত্রের দিকে খেয়াল করি, এখানে রাউটার R1 যখন রাউটার R2 এর কাছে রিপ আপডেট পাঠাবে তখন রাউটার R1 এর Outgoing interface হবে ‍S0/0 এবং রাউটার R2 যখন রাউটার R1 এর কাছে রিপ আপডেট পাঠায় তখন তার Outgoing interface হবে S 0/1/0। Split Horizon রুল কি করে রাউটার R1 যখন রাউটার R2 এর কাছে রিপ আপডেট পাঠাবে তখন শুধুমাত্র 100.30.11.0/24 এই সাবনেটটিকেই তার রিপ আপডেটে পাঠাবে কারণ Split Horizon Role এর ক্ষেত্রে আমরা জানি রাউটার তার Outgoing interface এর সাবনেটকে এডভাটাইজমেন্ট করে না । তেমনি ভাবে রাউটার R2 যখন রাউটার R1 এর কাছে রিপ আপডেট পাঠায় তখন শুধু মাত্র 100.30.22.0/24 ও 100.30.21.0/24 এই দুইটি নেটওয়ার্ক কে রিপ এডভার্টাইজমেন্টে পাঠায় 100.30.1.0/24 এই নেটওয়ার্কে রিপ এডভার্টাইজমেন্টে পাঠায় না কারন এটি তার Outgoing interface এর সাবনেট। আমি আরো একবার বিষয়টি বুঝানোর চেষ্টা করি । যখন কোন রাউটারে Split Horizon রুল রান করবে তখন ঐ রাউটাররে রাউটিং টেবিলে যে যে সাবনেট থাকবে, ঐ সকল সাবনেটের যেটা আউটগোয়িং ইন্টারফেস থকবে, সেই ইন্টারফেস দিয়ে ঐ সকল সাবনেট এর ইনফরমেশন এডভার্টাইজমেন্ট হবে না । আমরা যদি উপরের চিত্রে রাউটিং টেবিল টা দেখি তাহলে R1 এর রাউটিং টেবিলে মোট তিনটি নেটওয়ার্ক (100.30.21.0/24, 100.30.22.0/24, 100.30.1.0/24) রয়েছে যাদের আউটগোয়িং ইন্টারফেস হল S 0/0 । কাজেই এই ইন্টারফেস দিয়ে এই তিনটি নেটওয়ার্ক এর ইনফরমেশন এডভার্টাইজমেন্ট হবে না । তাহলে বাকি থাকল 100.30.11.0/24 এই নেটওয়ার্কটি যার আউটগোয়িং ইন্টাফেস FA 0/0 ফলে এই নেটওয়ার্কটি রাউটার R2 এর কাছে এডভার্টাইজমেন্ট হবে। যেটা আমাদের প্রয়োজন । কারণ রাউটার R2 ত এই তিনটি নেটওয়ার্ক (100.30.21.0/24, 100.30.22.0/24, 100.30.1.0/24) চিনে এগুলি তার ডাইরেক্টলি কানেকটেড নেটওয়ার্ক । ফলে এগুলি তার কাছে এডভার্টাইজমেন্ট করার প্রয়োজন নেই। অনুরুপ ভাবে যদি আমরা রাউটার R2 এর রাউটিং টেবিল দেখি তাহলে রাউটার R2 ও শুধু নেটওয়ার্ক ( 100.30.21.0/24 এবং 100.30.22.0/24) এই দুটি নেটওয়ার্ক রাউটার R1 এর কাছে এডভার্টাইজমেন্ট করবে ।

Route Poison

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


Route Poison এর ক্ষেত্রে এ রকম টা হয় না । Route Poison এ যখন কোন সাবনেট ডাউন হয়ে যায় সাথে সাথে ঐ রাউটার তার ইনফরমেশন সে এডভার্টাইজমেন্ট করে দেয় যে তারই এই সাবনেটটি ডাউন হয়ে গেছে। আমরা যদি উপরের চিত্রের দিকে খেয়াল করি। এখানে রাউটার R1 এর Fa 0/1 এই ইন্টারফেসটি ডাউন হয়ে গেছে । সাথে সাথে সে তার রাউটিং টেবিল থেকে ত সেই রুটটা রিমুভ করে দিয়েছে এবং সেই সাথে এই রুট এর মেট্রিক 16 করে তার পাশের রাউটার R2 এর কাছেও তা এডভার্টাইজমেন্ট করে দিয়েছে। একটি বিষয় বলে রাখি যে রিপ এর ক্ষেত্রে কোন সাবনেট এর মেট্রিক যদি 16 হয় তাহলে রাউটার বুঝতে পারে যে সেই রুটটি ডাউন হয়ে গেছে বা রুটটি আনরিচেবল। তাহলে Route Poison এর ক্ষেত্রে কি হয় । নেটওয়ার্কে যদি কোন সাবনেট ডাউন হয়ে যায় সাথে সাথে সেই রাউটার সেই সাবনেটটিকে মেট্রিক 16 করে তার পাশের রাউটার এর কাছে তা এডভার্টাইজমেন্ট করে দেয়।

কিন্তু এখানে একটি সমস্য আছে তা হল! টপোলজিতে ত আরো অনেক রাউটার থাকতে পারে এখন যে সাবনেটটি ডাউন হয়ে গেল সেই এর ইনফরমেশন তাদের কাছেও আছে । এখন এই ডাউন হওয়া সাবনেটের ইনফরমেশন তাদের কাছে পেীছানোর আগেই যদি সে তাদের ঐ সাবনেটের ইনফরমেশন শেয়ার করে দেয় তাহলে তখন সে এই রুটটিকে আবার তার রাউটিং টেবিলে এড করে নিবে ফলে আরা এটি ফেক রুট তার রাউটিং টেবিলে থকল ।

Poison Reverse

Route Poison এর ক্ষেত্রে আমরা দেখেছিলাম যে নেটওয়ার্ক টপোলজিতে যদি কখোন কোন সাবনেট ডাউন হয়ে যায় তাহলে ঐ সাবনেটটির মেট্রিক 16 করে সেই তার পাশের রাউটার এর কাছে তা এডভার্টাইজমেন্ট করে দেয় । যে রাউটার এর কাছে এই এডভাটাইজমেন্ট টা গেল সে ঐ রুটটিকে মেট্রিক 16 করে তার রাউটিং টেবিলে এড করে নিল কিন্তু সে এই রুটটাকে আর এডভাটাইমেন্ট করে করবে না ।


আমরা যদি উপরের চিত্রের দিকে খেয়াল করি। এখানে রাউটার R1 এর 100.30.22.0/24 এই সাবনেটটি ডাউন হয়ে গেছে । সাথে সাথে সে তার রাউটিং টেবিল থেকে ত সেই রুটটা রিমুভ করে দিয়েছে এবং সেই সাথে এই রুট এর মেট্রিক 16 করে তার পাশের রাউটার R2 এর কাছেও তা এডভার্টাইজমেন্ট করে দিয়েছে। R2 কি করবে সে আবার সাথে সাথে এই রুটটাকে মেট্রিক 16 অবস্থায় তার পাশের রাউটার এর কাছে শেয়ার করে দিবে । ফলে রাউটার R2 এবং R1 দুজনের কাছে এই সাবনেটটির 100.30.22.0/24 মেট্রিক 16 হিসেবে একটি ইনফরমেশন তাদের কাছে থকবে । এখন দুটি রাউটারই জানতে পারে যে এই রুটটি আনরিচেবল হয়ে গেছে । ফলে এখানে কোন ফেক রুট থাকে না ।

Hold Down Process and Hold Down Time

হোল্ড ডাউন প্রসেস এবং হোল্ড ডাউন টাইম টা হল! যখন নেটওয়ার্কে কোন রাউটার এর কাছে কোন সাবনেটএর মেট্রিক 16 হিসেবে কোন ইনফরমেশন আসে তখন সে একটি প্রসেস ক্রিয়েট করে যাকে বলা হয় হোল্ড ডাউন প্রসেস এবং এই প্রসেসটি একটি নির্দিষ্ট সময় পর্যন্ত চলে এই সময়টাকে বলে হোল্ড ডাউন টাইম। কোন রাউটারের কাছে মেট্রিক 16 হিসেবে কোন রুট আসলে হোল্ড ডাউন প্রসেস স্টাষ্ট হল এবং তা 180 সেকেন্ড পর্যন্ত চলতে থাবে এই সময়ের মধ্যে যদি ঐ সাবনেট সম্পর্কে বেটার মেট্রিক এর কোন ইনফরমেশন আসে তাহলেও তা তার রাউটিং টেবিলে এড করবে না ।


এটি ছিল RIP Concept বা রিপ এর থিওরিক্যাল আলোচনা। আমরা এর পর রিপ বিভাবে কনফিগারেশন করতে হয় তা দেখব! ইনশাআল্লাহ্‌। এই আর্টিকেলটি যদি আপনাদের ভাল লাগে তাহলে অবশ্যই কমেন্ট করে জানাবেন।

No comments:

Post a Comment