ফেজ ২ — নেটওয়ার্কিং বেসিক (Networking Fundamentals)#
৯টি লেসন · আনুমানিক ৫ ঘণ্টা · লেভেল: শুরুর
"VM A কেন VM B-কে পিং করতে পারে না?" — এই প্রশ্নের উত্তর প্রায় সবসময় এই ফেজে আছে।
লেসন ১ — IP অ্যাড্রেসিং ও সাবনেটিং (৪৫ মিনিট)#
সহজ ভাষায়#
প্রক্সমক্সে প্রতিটি জিনিসের একটি IP লাগে: হাইপারভাইজার, প্রতিটি VM, প্রতিটি কন্টেইনার, ক্লাস্টার নেটওয়ার্ক, Ceph রেপ্লিকেশন নেটওয়ার্ক। সাবনেটিং মানে IP-এর জায়গাটাকে যুক্তিসংগত ভাগে ভাগ করা।
IPv4 গঠন#
একটি IPv4 ঠিকানা ৩২ বিট, চারটি অংশে (প্রতিটি ০–২৫৫)। ঠিকানার দুইটি ভাগ: নেটওয়ার্ক অংশ (একই সাবনেটের সবার জন্য এক) আর হোস্ট অংশ (প্রতিটি ডিভাইসের আলাদা)। /24 বা /16 বলে দেয় কত বিট নেটওয়ার্ক অংশ।
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 | ৬৫৫৩৪ | বাসা ও অফিস |
এই রেঞ্জগুলো ইন্টারনেটে রাউট হয় না। তাই ভেতরে নিরাপদে ব্যবহার করা যায়।
প্রক্সমক্সের জন্য সাবনেট পরিকল্পনা#
# 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 ও ইমেইল সার্ভার খুঁজে পায়।
নাম খোঁজার ধাপ#
- অ্যাপ জিজ্ঞাসা করে: "pve2.lab.local-এর IP কী?"
- সিস্টেম
/etc/nsswitch.confদেখে ক্রম ঠিক করে (আগে files, পরে dns)। - প্রথমে
/etc/hostsদেখে। পেলে সেখানেই শেষ — DNS-এ যায় না। - না পেলে
/etc/resolv.conf-এ থাকা DNS সার্ভারকে জিজ্ঞাসা করে। - উত্তর পেলে ক্যাশে রাখে।
গুরুত্বপূর্ণ ফাইল#
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পরীক্ষা করার কমান্ড#
nslookup pve2.lab.local
dig @8.8.8.8 download.proxmox.com +short
resolvectl status
host pve1.lab.localক্লাস্টারের জন্য সেটআপ#
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-এ স্ট্যাটিক এন্ট্রি রাখুন।
লেসন ৩ — রাউটিং, গেটওয়ে ও স্ট্যাটিক রুট (৩৫ মিনিট)#
সহজ ভাষায়#
রাউটিং মানে ঠিক করা — প্যাকেট কোন পথে যাবে। প্রতিটি প্যাকেট বের হওয়ার আগে রাউটিং টেবিল দেখে।
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-এর উপরে।
স্ট্যাটিক রুট#
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 || trueIP ফরওয়ার্ডিং — প্রক্সমক্স নিজেই রাউটার#
লিনাক্স ডিফল্টে এক ইন্টারফেস থেকে আরেকটিতে প্যাকেট পাঠায় না। রাউটার হিসেবে কাজ করতে হলে ফরওয়ার্ডিং চালু করতে হয়।
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-এর পার্থক্য#
| TCP | UDP | |
|---|---|---|
| সংযোগ | আগে হ্যান্ডশেক করে | সরাসরি পাঠায় |
| নিশ্চয়তা | পৌঁছানোর নিশ্চয়তা দেয় | দেয় না |
| গতি | একটু ধীর | দ্রুত, হালকা |
| ব্যবহার | ওয়েব UI, SSH, ব্যাকআপ | Corosync, DHCP, DNS, NTP, VXLAN |
প্রক্সমক্স পোর্ট তালিকা#
| পোর্ট | প্রোটোকল | কাজ |
|---|---|---|
| 8006 | TCP | প্রক্সমক্স ওয়েব UI |
| 22 | TCP | SSH ও মাইগ্রেশন |
| 3128 | TCP | SPICE প্রক্সি (VM কনসোল) |
| 5900–5999 | TCP | VNC কনসোল |
| 85 | TCP | pvedaemon ভেতরের API |
| 5404–5405 | UDP | Corosync ক্লাস্টার হার্টবিট |
| 60000–60050 | TCP | লাইভ মাইগ্রেশন ডাটা |
| 111, 2049 | TCP/UDP | NFS |
| 3260 | TCP | iSCSI |
| 8007 | TCP | Proxmox Backup Server UI |
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)#
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 MASQUERADEDHCP (dnsmasq)#
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 আলাদাভাবে রিস্টার্ট বা স্ন্যাপশট করা যায়। বিস্তারিত ফেজ ৫-এ আছে।
পোর্ট ফরওয়ার্ডিং#
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 |
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 ট্যাগ সুইচ পর্যন্ত পৌঁছাবে না।
tcpdump -i eno1 -e -n vlan # ট্যাগ করা ফ্রেম আসছে কি না
bridge vlan show # ব্রিজে কোন VLAN আছেসতর্কতা: ট্রাংকের native VLAN (ট্যাগ ছাড়া ট্রাফিক) সুইচ ও প্রক্সমক্স দুই দিকে এক হতে হবে। না মিললে ম্যানেজমেন্ট অ্যাক্সেস চলে যায়।
লেসন ৮ — NTP দিয়ে সময় মেলানো (২০ মিনিট)#
সহজ ভাষায়#
প্রক্সমক্সে সঠিক সময় ঐচ্ছিক নয়। ক্লাস্টার quorum, Ceph রেপ্লিকেশন, TLS সার্টিফিকেট এবং লগের সময় — সবই ঘড়ির উপর নির্ভর করে।
বিপদ: ক্লাস্টারের নোডগুলোর সময়ের পার্থক্য ১ সেকেন্ডের বেশি হলে Corosync-এ quorum সমস্যা হয়। Ceph ০.০৫ সেকেন্ডের বেশি পার্থক্যে কাজ করতে অস্বীকার করে।
timedatectl status # সময় সিঙ্ক আছে কি না
chronyc tracking # কত মিলিসেকেন্ড পার্থক্য
chronyc sources -v # কোন সার্ভার থেকে সময় আসছেchrony কনফিগ (/etc/chrony/chrony.conf)#
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।
লেসন ৯ — নেটওয়ার্ক ট্রাবলশুটিং পদ্ধতি (৩৫ মিনিট)#
সহজ ভাষায়#
নেটওয়ার্ক সমস্যার একটা নিয়ম আছে। ধাপে ধাপে গেলে ৯০% সমস্যা কয়েক মিনিটেই সমাধান হয়।
ছয় ধাপের সিঁড়ি#
- ফিজিক্যাল: লিংক আপ? —
ip link show - IP: ঠিক IP বসানো আছে? —
ip addr show - গেটওয়ে: গেটওয়ে পিং হয়? —
ping <gateway> - DNS: নাম রেজলভ হয়? —
nslookup google.com - পোর্ট: পোর্টে পৌঁছানো যায়? —
nc -zv host port - সার্ভিস: সার্ভিস চালু? —
systemctl status,journalctl
VM নেটওয়ার্ক পাচ্ছে না#
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 # প্যাকেট আসছে?দুই নোড কথা বলছে না#
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 ট্রাংক বোঝা
- সময় সিঙ্ক ঠিক রাখা
- ধাপে ধাপে নেটওয়ার্ক সমস্যা খোঁজা
পরবর্তী: ফেজ ৩ — ভার্চুয়ালাইজেশন ধারণা