Đã đến lúc khai tử ifconfig
Gõ ifconfig vào năm 2024 giống như việc bạn dùng bản đồ giấy giữa thời đại Google Maps. Nó vẫn chạy, nhưng thiếu quá nhiều thông tin quan trọng. Bộ công cụ iproute2 không chỉ là sự thay thế. Nó là một hệ sinh thái mạnh mẽ, cho phép bạn can thiệp sâu vào stack mạng của Linux kernel.
Cách đây 2 năm, mình từng xử lý một cụm server chạy cả IPv4 và IPv6 cho khoảng 200 user. Bài toán khó ở chỗ: Phải đẩy traffic của bộ phận kế toán qua đường truyền leased line riêng để bảo mật, trong khi các phòng ban khác dùng line FTTH thông thường. Nếu chỉ dùng route -n kiểu cũ, mình chắc chắn sẽ thất bại. Dưới đây là những kỹ thuật “thực chiến” mình đã rút ra.
Quick Start: Những lệnh “bỏ túi” gõ hàng ngày
Trước khi cấu hình phức tạp, bạn cần thành thạo việc quan sát hệ thống. Đừng để đống text output làm bạn rối mắt.
1. Quản lý Interface (ip link)
Thay vì ifconfig, hãy dùng ip link để kiểm tra lớp vật lý của card mạng.
# Liệt kê card mạng kèm trạng thái (UP/DOWN)
ip link show
# Bật card mạng eth0 trong 1 nốt nhạc
sudo ip link set eth0 up
# Đổi địa chỉ MAC để bypass filter (ví dụ: aa:bb:cc:dd:ee:ff)
sudo ip link set eth0 address aa:bb:cc:dd:ee:ff
2. Quản lý địa chỉ IP (ip addr)
Một interface có thể gánh nhiều IP. Điều này cực kỳ hữu ích khi làm Web Server cần nhiều IP ảo.
# Xem IP chi tiết
ip addr show
# Gán thêm IP phụ (Secondary IP) cho eth0
sudo ip addr add 192.168.1.100/24 dev eth0
# Xóa IP khi không dùng nữa
sudo ip addr del 192.168.1.100/24 dev eth0
3. Quản lý bảng định tuyến (ip route)
# Xem bảng routing hiện tại
ip route show
# Thêm route cho một dải mạng cụ thể
sudo ip route add 10.0.0.0/8 via 192.168.1.1 dev eth0
ip link và câu chuyện tối ưu MTU
Trong thực tế, ip link giúp bạn xử lý những ca khó về hiệu năng. Một thông số thường bị bỏ qua là MTU (Maximum Transmission Unit).
Khi mình triển khai WireGuard VPN, packet thường bị chèn thêm 80 bytes header. Nếu giữ MTU 1500 như mặc định, packet sẽ bị phân mảnh (fragmentation). Kết quả? Tốc độ mạng giảm 30-40%. Chỉ cần giảm MTU xuống 1420, mọi thứ lại mượt mà.
# Chỉnh MTU xuống 1420 cho tunnel VPN
sudo ip link set wg0 mtu 1420
# Tạo nhanh VLAN 10 mà không cần cài thêm tool
sudo ip link add link eth0 name eth0.10 type vlan id 10
Metric: Trọng tài của các Default Gateway
Server có 2 card mạng nối vào 2 ISP khác nhau? Linux sẽ bối rối nếu cả hai đều có Default Gateway. Đây là lúc metric thể hiện vai trò.
Số Metric càng nhỏ, độ ưu tiên càng cao. Mình thường set Metric 100 cho đường cáp quang (Primary) và 200 cho đường 4G dự phòng (Backup).
# Ưu tiên eth0 (Viettel) hơn eth1 (VNPT)
sudo ip route add default via 192.168.1.1 dev eth0 metric 100
sudo ip route add default via 10.0.0.1 dev eth1 metric 200
Muốn biết gói tin đi đâu? Đừng đoán. Hãy dùng ip route get để kiểm tra lộ trình thực tế của packet.
# Kiểm tra xem gói tin đi đến Google (8.8.8.8) qua cổng nào
ip route get 8.8.8.8
Policy Based Routing (PBR): Đỉnh cao với ip rule
Thông thường, Linux định tuyến dựa trên ĐÍCH ĐẾN. Nhưng với ip rule, bạn có thể định tuyến dựa trên NGUỒN GỬI.
Tình huống: Server có 2 IP Public (ISP1 và ISP2). Nếu gói tin vào từ ISP2 nhưng server lại trả về qua ISP1 (do default gateway), firewall nhà mạng sẽ drop ngay lập tức. Đây là lỗi định tuyến bất đối xứng (asymmetric routing).
Giải pháp là tạo một bảng định tuyến riêng cho ISP2:
# 1. Tạo bảng tên 'isp2' (ID 200)
echo "200 isp2" | sudo tee -a /etc/iproute2/rt_tables
# 2. Ép bảng isp2 đi qua gateway của ISP2
sudo ip route add default via 10.0.0.1 dev eth1 table isp2
# 3. Rule: Nếu packet có IP nguồn là 10.0.0.50, buộc phải dùng bảng isp2
sudo ip rule add from 10.0.0.50 table isp2
Kỹ thuật này cực kỳ quan trọng khi bạn làm Multi-WAN hoặc chạy các cụm Hybrid Cloud phức tạp.
Kinh nghiệm “xương máu” khi làm Network
Sau nhiều đêm thức trắng fix network trên Production, mình rút ra 4 lưu ý:
- Lưu cấu hình: Các lệnh
ipsẽ bốc hơi sạch sau khi reboot. Hãy viết chúng vào Netplan (Ubuntu) hoặc/etc/network/interfaces. - Sửa thay vì Thêm: Nếu thấy lỗi “File exists”, hãy dùng
ip route replacethay vìaddđể cập nhật route cũ nhanh gọn. - Thứ tự ưu tiên: Gõ
ip rule showđể xem Priority. Số nhỏ nhất chạy trước. Đừng để các rule chung chung (như default) nằm đè lên các rule đặc thù. - Dọn dẹp Cache: Khi thay đổi routing mà không thấy tác dụng, hãy chạy
sudo ip route flush cacheđể buộc hệ thống cập nhật bảng tạm.
Làm chủ link, route và rule là bạn đã nắm được 80% sức mạnh mạng trên Linux. Thay vì mò mẫm trên giao diện GUI, gõ lệnh giúp bạn xử lý sự cố nhanh hơn gấp nhiều lần qua SSH.

