PVE প্রক্সমক্স বাংলা ডকুমেন্টেশন

ফেজ ২ — নেটওয়ার্কিং বেসিক (Networking Fundamentals)#

৯টি লেসন · আনুমানিক ৫ ঘণ্টা · লেভেল: শুরুর

"VM A কেন VM B-কে পিং করতে পারে না?" — এই প্রশ্নের উত্তর প্রায় সবসময় এই ফেজে আছে।


লেসন ১ — IP অ্যাড্রেসিং ও সাবনেটিং (৪৫ মিনিট)#

সহজ ভাষায়#

প্রক্সমক্সে প্রতিটি জিনিসের একটি IP লাগে: হাইপারভাইজার, প্রতিটি VM, প্রতিটি কন্টেইনার, ক্লাস্টার নেটওয়ার্ক, Ceph রেপ্লিকেশন নেটওয়ার্ক। সাবনেটিং মানে IP-এর জায়গাটাকে যুক্তিসংগত ভাগে ভাগ করা।

IPv4 গঠন#

একটি IPv4 ঠিকানা ৩২ বিট, চারটি অংশে (প্রতিটি ০–২৫৫)। ঠিকানার দুইটি ভাগ: নেটওয়ার্ক অংশ (একই সাবনেটের সবার জন্য এক) আর হোস্ট অংশ (প্রতিটি ডিভাইসের আলাদা)। /24 বা /16 বলে দেয় কত বিট নেটওয়ার্ক অংশ।

CODE
192.168.10.50/24 → নেটওয়ার্ক: 192.168.10.0, হোস্ট: .50, ব্রডকাস্ট: 192.168.10.255
/24 = ২৫৬টি ঠিকানা, ২৫৪টি ব্যবহারযোগ্য
/25 = ১২৮টি ঠিকানা, ১২৬টি ব্যবহারযোগ্য
/16 = ৬৫৫৩৬টি ঠিকানা, ৬৫৫৩৪টি ব্যবহারযোগ্য
/30 = ৪টি ঠিকানা, ২টি ব্যবহারযোগ্য (পয়েন্ট-টু-পয়েন্ট লিংক)

প্রাইভেট IP রেঞ্জ#

রেঞ্জপরিমাণসাধারণ ব্যবহার
10.0.0.0/8~১ কোটি ৬০ লাখVM নেটওয়ার্ক
172.16.0.0/12~১০ লাখমাঝারি নেটওয়ার্ক
192.168.0.0/16৬৫৫৩৪বাসা ও অফিস

এই রেঞ্জগুলো ইন্টারনেটে রাউট হয় না। তাই ভেতরে নিরাপদে ব্যবহার করা যায়।

প্রক্সমক্সের জন্য সাবনেট পরিকল্পনা#

BASH
# 192.168.1.0/24  → ম্যানেজমেন্ট নেটওয়ার্ক (নোড, ওয়েব UI)
# 10.0.10.0/24    → VM নেটওয়ার্ক A (ওয়েব)
# 10.0.20.0/24    → VM নেটওয়ার্ক B (ডাটাবেস)
# 10.10.0.0/24    → Ceph/স্টোরেজ রেপ্লিকেশন (আলাদা NIC)
# 10.20.0.0/24    → Corosync ক্লাস্টার হার্টবিট (আলাদা NIC)

ip addr show          # সব ইন্টারফেস ও IP
ip -4 addr show       # শুধু IPv4
ip addr show vmbr0    # নির্দিষ্ট ব্রিজ

apt install ipcalc
ipcalc 192.168.1.0/24 # সাবনেটের হিসাব দেখায়

CIDR দ্রুত তালিকা#

প্রিফিক্সহোস্ট সংখ্যাকোথায়
/30পয়েন্ট-টু-পয়েন্ট লিংক
/29খুব ছোট সেগমেন্ট
/28১৪ছোট ক্লাস্টার, ম্যানেজমেন্ট
/27৩০ছোট VM পুল
/26৬২মাঝারি VM পুল
/25১২৬বড় VM পুল
/24২৫৪সাধারণ VLAN আকার — সবচেয়ে প্রচলিত
/23৫১০বড় ডিপ্লয়মেন্ট
/16৬৫৫৩৪বিশাল রেঞ্জ

লেসন ২ — DNS: নাম থেকে ঠিকানা (৩৫ মিনিট)#

সহজ ভাষায়#

DNS হলো ইন্টারনেটের ফোনবুক। এটি pve1.lab.local নামকে 192.168.1.100 ঠিকানায় বদলে দেয়। প্রক্সমক্স DNS-এর উপর অনেক নির্ভর করে: ক্লাস্টার নোডগুলো একে অন্যকে খুঁজে পায়, apt রিপো খুঁজে পায়, NTP ও ইমেইল সার্ভার খুঁজে পায়।

নাম খোঁজার ধাপ#

  1. অ্যাপ জিজ্ঞাসা করে: "pve2.lab.local-এর IP কী?"
  2. সিস্টেম /etc/nsswitch.conf দেখে ক্রম ঠিক করে (আগে files, পরে dns)।
  3. প্রথমে /etc/hosts দেখে। পেলে সেখানেই শেষ — DNS-এ যায় না।
  4. না পেলে /etc/resolv.conf-এ থাকা DNS সার্ভারকে জিজ্ঞাসা করে।
  5. উত্তর পেলে ক্যাশে রাখে।

গুরুত্বপূর্ণ ফাইল#

BASH
cat /etc/resolv.conf
# nameserver 192.168.1.1     ← প্রধান DNS
# nameserver 8.8.8.8         ← বিকল্প
# search lab.local           ← ছোট নামের সাথে যোগ হয়

cat /etc/hosts
# 192.168.1.100  pve1.lab.local pve1   ← পূর্ণ নাম ও ছোট নাম দুইটাই দিন
# 192.168.1.101  pve2.lab.local pve2

grep hosts /etc/nsswitch.conf
# hosts: files dns

পরীক্ষা করার কমান্ড#

BASH
nslookup pve2.lab.local
dig @8.8.8.8 download.proxmox.com +short
resolvectl status
host pve1.lab.local

ক্লাস্টারের জন্য সেটআপ#

BASH
cat >> /etc/hosts << 'HOSTS'
192.168.1.100  pve1.lab.local pve1
192.168.1.101  pve2.lab.local pve2
192.168.1.102  pve3.lab.local pve3
HOSTS

hostnamectl set-hostname pve1.lab.local

for node in pve1 pve2 pve3; do
  echo -n "$node → "
  getent hosts $node.lab.local || echo "FAILED"
done

সতর্কতা: ক্লাস্টার নোডের DNS কখনো DHCP-এর উপর ছাড়বেন না। DHCP সার্ভার বন্ধ হলে নোডগুলো একে অন্যকে খুঁজে পাবে না এবং quorum হারাবে। সবসময় /etc/hosts-এ স্ট্যাটিক এন্ট্রি রাখুন।


লেসন ৩ — রাউটিং, গেটওয়ে ও স্ট্যাটিক রুট (৩৫ মিনিট)#

সহজ ভাষায়#

রাউটিং মানে ঠিক করা — প্যাকেট কোন পথে যাবে। প্রতিটি প্যাকেট বের হওয়ার আগে রাউটিং টেবিল দেখে।

BASH
ip route show
# default via 192.168.1.1 dev vmbr0        ← যা মেলে না, সব রাউটারে পাঠাও
# 192.168.1.0/24 dev vmbr0                 ← একই সাবনেট, সরাসরি পাঠাও
# 10.0.0.0/24 dev vmbr1                    ← VM নেটওয়ার্ক

ip route get 8.8.8.8     # এই ঠিকানায় কোন পথে যাবে দেখায়

নিয়ম: সবচেয়ে নির্দিষ্ট রুট জেতে। /24 জেতে /8-এর উপরে, /8 জেতে default-এর উপরে।

স্ট্যাটিক রুট#

BASH
ip route add 172.16.0.0/16 via 192.168.1.254    # অস্থায়ী (রিবুটে হারায়)
ip route del 172.16.0.0/16

# স্থায়ী করতে /etc/network/interfaces-এ vmbr0 ব্লকের ভেতরে:
#   post-up   ip route add 172.16.0.0/16 via 192.168.1.254
#   pre-down  ip route del 172.16.0.0/16 2>/dev/null || true

IP ফরওয়ার্ডিং — প্রক্সমক্স নিজেই রাউটার#

লিনাক্স ডিফল্টে এক ইন্টারফেস থেকে আরেকটিতে প্যাকেট পাঠায় না। রাউটার হিসেবে কাজ করতে হলে ফরওয়ার্ডিং চালু করতে হয়।

BASH
cat /proc/sys/net/ipv4/ip_forward     # 0 = বন্ধ, 1 = চালু
echo 1 > /proc/sys/net/ipv4/ip_forward           # এখনকার জন্য
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p   # স্থায়ী

NAT ব্রিজ বানালে প্রক্সমক্স নিজেই এটি চালু করে দেয়।


লেসন ৪ — TCP/UDP, পোর্ট ও প্রক্সমক্স সার্ভিস (৩৫ মিনিট)#

TCP আর UDP-এর পার্থক্য#

TCPUDP
সংযোগআগে হ্যান্ডশেক করেসরাসরি পাঠায়
নিশ্চয়তাপৌঁছানোর নিশ্চয়তা দেয়দেয় না
গতিএকটু ধীরদ্রুত, হালকা
ব্যবহারওয়েব UI, SSH, ব্যাকআপCorosync, DHCP, DNS, NTP, VXLAN

প্রক্সমক্স পোর্ট তালিকা#

পোর্টপ্রোটোকলকাজ
8006TCPপ্রক্সমক্স ওয়েব UI
22TCPSSH ও মাইগ্রেশন
3128TCPSPICE প্রক্সি (VM কনসোল)
5900–5999TCPVNC কনসোল
85TCPpvedaemon ভেতরের API
5404–5405UDPCorosync ক্লাস্টার হার্টবিট
60000–60050TCPলাইভ মাইগ্রেশন ডাটা
111, 2049TCP/UDPNFS
3260TCPiSCSI
8007TCPProxmox Backup Server UI
BASH
ss -tlnp | column -t          # কী কী শুনছে
nc -zv 192.168.1.100 8006     # TCP পোর্ট পরীক্ষা
nc -uzv 192.168.1.101 5405    # UDP পোর্ট পরীক্ষা
ss -tp state established      # চালু সংযোগ

বিপদ: 5404–5405/UDP ব্লক থাকলে ক্লাস্টার quorum হারায় — সব VM জমে যায়, HA কাজ করে না। pvecm add চালানোর আগেই এই পোর্ট পরীক্ষা করুন।


লেসন ৫ — NAT, DHCP ও বিচ্ছিন্ন VM নেটওয়ার্ক (৪০ মিনিট)#

সহজ ভাষায়#

খুব প্রচলিত একটি নকশা: VM-দের প্রাইভেট IP (10.0.0.0/24) দিন, ফিজিক্যাল নেটওয়ার্ক থেকে লুকিয়ে রাখুন, আর প্রক্সমক্স হোস্টকে তাদের NAT রাউটার বানান। হোম ল্যাব, মাল্টি-টেন্যান্ট ও ক্লাউড প্রোভাইডার — সবাই এভাবেই আলাদা করে।

NAT কীভাবে কাজ করে#

  • বাইরে যাওয়ার সময়: VM পাঠায় 10.0.0.50 থেকে। প্রক্সমক্স উৎস বদলে নিজের IP (192.168.1.100) বসায়

এবং ম্যাপিং মনে রাখে।

  • ফেরার সময়: উত্তর আসে 192.168.1.100-এ। প্রক্সমক্স টেবিল দেখে গন্তব্য আবার 10.0.0.50 করে দেয়।
  • বাইরে থেকে VM-এ ঢোকা যায় না — এটাই NAT-এর নিরাপত্তা সুবিধা।

বিচ্ছিন্ন নেটওয়ার্ক তৈরি (/etc/network/interfaces)#

CODE
auto vmbr0
iface vmbr0 inet static
  address 192.168.1.100/24
  gateway 192.168.1.1
  bridge-ports eno1
  bridge-stp off
  bridge-fd 0

auto vmbr1
iface vmbr1 inet static
  address 10.0.0.1/24          # VM-দের গেটওয়ে হবে প্রক্সমক্স নিজেই
  bridge-ports none            # কোনো ফিজিক্যাল NIC নেই — বিচ্ছিন্ন
  bridge-stp off
  bridge-fd 0
  post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
  post-up   iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j MASQUERADE
  post-down iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j MASQUERADE

DHCP (dnsmasq)#

BASH
apt install dnsmasq

cat > /etc/dnsmasq.conf << 'CONF'
interface=vmbr1
bind-interfaces
dhcp-range=10.0.0.50,10.0.0.200,24h
dhcp-option=3,10.0.0.1          # গেটওয়ে
dhcp-option=6,1.1.1.1,8.8.8.8   # DNS
domain=lab.local
local=/lab.local/
CONF

systemctl enable --now dnsmasq

ভালো অভ্যাস: dnsmasq হোস্টে না চালিয়ে একটি ছোট LXC কন্টেইনারে চালান। হোস্ট পরিষ্কার থাকে এবং DHCP আলাদাভাবে রিস্টার্ট বা স্ন্যাপশট করা যায়। বিস্তারিত ফেজ ৫-এ আছে।

পোর্ট ফরওয়ার্ডিং#

BASH
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.100 --dport 2222 \
  -j DNAT --to-destination 10.0.0.50:22
iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT

apt install iptables-persistent
netfilter-persistent save

লেসন ৬ — OSI মডেল ও TCP/IP স্ট্যাক (৩০ মিনিট)#

সহজ ভাষায়#

OSI মডেল হলো সমস্যা খোঁজার মানচিত্র। উপর থেকে নিচে (বা নিচ থেকে উপরে) স্তর ধরে ধরে পরীক্ষা করলে দোষ কোথায় বেরিয়ে আসে।

স্তরপ্রক্সমক্সে উদাহরণ
L7 অ্যাপ্লিকেশনওয়েব UI (:8006), Corosync বার্তা
L6 প্রেজেন্টেশনAPI-এর TLS, কনসোলের SPICE
L5 সেশনSSH সেশন, VNC সেশন
L4 ট্রান্সপোর্টTCP (UI, SSH), UDP (Corosync)
L3 নেটওয়ার্কIP রাউটিং
L2 ডাটা লিংকইথারনেট ফ্রেম, MAC, VLAN
L1 ফিজিক্যালNIC, ক্যাবল, সুইচ

স্তর ধরে সমস্যা খোঁজা#

উপসর্গকোথায় দেখবেন
লিংক ডাউন (L1)ip link show — UP/DOWN দেখুন
VLAN মিল নেই (L2)bridge-vlan-aware, tag সেটিং
রুট নেই (L3)ip route show, গেটওয়ে পিং
পোর্ট বন্ধ (L4)ss -tlnp, ফায়ারওয়াল রুল
সার্ভিস বন্ধ (L7)systemctl status, journalctl
BASH
tcpdump -i vmbr0 -n 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0' port 8006
tcpdump -i vmbr0 -n ether host AA:BB:CC:DD:EE:FF

লেসন ৭ — সুইচিং, VLAN ও ট্রাংক (৩৫ মিনিট)#

সহজ ভাষায়#

সুইচ MAC ঠিকানা দেখে ফ্রেম পাঠায়। প্রতিটি VM-এর ভার্চুয়াল NIC-এর আলাদা MAC থাকে, আর প্রক্সমক্সের ব্রিজ সেগুলো শিখে নেয়।

অ্যাক্সেস বনাম ট্রাংক পোর্ট#

ধরনকী বহন করেকোথায়
Accessএকটি VLAN, ট্যাগ ছাড়াসাধারণ ডিভাইস
Trunkএকাধিক VLAN, ট্যাগসহ (802.1Q)সুইচ-টু-সুইচ, প্রক্সমক্স আপলিংক

প্রক্সমক্স সার্ভার যে সুইচ পোর্টে লাগানো, সেটি ট্রাংক পোর্ট হতে হবে। নাহলে VM-এর VLAN ট্যাগ সুইচ পর্যন্ত পৌঁছাবে না।

BASH
tcpdump -i eno1 -e -n vlan    # ট্যাগ করা ফ্রেম আসছে কি না
bridge vlan show              # ব্রিজে কোন VLAN আছে

সতর্কতা: ট্রাংকের native VLAN (ট্যাগ ছাড়া ট্রাফিক) সুইচ ও প্রক্সমক্স দুই দিকে এক হতে হবে। না মিললে ম্যানেজমেন্ট অ্যাক্সেস চলে যায়।


লেসন ৮ — NTP দিয়ে সময় মেলানো (২০ মিনিট)#

সহজ ভাষায়#

প্রক্সমক্সে সঠিক সময় ঐচ্ছিক নয়। ক্লাস্টার quorum, Ceph রেপ্লিকেশন, TLS সার্টিফিকেট এবং লগের সময় — সবই ঘড়ির উপর নির্ভর করে।

বিপদ: ক্লাস্টারের নোডগুলোর সময়ের পার্থক্য ১ সেকেন্ডের বেশি হলে Corosync-এ quorum সমস্যা হয়। Ceph ০.০৫ সেকেন্ডের বেশি পার্থক্যে কাজ করতে অস্বীকার করে।

BASH
timedatectl status         # সময় সিঙ্ক আছে কি না
chronyc tracking           # কত মিলিসেকেন্ড পার্থক্য
chronyc sources -v         # কোন সার্ভার থেকে সময় আসছে

chrony কনফিগ (/etc/chrony/chrony.conf)#

CODE
pool 2.debian.pool.ntp.org iburst maxsources 4
pool time.cloudflare.com iburst
server 192.168.1.1 iburst prefer   # লোকাল NTP — ক্লাস্টারে সবাই একই উৎস ব্যবহার করুক

makestep 1.0 3     # শুরুতে ১ সেকেন্ডের বেশি পার্থক্য হলে লাফ দিয়ে ঠিক করো
rtcsync            # হার্ডওয়্যার ঘড়িও মেলাও

তারপর systemctl restart chrony এবং chronyc makestep


লেসন ৯ — নেটওয়ার্ক ট্রাবলশুটিং পদ্ধতি (৩৫ মিনিট)#

সহজ ভাষায়#

নেটওয়ার্ক সমস্যার একটা নিয়ম আছে। ধাপে ধাপে গেলে ৯০% সমস্যা কয়েক মিনিটেই সমাধান হয়।

ছয় ধাপের সিঁড়ি#

  1. ফিজিক্যাল: লিংক আপ? — ip link show
  2. IP: ঠিক IP বসানো আছে? — ip addr show
  3. গেটওয়ে: গেটওয়ে পিং হয়? — ping <gateway>
  4. DNS: নাম রেজলভ হয়? — nslookup google.com
  5. পোর্ট: পোর্টে পৌঁছানো যায়? — nc -zv host port
  6. সার্ভিস: সার্ভিস চালু? — systemctl status, journalctl

VM নেটওয়ার্ক পাচ্ছে না#

BASH
cat /etc/network/interfaces | grep -A8 vmbr0   # ব্রিজ কনফিগ
qm config 100 | grep net                       # VM-এর NIC কনফিগ
brctl show vmbr0                               # ব্রিজে ফিজিক্যাল NIC আছে?
bridge fdb show dev vmbr0 | grep -v permanent  # VM-এর MAC দেখা যাচ্ছে?
tcpdump -i vmbr0 -n host 192.168.1.200 -c 20   # প্যাকেট আসছে?

দুই নোড কথা বলছে না#

BASH
pvecm status | grep -i ring
nc -uzv pve2 5405
journalctl -u corosync --since "10 min ago"
nft list ruleset | grep -E "5404|5405"

সবচেয়ে সাধারণ কারণ: ফায়ারওয়াল 5404–5405/UDP আটকে রেখেছে।

টিপ: ওয়েব UI নষ্ট হলে প্রথমেই দেখুন journalctl -u pveproxy -u pvedaemon --since "1 hour ago"। ৮০% সমস্যা এই দুই লগেই ধরা পড়ে।


ফেজ ২ শেষে আপনি যা পারবেন#

  • সাবনেট হিসাব করা ও নেটওয়ার্ক পরিকল্পনা করা
  • DNS ও /etc/hosts ঠিক করা
  • রাউটিং টেবিল পড়া ও স্ট্যাটিক রুট বসানো
  • প্রক্সমক্সের পোর্টগুলো চেনা ও পরীক্ষা করা
  • NAT সহ বিচ্ছিন্ন VM নেটওয়ার্ক বানানো
  • VLAN ট্রাংক বোঝা
  • সময় সিঙ্ক ঠিক রাখা
  • ধাপে ধাপে নেটওয়ার্ক সমস্যা খোঁজা

পরবর্তী: ফেজ ৩ — ভার্চুয়ালাইজেশন ধারণা