Các vấn đề liên quan đến asymmetric routing

1. Tổng quan

Trong một hệ thống có nhiều interface hoặc nhiều VLAN trên cùng một máy chủ, mỗi interface thường được cấu hình IP và gateway tương ứng. Tuy nhiên, có nhiều tình huống quản trị mạng lựa chọn không cấu hình gateway cho một số interface. Việc này có thể dẫn đến nhiều kịch bản khác nhau trong định tuyến. Bài viết sẽ phân tích các trường hợp cụ thể, minh họa bằng ví dụ và đưa ra lời khuyên.


2. Các trường hợp có thể xảy ra

2.1 Mô hình tham chiếu

Giả sử một server có hai interface:

  • eth0.100: IP 192.168.100.161/24, gateway 192.168.100.254
  • eth0.101: IP 192.168.101.161/24, gateway 192.168.101.254

Nếu chỉ giữ gateway ở eth0.100 và bỏ gateway ở eth0.101, bảng route sẽ như sau:

default via 192.168.100.254 dev eth0.100
192.168.100.0/24 dev eth0.100 scope link src 192.168.100.161
192.168.101.0/24 dev eth0.101 scope link src 192.168.101.161

2.2 Giao tiếp trong cùng subnet (trường hợp bình thường)

  • Ví dụ: Client 192.168.101.50 muốn ping 192.168.101.161.
  • Gói tin đi trực tiếp trong cùng subnet 192.168.101.0/24.
  • Server trả lời mà không cần tới gateway.
  • Kết quả: hoạt động bình thường.

2.3 Server truy cập ra ngoài Internet bằng IP không có gateway

  • Ví dụ: Server dùng IP 192.168.101.161 gửi gói đến 8.8.8.8.
  • eth0.101 không có gateway, kernel sẽ chọn default route qua 192.168.100.254.
  • Gói đi ra ngoài với source 192.168.101.161 nhưng qua eth0.100.
  • Router 192.168.100.254 có thể coi đây là gói bất thường vì source không thuộc subnet 192.168.100.0/24.
  • Trường hợp mạng thuần L3 (không NAT, không filter) vẫn có thể thông, nhưng rất dễ gặp asymmetric routing.

2.4 Client ngoài subnet truy cập server bằng IP không có gateway

  • Ví dụ: Client 10.10.10.50 gửi gói đến server 192.168.101.161.
  • Gói vào server qua router 192.168.101.254.
  • Khi trả lời, kernel lookup route → không có default qua 192.168.101.254, chỉ có default qua 192.168.100.254.
  • Gói trả lời đi ra qua eth0.100 → bất đối xứng đường đi.
  • Nếu không có firewall/NAT, gói vẫn đến nơi. Nếu có, nhiều khả năng bị drop.

2.5 Giải pháp với Policy Routing

Để tránh asymmetric routing, có thể dùng policy routing:

ip rule add from 192.168.101.0/24 table 101
ip route add 192.168.101.0/24 dev eth0.101 table 101
ip route add default via 192.168.101.254 dev eth0.101 table 101

Nhờ vậy, gói có source thuộc 192.168.101.0/24 sẽ luôn đi đúng gateway 192.168.101.254.


2.6 Lợi ích khi gắn gateway cho interface phụ

Ngoài việc khai báo default route với metric cao để làm dự phòng, cũng có thể cấu hình route nội bộ cho interface phụ, ví dụ:

yaml
routes:
  - to: 192.168.101.0/24
    via: 192.168.101.254

Lợi ích:

  1. Giảm ARP broadcast: thay vì ARP trực tiếp từng host trong subnet, server chỉ ARP gateway.
  2. Tuân thủ chính sách mạng: trong một số môi trường, mọi lưu lượng (kể cả nội bộ subnet) phải đi qua router/firewall để kiểm soát.
  3. Rõ ràng về đường đi: đảm bảo tất cả traffic của subnet đó luôn qua gateway, không lẫn host-to-host trực tiếp.

Lưu ý: trong môi trường L2 thuần, route này không cần thiết và có thể làm tăng độ trễ do phải đi thêm một hop.


Bạn có muốn mình chỉnh lại toàn bộ bài viết với phần bổ sung này để bạn có bản hoàn chỉnh luôn không?


3. Ví dụ minh họa

3.1 Sơ đồ logic bất đối xứng khi bỏ gateway ở eth0.101

Client 10.10.10.50
    |
    v
Router 192.168.101.254
    |
    v
Server 192.168.101.161 (gói vào eth0.101)
    |
    v (default route chọn gateway khác)
Router 192.168.100.254
    |
    v
Client 10.10.10.50

3.2 Sơ đồ khi áp dụng policy routing

Client 10.10.10.50
    |
    v
Router 192.168.101.254
    |
    v
Server 192.168.101.161 (policy chọn table 101)
    |
    v
Router 192.168.101.254
    |
    v
Client 10.10.10.50

4. Lời khuyên

  1. Nếu server chỉ phục vụ trong cùng subnet thì có thể bỏ gateway ở interface phụ.
  2. Nếu server cần truy cập ra ngoài bằng nhiều subnet, hãy cấu hình policy routing để đảm bảo gói tin đi ra đúng gateway.
  3. Tránh để asymmetric routing trong môi trường production có NAT hoặc firewall stateful, vì dễ dẫn đến mất kết nối.
  4. Trong lab hoặc môi trường thuần L3 không filter, có thể bỏ gateway mà kết nối vẫn hoạt động, nhưng không nên áp dụng cho hệ thống thật.

5. Kết luận

Bỏ gateway ở một interface không làm mất kết nối trong cùng subnet, nhưng dễ gây bất đối xứng khi giao tiếp liên subnet hoặc Internet. Trong môi trường thực tế, nên sử dụng policy routing để đảm bảo đường đi–đường về nhất quán. Đây là cách tránh rủi ro asymmetric routing và đảm bảo kết nối ổn định.

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email