Cheatsheet

Mạng máy tính: IP, subnet và cấu hình

OSI, IPv4, cách tính subnet, VLSM, IPv6, cấu hình trên Windows, Linux, Cisco và quy trình xử lý sự cố mạng.

  • Networking
  • IP
  • Linux

1. Nền tảng: OSI, TCP/IP, thiết bị, port

Mọi sự cố mạng nên dò từ tầng thấp lên: cáp/đèn link → IP → gateway → DNS → ứng dụng.

Tầng OSITCP/IPĐơn vị dữ liệuĐịa chỉ / giao thứcThiết bị
7 ApplicationApplicationDataHTTP, DNS, DHCP, SSH, FTP—
6 PresentationApplicationDataTLS, mã hóa, nén—
5 SessionApplicationDataphiên kết nối—
4 TransportTransportSegmentTCP, UDP, portFirewall
3 NetworkInternetPacketIP, ICMP, OSPFRouter, switch L3
2 Data LinkLinkFrameMAC, ARP, VLAN 802.1QSwitch, AP
1 PhysicalLinkBitcáp, sóng, đầu RJ45Hub, repeater

Mẹo nhớ OSI (7→1): All People Seem To Need Data Processing.

TCP vs UDP: TCP có bắt tay 3 bước (SYN → SYN-ACK → ACK), tin cậy, đúng thứ tự (web, SSH, email). UDP không kết nối, nhanh, có thể mất gói (DNS, VoIP, game, video stream).

Port phổ biến

PortGiao thứcDùng cho
20/21 TCPFTPtruyền file
22 TCPSSH / SFTPquản trị từ xa an toàn
23 TCPTelnetquản trị từ xa (không mã hóa)
25, 587 TCPSMTPgửi mail
53 UDP/TCPDNSphân giải tên miền
67/68 UDPDHCPcấp IP tự động (server/client)
80 / 443 TCPHTTP / HTTPSweb
110 / 143 TCPPOP3 / IMAPnhận mail
123 UDPNTPđồng bộ giờ
161/162 UDPSNMPgiám sát thiết bị
3389 TCPRDPRemote Desktop Windows

Dải port: 0–1023 well-known, 1024–49151 registered, 49152–65535 dynamic (client dùng tạm).

2. Địa chỉ IPv4

IPv4 dài 32 bit, chia 4 octet × 8 bit, viết thập phân: 192.168.1.10 = 11000000.10101000.00000001.00001010. Mỗi octet nằm trong 0–255. Địa chỉ gồm 2 phần: Network ID (phần mạng) + Host ID (phần máy), ranh giới do subnet mask quyết định.

Bảng trọng số bit (thuộc lòng)

Bit76543210
Giá trị1286432168421
  • Thập phân → nhị phân: trừ dần từ 128 xuống. Ví dụ 172 = 128 + 32 + 8 + 4 → 10101100.
  • Nhị phân → thập phân: cộng giá trị các bit 1. Ví dụ 11110000 = 128+64+32+16 = 240.

Phân lớp (classful — cũ nhưng vẫn hay thi)

LớpBit đầuDải octet 1Mask mặc địnhSố host/mạng
A01–126255.0.0.0 (/8)16.777.214
B10128–191255.255.0.0 (/16)65.534
C110192–223255.255.255.0 (/24)254
D1110224–239—multicast
E1111240–255—dự phòng, thử nghiệm

IP private (RFC 1918) — dùng trong LAN, không định tuyến ra Internet

  • 10.0.0.0/8 (10.0.0.0 – 10.255.255.255)
  • 172.16.0.0/12 (172.16.0.0 – 172.31.255.255)
  • 192.168.0.0/16 (192.168.0.0 – 192.168.255.255)

IP đặc biệt

Địa chỉÝ nghĩa
0.0.0.0mọi địa chỉ / chưa có IP / default route (0.0.0.0/0)
127.0.0.0/8loopback, 127.0.0.1 = chính máy mình
169.254.0.0/16APIPA: máy tự gán khi không xin được DHCP → dấu hiệu lỗi DHCP
100.64.0.0/10CGNAT của nhà mạng
255.255.255.255broadcast toàn mạng cục bộ
224.0.0.0/4multicast

Unicast / Broadcast / Multicast: gửi 1 máy / gửi tất cả máy trong mạng / gửi một nhóm máy đăng ký.

3. Subnet mask & CIDR — bảng tra nhanh

Subnet mask là dãy bit 1 liên tục (phần mạng) rồi bit 0 (phần host). CIDR /n = số bit 1. Ví dụ /26 = 26 bit 1 = 255.255.255.192.

4 công thức cốt lõi (n = prefix, h = 32 − n = số bit host, s = số bit mượn):

\text{Host hợp lệ} = 2^{h} - 2 \qquad \text{Số subnet} = 2^{s} \qquad \text{Block size} = 256 - \text{octet mask "đang dở"} \qquad \text{Tổng IP} = 2^{h}

Trừ 2 vì địa chỉ đầu là Network, địa chỉ cuối là Broadcast. Ngoại lệ: /31 dùng cho link point-to-point (2 IP, cả 2 dùng được), /32 là 1 host duy nhất.

Giá trị octet của mask (học thuộc dòng này là đủ)

Số bit 1 trong octet012345678
Giá trị octet0128192224240248252254255
Block size2561286432168421

Bảng CIDR thường dùng

CIDRSubnet maskWildcardTổng IPHost dùng đượcBlock (octet)Dùng điển hình
/8255.0.0.00.255.255.25516.777.21616.777.2141 (oct 1)mạng lớp A
/12255.240.0.00.15.255.2551.048.5761.048.57416 (oct 2)172.16/12
/16255.255.0.00.0.255.25565.53665.5341 (oct 2)campus, VPC
/20255.255.240.00.0.15.2554.0964.09416 (oct 3)subnet cloud lớn
/21255.255.248.00.0.7.2552.0482.0468 (oct 3)
/22255.255.252.00.0.3.2551.0241.0224 (oct 3)Wi-Fi lớn
/23255.255.254.00.0.1.2555125102 (oct 3)
/24255.255.255.00.0.0.2552562541 (oct 3)LAN gia đình/văn phòng
/25255.255.255.1280.0.0.127128126128 (oct 4)
/26255.255.255.1920.0.0.63646264phòng ban
/27255.255.255.2240.0.0.31323032
/28255.255.255.2400.0.0.15161416DMZ, server nhỏ
/29255.255.255.2480.0.0.7868IP tĩnh nhà mạng cấp
/30255.255.255.2520.0.0.3424link router–router
/31255.255.255.2540.0.0.122 (P2P)2link P2P (RFC 3021)
/32255.255.255.2550.0.0.0111loopback, host route

Mẹo: mỗi lần prefix tăng 1, số IP giảm một nửa.

4. Cách tính subnet từng bước

Dùng phương pháp block size (bội số) — nhanh, tính nhẩm được, không cần đổi nhị phân.

  1. Xác định octet đang dở (octet mask không phải 255 cũng không phải 0): /1–8 → octet 1, /9–16 → octet 2, /17–24 → octet 3, /25–32 → octet 4.
  2. Block size = 256 − giá trị mask ở octet đó.
  3. Liệt kê các bội số của block size: 0, B, 2B, 3B… Tìm bội số lớn nhất ≤ giá trị IP ở octet đó → đó là Network.
  4. Broadcast = (Network kế tiếp) − 1. Các octet sau octet đang dở: network = 0, broadcast = 255.
  5. Host đầu = Network + 1, Host cuối = Broadcast − 1. Số host = 2^h − 2.

Ví dụ 1 — 192.168.10.75/26

  • /26 → mask 255.255.255.192 → octet 4, block = 256 − 192 = 64
  • Bội số: 0, 64, 128, 192 → 75 nằm trong khoảng 64–127
NetworkHost đầuHost cuốiBroadcastSố host
192.168.10.64192.168.10.65192.168.10.126192.168.10.12762

Kiểm tra bằng phép AND nhị phân: 75 = 01001011, 192 = 11000000 → AND = 01000000 = 64 ✔. (Network = IP AND Mask.)

Ví dụ 2 — 172.16.45.200/20 (octet dở là octet 3)

  • /20 → 255.255.240.0 → block = 256 − 240 = 16 ở octet 3
  • Bội số: …, 32, 48 → 45 nằm trong 32–47
NetworkHost đầuHost cuốiBroadcastSố host
172.16.32.0172.16.32.1172.16.47.254172.16.47.2554.094

Ví dụ 3 — chia 192.168.1.0/24 thành 6 subnet bằng nhau

  • Cần 2^s ≥ 6 → mượn s = 3 bit → /27 (8 subnet, mỗi subnet 2^5 − 2 = 30 host), block = 32
#NetworkDải hostBroadcast
1192.168.1.0/27.1 – .30.31
2192.168.1.32/27.33 – .62.63
3192.168.1.64/27.65 – .94.95
4192.168.1.96/27.97 – .126.127
5192.168.1.128/27.129 – .158.159
6192.168.1.160/27.161 – .190.191
7192.168.1.192/27.193 – .222.223
8192.168.1.224/27.225 – .254.255

Ví dụ 4 — cần mạng cho 500 host: tìm h nhỏ nhất với 2^h − 2 ≥ 500 → h = 9 (510 host) → prefix = 32 − 9 = /23 (255.255.254.0).

Ví dụ 5 — 2 máy có cùng subnet không? 10.1.1.100/25 và 10.1.1.130/25: block 128 → máy 1 thuộc 0–127, máy 2 thuộc 128–255 → khác subnet, phải qua router mới nói chuyện được.

Bảng lũy thừa 2 (để tính host nhanh)

2^12^22^32^42^52^62^72^82^92^102^112^122^16
2481632641282565121.0242.0484.09665.536

5. Nâng cao: VLSM, supernetting, wildcard mask

VLSM — chia subnet kích thước khác nhau, không lãng phí IP

Quy tắc: sắp xếp nhu cầu từ lớn đến nhỏ, cấp subnet lớn nhất trước, mỗi subnet bắt đầu ngay sau broadcast của subnet trước.

Bài toán: mạng 192.168.10.0/24 cho Sales 100 host, IT 50 host, HR 25 host và 2 đường WAN nối router (2 host mỗi đường).

Nhu cầuHost cầnPrefix chọn (host tối đa)NetworkDải hostBroadcast
Sales100/25 (126)192.168.10.0.1 – .126.127
IT50/26 (62)192.168.10.128.129 – .190.191
HR25/27 (30)192.168.10.192.193 – .222.223
WAN 12/30 (2)192.168.10.224.225 – .226.227
WAN 22/30 (2)192.168.10.228.229 – .230.231
Còn trống——192.168.10.232đến .255để mở rộng

Nên dự phòng 20–30% host cho tăng trưởng; nhớ cộng thêm 1 IP cho gateway trong mỗi subnet LAN.

Supernetting / Route summarization — gộp nhiều mạng thành 1 route

  1. Viết octet thay đổi của các mạng ra nhị phân.
  2. Đếm số bit đầu giống nhau → cộng với số bit của các octet phía trước → prefix mới.

Ví dụ gộp 192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24:

  • Octet 3: 0 = 000000|00, 1 = 000000|01, 2 = 000000|10, 3 = 000000|11 → 6 bit chung
  • Prefix = 16 + 6 = /22 → route tổng: 192.168.0.0/22

Điều kiện gộp gọn: số mạng là lũy thừa của 2 và mạng đầu là bội số của block mới (ở đây 0 chia hết cho 4). Gộp 192.168.1.0–192.168.4.0 sẽ không gọn thành 1 route.

Wildcard mask — dùng trong ACL và OSPF của Cisco

Wildcard = 255.255.255.255 − subnet mask. Bit 0 = phải khớp, bit 1 = bỏ qua.

Ý địnhWildcardVí dụ lệnh Cisco
Đúng 1 host0.0.0.0 (từ khóa host)access-list 10 permit host 192.168.1.10
Cả mạng /240.0.0.255access-list 10 permit 192.168.1.0 0.0.0.255
Mạng /260.0.0.63network 10.0.0.64 0.0.0.63 area 0
Mọi địa chỉ255.255.255.255 (từ khóa any)access-list 10 deny any

Lưu ý ACL: duyệt từ trên xuống, khớp dòng đầu tiên là dừng, cuối luôn có deny any ngầm định. Standard ACL (1–99) đặt gần đích; extended ACL (100–199) đặt gần nguồn.

6. IPv6 cơ bản

IPv6 dài 128 bit, viết 8 nhóm × 4 chữ số hex, cách nhau bằng dấu :. Không có broadcast, không cần NAT; LAN chuẩn luôn là /64.

Quy tắc rút gọn

  1. Bỏ số 0 đứng đầu mỗi nhóm: 0db8 → db8, 0000 → 0.
  2. Thay một chuỗi nhóm 0 liên tiếp dài nhất bằng :: (chỉ được dùng 1 lần).

Ví dụ: 2001:0db8:0000:0000:0000:ff00:0042:8329 → 2001:db8::ff00:42:8329

Cấu trúc địa chỉ unicast toàn cầu /64

PhầnSố bitAi cấp
Global routing prefix48 (thường)nhà mạng / RIR
Subnet ID16quản trị viên (65.536 subnet)
Interface ID64máy tự tạo (SLAAC/EUI-64) hoặc DHCPv6

Loại địa chỉ cần nhớ

Tiền tốLoạiTương đương IPv4
::1/128loopback127.0.0.1
::/128chưa xác định0.0.0.0
::/0default route0.0.0.0/0
2000::/3global unicast (public)IP public
fc00::/7 (thực tế fd00::/8)unique local (ULA)IP private
fe80::/10link-local, mọi interface đều tự có169.254.x.x (nhưng luôn dùng)
ff00::/8multicast (ff02::1 = mọi node, ff02::2 = mọi router)broadcast/multicast

Cấp phát: SLAAC (máy tự tạo IP từ prefix router quảng bá qua Router Advertisement), DHCPv6 stateful, hoặc SLAAC + DHCPv6 stateless (DNS). NDP thay thế ARP.

Chia subnet IPv6: chia theo ranh giới nibble (4 bit) cho dễ đọc. Được cấp /48 → có 2^16 = 65.536 mạng /64: 2001:db8:abcd:0000::/64, 2001:db8:abcd:0001::/64… Được cấp /56 → 256 mạng /64.

7. Cấu hình IP và dịch vụ mạng

Một máy cần đủ 4 thông số để lên Internet: IP, Subnet mask, Default gateway (IP router cùng subnet), DNS.

Quy ước quy hoạch IP cho LAN /24 (gợi ý): .1 gateway · .2–.49 server, máy in, AP (IP tĩnh) · .50–.200 DHCP pool · .201–.254 dự phòng.

Windows

# Đặt IP tĩnh (CMD chạy quyền Admin)
netsh interface ip set address name="Ethernet" static 192.168.1.50 255.255.255.0 192.168.1.1
netsh interface ip set dns name="Ethernet" static 8.8.8.8
# Trở lại DHCP
netsh interface ip set address name="Ethernet" dhcp
netsh interface ip set dns name="Ethernet" dhcp

# PowerShell tương đương
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.50 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 8.8.8.8,1.1.1.1

Giao diện: Win + R → ncpa.cpl → chuột phải card mạng → Properties → IPv4.

Linux

# Tạm thời (mất khi reboot)
sudo ip addr add 192.168.1.50/24 dev eth0
sudo ip route add default via 192.168.1.1

# NetworkManager (Ubuntu desktop, RHEL, Fedora)
nmcli con mod "eth0" ipv4.method manual ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con up "eth0"

Ubuntu server dùng Netplan — file /etc/netplan/01-netcfg.yaml, rồi sudo netplan apply:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
      addresses: [192.168.1.50/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

Cisco IOS — router cơ bản

enable
configure terminal
hostname R1
interface g0/0
 ip address 192.168.1.1 255.255.255.0
 no shutdown
exit
ip route 0.0.0.0 0.0.0.0 203.0.113.1      ! default route ra ISP
ip route 10.20.0.0 255.255.0.0 10.0.0.2   ! static route tới mạng khác
end
copy running-config startup-config        ! lưu cấu hình

DHCP

Quy trình DORA: Discover (client broadcast) → Offer (server mời IP) → Request (client xin) → Acknowledge (server xác nhận). Client và server khác subnet → cần DHCP relay trên router.

ip dhcp excluded-address 192.168.1.1 192.168.1.49
ip dhcp pool LAN
 network 192.168.1.0 255.255.255.0
 default-router 192.168.1.1
 dns-server 8.8.8.8 1.1.1.1
 lease 7
! Relay: trên interface phía client
interface g0/1
 ip helper-address 10.0.0.5

NAT / PAT — cho cả LAN dùng chung 1 IP public

interface g0/0
 ip nat inside
interface g0/1
 ip nat outside
access-list 1 permit 192.168.1.0 0.0.0.255
ip nat inside source list 1 interface g0/1 overload
! Port forwarding: mở web server nội bộ ra ngoài
ip nat inside source static tcp 192.168.1.20 80 interface g0/1 80

Loại NAT: static (1 private ↔ 1 public), dynamic (pool public), PAT/overload (nhiều private → 1 public, phân biệt bằng port — loại modem gia đình dùng).

VLAN và định tuyến giữa VLAN

! Switch: tạo VLAN, gán port access, cấu hình trunk
vlan 10
 name SALES
vlan 20
 name IT
interface f0/1
 switchport mode access
 switchport access vlan 10
interface g0/1
 switchport mode trunk
 switchport trunk allowed vlan 10,20

! Router-on-a-stick: mỗi VLAN là 1 subinterface
interface g0/0.10
 encapsulation dot1Q 10
 ip address 192.168.10.1 255.255.255.0
interface g0/0.20
 encapsulation dot1Q 20
 ip address 192.168.20.1 255.255.255.0

! Hoặc switch Layer 3 dùng SVI
ip routing
interface vlan 10
 ip address 192.168.10.1 255.255.255.0

Access port mang 1 VLAN (nối máy tính); trunk port mang nhiều VLAN có tag 802.1Q (nối switch–switch, switch–router). Mỗi VLAN = 1 subnet riêng.

Định tuyến động — OSPF

router ospf 1
 router-id 1.1.1.1
 network 192.168.10.0 0.0.0.255 area 0
 network 10.0.0.0 0.0.0.3 area 0
 passive-interface g0/0.10   ! không gửi hello ra LAN người dùng
Loại routeAdministrative Distance (càng nhỏ càng ưu tiên)
Connected0
Static1
eBGP20
EIGRP90
OSPF110
RIP120

Router chọn route theo longest prefix match trước (prefix dài nhất khớp), rồi mới xét AD, rồi metric.

8. Lệnh kiểm tra & xử lý sự cố

Quy trình 6 bước khi “mất mạng” — dừng ở bước đầu tiên thất bại:

  1. Kiểm tra vật lý: đèn link, cáp, Wi-Fi đã kết nối.
  2. Xem IP: ipconfig /all hoặc ip a. Thấy 169.254.x.x → lỗi DHCP.
  3. ping 127.0.0.1 → kiểm tra TCP/IP stack của máy.
  4. ping <gateway> → kiểm tra kết nối LAN.
  5. ping 8.8.8.8 → kiểm tra đường ra Internet (NAT, route).
  6. ping google.com hoặc nslookup google.com → kiểm tra DNS. Ping IP được mà tên miền không được = lỗi DNS.

Bảng lệnh

Mục đíchWindowsLinux / macOSCisco IOS
Xem IP, mask, gatewayipconfig /allip a, ip rshow ip interface brief
Xin lại IP DHCPipconfig /release → /renewsudo dhclient -r && sudo dhclient—
Kiểm tra kết nốiping -t 8.8.8.8ping 8.8.8.8ping 8.8.8.8
Dò đường đitracert 8.8.8.8traceroute 8.8.8.8, mtrtraceroute 8.8.8.8
Tra DNSnslookup tenmien.comdig tenmien.com—
Xóa cache DNSipconfig /flushdnsresolvectl flush-caches—
Bảng ARP (IP ↔ MAC)arp -aip neighshow arp
Bảng định tuyếnroute printip routeshow ip route
Port đang mở / kết nốinetstat -anoss -tulpn—
Thử port TCPTest-NetConnection host -Port 443nc -zv host 443telnet host 443
Xem cấu hình——show running-config
VLAN / trunk——show vlan brief, show interfaces trunk
Bảng MAC switch——show mac address-table
DHCP / NAT——show ip dhcp binding, show ip nat translations
Hàng xóm OSPF——show ip ospf neighbor

Triệu chứng → nguyên nhân thường gặp

Triệu chứngNguyên nhân hay gặp
IP 169.254.x.xDHCP server chết, hết IP trong pool, cáp/VLAN sai
Ping gateway OK, ping 8.8.8.8 failthiếu default route, NAT sai, ISP lỗi
Ping 8.8.8.8 OK, vào web không đượcDNS sai hoặc chặn
Báo “IP address conflict”2 máy trùng IP — IP tĩnh nằm trong DHCP pool
Ping được 1 chiềufirewall chặn ICMP, sai gateway hoặc sai mask ở 1 phía
Cùng switch mà không ping được nhaukhác VLAN, khác subnet, sai mask
Mạng chậm, chập chờncáp lỗi, duplex mismatch, loop (bão broadcast), nhiễu Wi-Fi
Interface Cisco administratively downquên no shutdown

Nguyên tắc vàng: sai subnet mask hoặc gateway là 2 lỗi cấu hình phổ biến nhất — luôn kiểm tra 2 thông số này đầu tiên.