ফেজ ৩ — নেটওয়ার্ক ও স্টোরেজ#
৮টি লেসন · লেভেল: মধ্যম
VPS ব্যবসায় সবচেয়ে বেশি সাপোর্ট টিকিট আসে নেটওয়ার্ক থেকে। এই ফেজটি ভালো করে পড়ুন।
এই ফেজে কী আছে#
| লেসন | কী শিখবেন |
|---|---|
| ১ — নেটওয়ার্ক মোড: কোনটি কখন | ছয়টি মোডের কোনটি আপনার IP বরাদ্দে খাটে |
| ২ — IPv4 ব্লক তৈরি ও বরাদ্দ | ব্লক বানিয়ে নোডে বরাদ্দ করা |
| ৩ — IPv6 ব্লক ও রুট ব্লক | মাস্টার সাবনেট ভাগ করে প্রতি VM-কে একটি /64 |
| ৪ — NAT সেটআপ | একটি পাবলিক IP-তে অনেক VM চালানো |
| ৫ — নেটওয়ার্ক ফিল্টারিং | এক কাস্টমার যেন অন্যের IP বা MAC না নিতে পারে |
| ৬ — rDNS ও DHCP | মেইলের জন্য PTR, আর VM-এ IP বসানোর দুই পথ |
| ৭ — স্টোরেজের ধরন | স্থানীয় ডিস্ক না শেয়ার্ড স্টোরেজ |
| ৮ — হাইপারভাইজার অ্যাসেট: GPU ও CPU পিনিং | নির্দিষ্ট ডিভাইস বা কোর একটি VM-কে দেওয়া |
লেসন ১ — নেটওয়ার্ক মোড: কোনটি কখন#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: VM-এর নেটওয়ার্ক দেওয়ার ছয়টা উপায় আছে, আর পছন্দমতো একটা বেছে নেওয়ার সুযোগ আপনার নেই। প্রোভাইডার কীভাবে IP দিয়েছে সেটাই ঠিক করে দিয়েছে। MacVTap ডিফল্ট আর সাধারণত ওটাই ঠিক। IP দামি হলে NAT।
সহজ ভাষায়#
VirtFusion ছয় ধরনের নেটওয়ার্ক দিতে পারে। পছন্দ নির্ভর করে প্রোভাইডার আপনাকে কীভাবে IP দিয়েছে তার উপরে।
| মোড | কীভাবে কাজ করে | কখন ব্যবহার করবেন |
|---|---|---|
| Direct (MacVTap) | VM সরাসরি ফিজিক্যাল NIC-এর উপরে বসে, নিজস্ব MAC পায় | ডিফল্ট। প্রোভাইডার IP রুট করে দিলে সবচেয়ে সহজ |
| Bridged | লিনাক্স ব্রিজ (br0) দিয়ে VM LAN-এ যুক্ত হয় | পুরনো সেটআপ, বা ব্রিজে বিশেষ নিয়ম দরকার হলে |
| Routed | হোস্ট রাউটার হিসেবে কাজ করে, প্রতি VM-এ /32 রুট | প্রোভাইডার MAC ফিল্টার করলে |
| NAT | হাইপারভাইজারে একটি পাবলিক IP, VM-রা প্রাইভেট IP | IP-র দাম বেশি বা সংখ্যা কম হলে |
| Open vSwitch Bridged | OVS ব্রিজ — VLAN, ফ্লো নিয়ন্ত্রণ | বড় সেটআপ, VLAN-ভিত্তিক আইসোলেশন |
| Isolated | শুধু হোস্ট ও নিজেদের মধ্যে | ভেতরের নেটওয়ার্ক, পরীক্ষা |
MacVTap ১.৭.২ সংস্করণ থেকে ডিফল্ট এবং বেশিরভাগ ক্ষেত্রে বাড়তি কনফিগ লাগে না।
সতর্কতা: প্রোভাইডার প্রায়ই সার্ভারপ্রতি IP বেঁধে দেয় (ARP/MAC ফিল্টার)। এক নোডের IP অন্য নোডের VM-এ বসালে প্যাকেট নীরবে হারায় — কোনো এরর আসে না। কোন IP কোন নোডের, তা লিখে রাখুন।
ইন্টারফেসের নাম ভুল হলে#
Unable to get index for interface eth0: No such deviceMacVTap-এর ইন্টারফেসের নাম ভুল। নোডে ip a চালিয়ে আসল নাম দেখুন, তারপর Hypervisor → Networks → Primary Network → Interface Name ঠিক করুন।
লেসন ২ — IPv4 ব্লক তৈরি ও বরাদ্দ#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: প্রথমে VirtFusion-কে বলুন কোন IP আপনার, তারপর ওই ব্লকটা একটা হাইপারভাইজারকে দিন। আসল কথা দ্বিতীয় অংশে। assign না করলে ব্লক বসেই থাকবে, আর প্রতিটা বিল্ড "no IP available" বলে মরবে।



ধাপে ধাপে#
- Admin → IP Address Blocks → Create Block, ধরন IPv4
- নেটওয়ার্কের তথ্য দিন: সাবনেট, গেটওয়ে, নেটমাস্ক
- ব্যবহারযোগ্য রেঞ্জ যোগ করুন (শুরু ও শেষ IP)
- ব্লকটি এক বা একাধিক হাইপারভাইজারে অ্যাসাইন করুন
অ্যাসাইন না করলে ব্লক অকেজো — সার্ভার তৈরির সময় "no IP available" আসবে।
বরাদ্দের নিয়ম#
- সার্ভার তৈরির সময় প্যাকেজে বলা সংখ্যক IPv4 স্বয়ংক্রিয়ভাবে বসে
- পরে বাড়ানো-কমানো যায় (API:
/servers/{id}/ipv4Qty) - গেটওয়ে, নেটওয়ার্ক ও ব্রডকাস্ট ঠিকানা রেঞ্জের বাইরে রাখুন
ব্যবহারিক পরামর্শ#
| অভ্যাস | কারণ |
|---|---|
| প্রতি নোডের ব্লক আলাদা রাখুন | ভুল নোডে IP যাওয়া ঠেকায় |
| কিছু IP সংরক্ষিত রাখুন | মাইগ্রেশন ও জরুরি কাজে লাগে |
| ব্লকের নামে লোকেশন লিখুন | পরে খুঁজতে সুবিধা |
লেসন ৩ — IPv6 ব্লক ও রুট ব্লক#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: IPv6 এত বেশি যে সাধারণত প্রতিটা VM একটা গোটা /64 পায়। আপনি বড় সাবনেট দেবেন, VirtFusion ছোট করে কাটবে। প্রতিটাকে /64 দিতে মন না চাইলে routed block দিয়ে আরও ছোট দেওয়া যায়।
সহজ ভাষায়#
IPv6-এ ঠিকানা প্রায় অফুরন্ত, তাই প্রতিটি VM-কে সাধারণত একটি সাবনেট দেওয়া হয়।
- Create Block → IPv6
- মাস্টার সাবনেট দিন (যেমন
2001:db8:100::/48) - তার ভেতরে ছোট সাবনেটে ভাগ করুন (সাধারণত
/64প্রতি VM) - অব্যবহৃত অংশ ব্ল্যাকলিস্ট করা যায়
- হাইপারভাইজারে অ্যাসাইন করুন
রুট ব্লক#
প্রতি VM-এ পুরো /64 দিতে না চাইলে আরও ছোট সাবনেট দেওয়া যায়। প্রোভাইডার বড় ব্লক রুট করে দিলে VirtFusion সেই ব্লকের ভেতরে /128, /127 বা /126 সাবনেট বরাদ্দ করতে পারে।
cloud-init ও IPv6#
Ubuntu টেমপ্লেটে রাউটার অ্যাডভার্টাইজমেন্ট বন্ধ রাখা দরকার হতে পারে, নাহলে VM নিজে থেকেই বাড়তি ঠিকানা নেয়। cloud-init দিয়ে netplan ফাইল বসানো যায়:
# /etc/netplan/99-user-conf.yaml — cloud-init write_files দিয়ে বসানো হয়
network:
version: 2
ethernets:
ens3:
accept-ra: falseলেসন ৪ — NAT সেটআপ#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: নোডে একটা পাবলিক IP, বাকি সব VM প্রাইভেট রেঞ্জে, আর বাইরে থেকে ঢুকতে পোর্ট ফরওয়ার্ডিং। IP দামি হলে সত্যিই টাকা বাঁচে। বিনিময়ে হাইপারভাইজারে Dnsmasq আর HAProxy বসাতে হয়, মানে যন্ত্রপাতি বাড়ে।
সহজ ভাষায়#
NAT মানে: হাইপারভাইজারে একটি পাবলিক IPv4, আর সব VM প্রাইভেট রেঞ্জে (যেমন 192.168.200.0/24)। বাইরে থেকে ঢোকা হয় পোর্ট ফরওয়ার্ডিং দিয়ে। IP-র দাম বেশি হলে এটি খরচ অনেক কমায়।
যা লাগবে#
হাইপারভাইজারে Dnsmasq ও HAProxy ইনস্টল থাকতে হবে। তারপর একটি নেটওয়ার্ক XML ফাইল বানাতে হয়, যেখানে IP রেঞ্জ ও প্রধান ডিভাইস লেখা থাকে।
VirtFusion-এর দিকে#
- ওই প্রাইভেট রেঞ্জটি সাধারণ IP ব্লক হিসেবে যোগ করুন
(.0, .1 আর .255 বাদ রাখুন)
- হাইপারভাইজারের নেটওয়ার্ক টাইপ NAT v1, ইন্টারফেসের নাম natbr0
IPv6#
NAT-এ থাকা VM-কেও নেটিভ IPv6 দেওয়া যায় — নেটওয়ার্ক কনফিগে বৈধ IPv6 ঠিকানা (সম্ভব হলে /64) উল্লেখ করলে হয়।
তিনটি সীমা
- কন্ট্রোল ও হাইপারভাইজার একই মেশিনে হলে NAT চলবে না — প্রক্সি পোর্ট সংঘাত করে
- IPv4 NAT-এ VM-এর প্রাথমিক ইন্টারফেসই ব্যবহার করতে হয়
- NAT ইন্টারফেসওয়ালা সার্ভার মাইগ্রেট করা যায় না (live বা hybrid, কোনোটিই নয়)
লেসন ৫ — নেটওয়ার্ক ফিল্টারিং (IP হাইজ্যাক ঠেকানো)#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: এক ব্রিজে দুই কাস্টমার মানে বিপদ। ফিল্টার না থাকলে একজন আরেকজনের IP নিজের VM-এ বসিয়ে ট্রাফিক টেনে নিতে পারে, MAC-ও নকল করতে পারে। ফিল্টার চালু রাখুন। "None" কখনোই বেছে নেবেন না।
সহজ ভাষায়#
একই ব্রিজে থাকা এক কাস্টমার অন্যের IP বসিয়ে ট্রাফিক চুরি করতে পারে, বা MAC স্পুফ করতে পারে। VirtFusion-এ ব্রিজ পর্যায়ের ফিল্টার এটি ঠেকায়।
| ফিল্টার | কী করে |
|---|---|
| None | কিছুই না — ব্যবহার করবেন না |
| Libvirt | libvirt-এর মানসম্মত ফিল্টার (MAC স্পুফ ও IP চুরি ঠেকায়) |
| Native Standard | Libvirt-এর সমান নিয়ম, VirtFusion-এর নিজস্ব বাস্তবায়ন |
| Native Performance (IPv4) | ন্যূনতম নিয়ম, শুধু IPv4 — দ্রুততম |
| Native Performance (IPv4 + IPv6) | ন্যূনতম নিয়ম, সাথে ICMPv6 সামলানো |
নতুন হাইপারভাইজারে ডিফল্ট Native Performance (IPv4 + IPv6) (২.৪ সংস্করণ থেকে)। পুরনো ইনস্টলে Libvirt ফিল্টার রয়ে যায়, হাতে বদলাতে হয়।
বিদ্যমান সার্ভারে প্রয়োগ#
ফিল্টার বদলালে তা কেবল নতুন সার্ভারে বা যেসব সার্ভারে কোনো অ্যাকশন চলেছে সেখানে বসে। সব সার্ভারে একসাথে বসাতে কন্ট্রোল সার্ভারে:
vfcli-ctrl server:configurations HYPERVISOR_ID --options=networkকাস্টম ফিল্টার#
ডিফল্ট কনফিগ কপি করে /home/vf-data/conf/netfilters/-এ রাখুন — JSON ফাইলে ebtables নিয়ম, set ও unset অংশসহ।
লেসন ৬ — rDNS ও DHCP#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: কাস্টমার মেইল সার্ভার চালালে rDNS লাগবেই, না হলে মেইল স্প্যামে যাবে। হয় প্রতিবার টিকিট এলে নিজে হাতে বসাবেন, নয়তো Automation চালু করে কাস্টমারকেই PTR বসাতে দেবেন। দ্বিতীয়টা পুরো এক শ্রেণির টিকিট শেষ করে দেয়।
রিভার্স DNS#
মেইল পাঠানোর জন্য কাস্টমারের rDNS দরকার হয়। VirtFusion দুই ভাবে দেয়:
| মোড | মানে |
|---|---|
| Manual | কাস্টমার অনুরোধ করে, আপনি হাতে বসান |
| Automation | প্যানেল সরাসরি DNS প্রোভাইডারে রেকর্ড লেখে |
Automation চালু থাকলে কাস্টমার নিজেই প্যানেল থেকে PTR বদলাতে পারে — সাপোর্ট টিকিট অনেক কমে।
হাইপারভাইজারে DHCP#
কিছু নেটওয়ার্ক নকশায় VM-দের DHCP দিয়ে IP দেওয়া হয়। তখন হাইপারভাইজারে একটি DHCP সার্ভার (dnsmasq) চালাতে হয়। VirtFusion-এর DHCP গাইড এই সেটআপ দেখায়।
সাধারণ পরামর্শ: সম্ভব হলে স্ট্যাটিক (cloud-init) ব্যবহার করুন। DHCP-তে লিজ শেষ হওয়া, ভুল রেঞ্জ ও দুই সার্ভারে একই IP — এই সমস্যাগুলো বাড়ে।
লেসন ৭ — স্টোরেজের ধরন#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: ডিফল্টে VM-এর ডিস্ক থাকে যে নোডে VM চলে সেই নোডের লোকাল ডিস্কে। দ্রুত আর সহজ, তবে নোড মরলে ডিস্কও সাথে যায়। Ceph আর বাকিগুলো ঠিক এই সমস্যা সারাতেই আছে, বিনিময়ে জটিলতা বাড়ে।
সহজ ভাষায়#
ডিফল্টে VM ডিস্ক থাকে হাইপারভাইজারের স্থানীয় ডিস্কে (/home)। বড় সেটআপে শেয়ার্ড স্টোরেজ যুক্ত করা যায়।
| ধরন | বৈশিষ্ট্য | কখন |
|---|---|---|
| Local (ডিফল্ট) | দ্রুততম, সহজ। নোড নষ্ট হলে ডিস্কেও পৌঁছানো যাবে না | ছোট ও মাঝারি প্রোভাইডার |
| Ceph RBD | বিতরণকৃত, রিডান্ডেন্ট, live migration সহজ | বড় ক্লাস্টার, ৩+ নোড |
| Remote Filesystem | NFS-জাতীয় মাউন্ট | ভাগাভাগি করা ইমেজ, ব্যাকআপ |
| StorPool | বাণিজ্যিক উচ্চ-পারফরম্যান্স SDS | এন্টারপ্রাইজ |
| Lightbits | NVMe/TCP ভিত্তিক | কম লেটেন্সি, বড় স্কেল |
বেছে নেওয়ার নিয়ম#
- শুরু করছেন? স্থানীয় NVMe দিয়ে শুরু করুন — সবচেয়ে কম জটিলতা, সবচেয়ে বেশি IOPS
- একটি নোড নষ্ট হলেও VM চালু রাখতে চান? Ceph ছাড়া উপায় নেই
- মনে রাখুন: Ceph-এ লেটেন্সি বাড়ে, নেটওয়ার্ক আলাদা করতে হয় (কমপক্ষে ১০ GbE)
সতর্কতা: ডিজাস্টার রিকভারি (
vfcli-hv dr:backup) শুধু স্থানীয় ডিস্কের ব্যাকআপ নেয় — Ceph-এর মতো শেয়ার্ড স্টোরেজ বাদ পড়ে। শেয়ার্ড স্টোরেজের নিজস্ব রিডান্ডেন্সি ও ব্যাকআপ আলাদা করে ভাবতে হবে।
লেসন ৮ — হাইপারভাইজার অ্যাসেট: GPU ও CPU পিনিং#
ভাই, জিনিসটা কী? আসলে ব্যাপারটা হলো: আসল GPU, USB ডিভাইস বা নির্দিষ্ট CPU কোর সরাসরি একটা VM-কে দিতে চাইলে এটাই পথ। আগে BIOS-এ IOMMU ঠিক করুন, তারপর অ্যাসেটগুলো গ্রুপে ফেলে গ্রুপটা প্যাকেজে জুড়ে দিন।
সহজ ভাষায়#
GPU, USB ডিভাইস বা নির্দিষ্ট CPU কোর কোনো VM-কে সরাসরি দিতে চাইলে "Asset" ব্যবহার হয় (৫.১ সংস্করণ থেকে)।
কনফিগ#
Compute Resources → Hypervisors → [নোড] → Assets
- নাম দিন, ধরন বাছুন (যেমন "Device"), ডিভাইসের XML দিন
- GPU পাসথ্রুর জন্য আগে IOMMU গ্রুপিং ঠিক থাকতে হবে (BIOS-এ VT-d/AMD-Vi চালু)
- অ্যাসেটগুলো গ্রুপ করে প্যাকেজে যুক্ত করতে হয়
প্যাকেজে অ্যাসেট গ্রুপ যুক্ত থাকলে সার্ভার তৈরির সময় ফাঁকা অ্যাসেট স্বয়ংক্রিয়ভাবে বসে। API দিয়ে সার্ভার তৈরির সময় ডিফল্ট গ্রুপ ওভাররাইড করা যায়।
সীমা#
সতর্কতা: অ্যাসেট হাইপারভাইজার-নির্দিষ্ট। কোনো সার্ভারে অ্যাসেট যুক্ত থাকলে সেটি মাইগ্রেট করা যাবে না। GPU VPS বিক্রি করলে এই সীমাটি বিজ্ঞাপনেই বলে দিন।
কাস্টমারকে অ্যাসেটের তথ্য দেখানো যায়, সাথে নিজের আইকনও দেওয়া যায় (PNG, ~২৫০×২৫০, রাখতে হয় /opt/virtfusion/app/control/public/custom/img/assets/-এ)।
ফেজ ৩ শেষে আপনি যা পারবেন#
- সঠিক নেটওয়ার্ক মোড বেছে নেওয়া
- IPv4 ও IPv6 ব্লক তৈরি করে নোডে বসানো
- NAT দিয়ে কম IP-তে বেশি VM চালানো
- IP হাইজ্যাক ঠেকানো
- rDNS ও DHCP-এর সিদ্ধান্ত নেওয়া
- স্টোরেজ ব্যাকএন্ড বাছা
- GPU পাসথ্রু ও তার সীমা বোঝা
পরবর্তী: ফেজ ৪ — দৈনন্দিন অ্যাডমিন