مبانی شبکه
مبانی شبکه؛ مدل OSI و TCP/IP، آدرس IP، Subnet، Gateway، NAT
شبکه چیست؟
شبکه مجموعهای از دستگاههاست که میتوانند با هم داده رد و بدل کنند. هر دستگاه سه چیز اصلی دارد:
- MAC Address: شناسهی سختافزاری کارت شبکه، مثل
3c:52:82:aa:bb:cc. فقط در شبکهی محلی (LAN) معنا دارد. - IP Address: آدرس منطقی برای مسیریابی، مثل
192.168.1.10. - Port: شمارهای که مشخص میکند داده برای کدام برنامه است، مثل
443برای HTTPS.
مدل OSI و TCP/IP
مدل OSI داده را در ۷ لایه توصیف میکند. در عمل، اینترنت از مدل سادهتر TCP/IP استفاده میکند:
| لایه TCP/IP | لایههای OSI | نمونهها | واحد داده |
|---|---|---|---|
| Application | ۵ تا ۷ | HTTP، DNS، SSH، TLS | Message |
| Transport | ۴ | TCP، UDP | Segment / Datagram |
| Internet | ۳ | IP، ICMP | Packet |
| Network Access | ۱ و ۲ | Ethernet، Wi-Fi، ARP | Frame |
ایدهی کلیدی: Encapsulation. هر لایه یک هدر به داده اضافه میکند. مثلاً یک درخواست HTTP داخل segment تیسیپی، داخل packet آیپی و داخل frame اترنت حمل میشود.
آدرس IP: IPv4 و IPv6
IPv4
یک عدد ۳۲ بیتی به شکل چهار بخش ۸ بیتی: 192.168.1.10.
IPv6
عدد ۱۲۸ بیتی به شکل هگزادسیمال: 2001:db8::1. کمبود آدرس IPv4 دلیل اصلی ساخته شدن آن است.
محدودههای خصوصی (Private) IPv4
| محدوده | کاربرد معمول |
|---|---|
10.0.0.0/8 | شبکههای بزرگ و سازمانی |
172.16.0.0/12 | شبکههای متوسط و Docker |
192.168.0.0/16 | مودم خانگی و LAN |
127.0.0.1 | localhost (خود دستگاه) |
Subnet و CIDR
نماد 192.168.1.0/24 یعنی ۲۴ بیت اول شبکه است و ۸ بیت باقیمانده برای دستگاهها.
| CIDR | Subnet Mask | تعداد آدرس | آدرسهای قابل استفاده |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| /16 | 255.255.0.0 | 65,536 | 65,534 |
| /24 | 255.255.255.0 | 256 | 254 |
| /30 | 255.255.255.252 | 4 | 2 (لینک point-to-point) |
قانون محاسبه: تعداد آدرسها = 2^(32 - prefix). از این تعداد، آدرس شبکه (اولین) و Broadcast (آخرین) کم میشوند.
تمرین ذهنی
10.0.0.0/22چند آدرس دارد؟2^(32-22) = 1024. بازه از10.0.0.0تا10.0.3.255است.- آیا
192.168.1.200در192.168.1.0/24است؟ بله، چون سه اکتت اول یکی است.
ابزار محاسبه
ipcalc 192.168.1.0/24 # نیاز به sudo apt install ipcalc
Gateway و مسیریابی
- Gateway (دروازه): آدرس روتری که ترافیک خارج از subnet را به آن میفرستی.
- Routing Table: جدولی که میگوید هر مقصد از کدام اینترفیس و کدام gateway برود.
ip route show # جدول مسیریابی
ip route get 8.8.8.8 # مسیر انتخابشده برای یک مقصد
ip -br a # IPها روی هر اینترفیس
خروجی نمونه: default via 192.168.1.1 dev enp3s0 یعنی همهی ترافیک ناشناخته از enp3s0 به 192.168.1.1 میرود.
NAT (Network Address Translation)
روترهای خانگی یک IP عمومی دارند و کل شبکهی خصوصی را پشت آن پنهان میکنند.
- ترافیک خروجی: IP مبدأ خصوصی (
192.168.1.10) با IP عمومی روتر جایگزین میشود. - پاسخها برگشت داده میشوند چون روتر جدول ترجمه را نگه میدارد.
نتیجه: از بیرون نمیتوانی مستقیم به 192.168.1.10 وصل شوی؛ برای این کار باید Port Forwarding یا Public IP داشته باشی. این موضوع در WireGuard مهم است.
curl ifconfig.me # IP عمومی فعلی (از بیرون NAT)
DNS در یک نگاه
دامنهها (example.com) را به IP تبدیل میکند. جزئیات در فایل بعدی آمده است.
پیشرفته: ARP، VLAN و بستهبندی
- ARP: IP را به MAC در شبکهی محلی تبدیل میکند.
ip neigh showجدول ARP را نشان میدهد. - VLAN: تقسیم یک سوئیچ فیزیکی به چند شبکهی منطقی با برچسب 802.1Q.
- MTU: بیشینهی اندازهی فریم. در VPN معمولاً کمتر از 1500 است (مثلاً 1420 برای WireGuard) چون هدر تونل اضافه میشود.
ip link show # MTU و وضعیت اینترفیسها
ping -M do -s 1372 1.1.1.1 # تست MTU با بستهی بزرگ و بدون fragment
خلاصه
- IP مشخص میکند «کجا»، پورت مشخص میکند «کدام برنامه».
- Subnet مشخص میکند کدام آدرسها در یک شبکهی محلی هستند.
- Gateway و جدول مسیریابی مشخص میکند ترافیک خارج از شبکه کجا برود.
- NAT شبکهی خصوصی را پشت یک IP عمومی پنهان میکند.