hi, let Avik connect you.

** You can give your thought about this content and request modifications if needed from Ask For Modifications page. Thank You.

** You can check all the posts on the Posts page.

** More about me in the About Me section.

VxLAN overlay network ব্যবহার করে multi-container host networking তৈরি করা [ FAQ and Troubleshooting]

এই লিখা VXLan নিয়ে পূর্ববর্তী দুটি লেখার সহায়ক লিখা। লিখা দুটির লিংক - পর্ব - ১ এবং পর্ব - ২

অনুরোধ - এই লিখা পড়ে যদি মনে হয় কোন জিনিস যুক্ত করে দিলে ভালো হয় যেটা আমি করি নি ... কাইন্ডলি কমেন্টে জানাবেন অথবা ssavi.ict@gmail.com এ একটা মেইল লিখে দেবেন। আমি ক্রেডিট দিয়ে যুক্ত করে দেবো। 

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

যেহেতু পুরো কাজটি Virtual Component দিয়ে হচ্ছে, তাই যখন আপনার PC বন্ধ করবেন তখন VM এর সবগুলো সেট আপ চলে যেতেই পারে। তাই vagrant suspend কমান্ড দিয়ে আপনি আপনার VM গুলো তখন যে অবস্থায় আছে সেই অবস্থাতেই স্লিপ মুডে রেখে দিতে পারেন। পরে vagrant up করলেই VM গুলো ঐ অবস্থা থেকেই চলা শুরু করবে। 

2. সবগুলো IP... 192.168 --- এই সিরিজে দেয়া। এর কোন বিশেষ কারণ আছে? 

বিশেষ কারণ বলতে আসলে কমিউনিকেশনের সুবিধার জন্য। সেম সিরিজের থাকলে আলাদা রাউটিং সেট আপ করতে হয় না। গেট ওয়ে টা অটোমেটিকালি সেট হয়ে যায়। আর আমি অন্যান্য IP Address দিয়ে ট্রাই করেছিলাম। কোন না কোন জায়গায় সমস্যা হয়েছে হয়তো তাই ঠিকঠাক PING পায় নি।  তবে র‍্যান্ডোমলি IP দেবেন না এটাই একটা পরামর্শ।

3. Docker Container সেট আপ করতে নিচের মতো লগ আসছে? 

Step 0 : FROM ubuntu Pulling repository ubuntu INFO[0012]
Error: Status 410 trying to pull repository library/ubuntu: "<html>\r\ 

যেই রিসোর্স আপনি Conatiner এর জন্য এক্সেস করতে চাচ্ছেন সেটা এভেইলেবল না। কোন রিসোর্স নিজের Container এ চান সেটা ঠিকঠাক মেনশন করে দিন। Docker Image ভার্সন টা ঠিকঠাক দিয়ে দেবেন। যেমন, ubuntu এর কোন স্পেসিফিক version মেনশন করে দিতে পারেন। 

4. Docker Container এর Networking Related কাজ করতে গিয়ে নিচের Log আসছে -

Port already attached for CONTAINER=docker1 and INTERFACE=eth0 

এর মানে আপনি যেই পোর্টের সাথে Interface কানেক্ট করতে চাচ্ছে সেটি অলরেডি কানেক্ট করা হয়ে গেছে। যদি এই সেট আপ রাখতে চান তাহলে কিছু করতে হবে না। না চাইলে আপনি  নিচে কমান্ড -

sudo ovs-docker del-ports ovs-br0 docker1

দিয়ে পোর্ট ডিলিট করে আবার সেট আপ করতে পারেন।

sudo ovs-docker add-port ovs-br0 eth0 docker1 --ipaddress=192.168.1.11/24 --gateway=192.168.1.1

আপনার পছন্দ মত Port Name, Container Name এবং IP Address, Gateway বসিয়ে নিন।

5. netstat -ntulp কমান্ড দিয়ে UDP Port স্ট্যাটাস চেক করলাম। কিন্তু সেখানে 4789 পোর্ট LISTENING এই মুডে দেখাচ্ছে না।

এই কমান্ড দেবার পর নিচের দুটো লাইন দেখাচ্ছে কিনা সেটা এনশিউর করেন । এতেই হবে - 

udp        0      0 0.0.0.0:4789            0.0.0.0:*                           -

udp6       0      0 :::4789                 :::*        

6. VXLan এর কানেক্টিভিটি করতে গিয়ে নিচের মত log আসছে - 

vagrant@vagrant-ubuntu-trusty-64:~$ sudo ovs-vsctl add-port ovs-br0 vxlan0 -- set interface vxlan0 type=vxlan options:re mote_ip=10.0.2.15 options:key=1000

ovs-vsctl: cannot create a port named vxlan0 because a port named vxlan0 already exists on bridge ovs-br0 

এর মানে হলো যেই ব্রিজ এVxLAN সেট আপ করতে চাচ্ছেন সেটি তে অলরেডি একই নামে vxlan সেট আপ করা হয়ে গেছে। এর জন্য আগের সেট আপ রিমুভ করে দিয়ে নতুন সেট আপ করতে পারেন। 

sudo ovs-vsctl del-port ovs-br0 vxlan0

sudo ovs-vsctl add-port ovs-br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.0.2.15 options:key=1000 options:dst_port=4789

7. Docker নিয়ে কাজ করতে গিয়ে নিচের মত অবস্থা হচ্ছে - 

vagrant@vagrant-ubuntu-trusty-64:~$ sudo docker run -d --net=none --name docker3 ubuntu-docker


FATA[0000] Error response from daemon: Conflict. The name "docker3" is already in use by container f528e6cf8347. You have to delete (or rename) that container to be able to reuse that name. 

এর মানে হচ্ছে docker3 অলরেডি ব্যবহৃত হচ্ছে। আপনি চাইলে ডিলিট করে পুনরায় সেট আপ করতে পারেন। 

sudo docker rm f528e6cf8347