Công cụ quản trị mạng ip trong Linux: Cú pháp và thực hành nâng cao

Công cụ ip thuộc gói iproute2 là thành phần cốt lõi trong hệ sinh thái mạng Linux hiện đại, thay thế dần các tiện ích cổ điển như ifconfig, route, hay arp. Cú pháp tổng quát của nó được thiết kế theo mô hình đối tượng–hành động:

ip [OPTIONS] OBJECT {COMMAND | help}

Trong đó:

  • OBJECT xác định loại tài nguyên mạng cần thao tác — bao gồm link, addr, route, rule, neigh, tunnel, xfrm, và nhiều đối tượng khác liên quan đến định tuyến chính sách, multicast, hoặc bảo mật mạng.
  • OPTIONS điều chỉnh cách hiển thị hoặc phạm vi áp dụng: ví dụ -4 (chỉ IPv4), -6 (chỉ IPv6), -s (hiển thị thống kê chi tiết), -h (định dạng dễ đọc), -o (một dòng/một bản ghi), -f inet (tương đương -4).
  • COMMAND là hành động cụ thể như add, del, flush, show, set, chg — luôn yêu cầu chỉ rõ đối tượng và tham số liên quan.

Mọi cấu hình bằng ip đều mang tính tạm thời — sẽ mất khi hệ thống khởi động lại. Để duy trì vĩnh viễn, cần cập nhật vào tệp cấu hình mạng tương ứng (ví dụ: /etc/sysconfig/network-scripts/ifcfg-eth0 trên RHEL/CentOS hoặc /etc/netplan/*.yaml trên Ubuntu 18.04+).

1. Các đối tượng phổ biến và chức năng

link     — Quản lý trạng thái và thuộc tính thiết bị vật lý/virtual (UP/DOWN, MTU, QDisc)
addr     — Gán/xóa địa chỉ IP/IPv6 cho giao diện
route    — Thao tác bảng định tuyến (thêm, xóa, sửa route)
neigh    — Kiểm soát bảng ARP (IPv4) hoặc NDISC (IPv6)
rule     — Định nghĩa quy tắc định tuyến đa bảng (policy routing)
tunnel   — Thiết lập và giám sát các đường hầm mạng (GRE, IPIP…)
xfrm     — Quản lý các biến đổi bảo mật IPSec (SA, policy)

Tên đối tượng có thể viết đầy đủ, rút gọn (ví dụ addressaddr) hoặc thậm chí chỉ một ký tự (a).

2. Một số tùy chọn quan trọng

-4         Tương đương -f inet (chỉ IPv4)
-6         Tương đương -f inet6 (chỉ IPv6)
-s         Hiển thị thông tin mở rộng (ví dụ: đếm packet, lỗi)
-h         Định dạng số liệu theo đơn vị dễ đọc (K/M/G)
-o         Xuất mỗi mục trên một dòng, dùng dấu gạch chéo ngược (\) thay newline
-r         Giải quyết tên miền thay vì in địa chỉ IP thô

3. Thực hành với các tác vụ thường gặp

Hiển thị địa chỉ IP

Liệt kê toàn bộ địa chỉ trên mọi giao diện:

ip -br addr show

Hoặc dạng chi tiết hơn:

ip addr show

Xem thông tin chỉ trên giao diện ens33:

ip addr show dev ens33
$ ip -br addr show
lo               UNKNOWN        127.0.0.1/8 ::1/128
ens33            UP             192.168.1.42/24 fe80::a00:27ff:fe1d:5e7c/64
docker0          DOWN           172.17.0.1/16

Thêm/xóa địa chỉ IP động

Gán địa chỉ phụ (secondary) cho ens33:

ip addr add 192.168.1.200/24 dev ens33

Xóa địa chỉ cụ thể:

ip addr del 192.168.1.200/24 dev ens33

Xóa toàn bộ địa chỉ IPv4 trên giao diện:

ip -4 addr flush dev ens33

Quản lý trạng thái giao diện

Tắt/gỡ kích hoạt thiết bị:

ip link set dev ens33 down ip link set dev ens33 up

Thay đổi MTU hoặc đặt nhãn giao diện:

ip link set dev ens33 mtu 1400 ip link set dev ens33 name eth-main

Định tuyến cơ bản

Xem bảng định tuyến hiện tại:

ip route show

Thêm route mạng con qua giao diện:

ip route add 10.10.50.0/24 via 192.168.1.1 dev ens33

Thêm route mặc định mới:

ip route replace default via 192.168.1.254 dev ens33

Xóa route mặc định hiện tại:

ip route del default

Quản lý bảng ARP/NDISC

Hiển thị các mục đã học:

ip neigh show

Xóa mục không hợp lệ:

ip neigh flush nud failed

Thêm mục tĩnh (static ARP):

ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev ens33 nud permanent

Thẻ: iproute2 linux-networking ip-command IPv4 ipv6

Đăng vào ngày 20 tháng 6 lúc 00:23