Loading...

Multi Default Gateways trên Linux: Cấu hình nhiều gateway với iproute2

Multi Default Gateways trên Linux: Cấu hình nhiều gateway mặc định

Trong các hệ thống Linux có nhiều card mạng (NIC), đôi khi cần cấu hình nhiều default gateway để phục vụ các mục đích như dự phòng đường truyền, phân tách lưu lượng hoặc kết nối tới nhiều mạng khác nhau. Tuy nhiên, theo nguyên tắc định tuyến thông thường, mỗi bảng định tuyến chỉ có một default gateway, vì vậy việc sử dụng nhiều gateway cần triển khai thông qua policy-based routing và nhiều routing table.

Bài viết này sẽ hướng dẫn cách cấu hình multi default gateways trên Linux bằng công cụ iproute2, giúp hệ thống định tuyến đúng gateway dựa trên địa chỉ nguồn hoặc interface.


1. Default Gateway trong Linux là gì?

Default gateway là tuyến định tuyến được sử dụng khi hệ thống không tìm thấy route cụ thể cho một gói tin. Khi đó, toàn bộ lưu lượng sẽ được chuyển tới gateway mặc định để tiếp tục định tuyến đến mạng đích.

Trong cấu hình thông thường:

  • hệ thống Linux chỉ có một bảng định tuyến chính (main routing table)

  • bảng này chỉ nên có một default route

Nếu cấu hình nhiều gateway trong cùng một bảng định tuyến, hệ thống có thể xảy ra asymmetric routing, khiến gói tin phản hồi đi ra interface khác với interface nhận, dẫn đến lỗi kết nối.


2. Khi nào cần Multi Default Gateways?

Trong thực tế triển khai hệ thống mạng, multi gateway thường được sử dụng trong các trường hợp:

2.1 Máy chủ có nhiều card mạng

Ví dụ một server có hai interface:

  • eth0 kết nối mạng nội bộ

  • eth1 kết nối mạng khác hoặc ISP

Mỗi interface sẽ có gateway riêng.

2.2 Multi-homing hoặc dự phòng đường truyền

Một server có thể kết nối:

  • ISP1 qua gateway A

  • ISP2 qua gateway B

Hệ thống sẽ sử dụng policy routing để xác định gateway phù hợp.

2.3 Phân tách lưu lượng mạng

Một số ứng dụng yêu cầu:

  • traffic quản trị đi qua một gateway

  • traffic dịch vụ đi qua gateway khác.


3. Ví dụ mô hình mạng

Giả sử một hệ thống Linux có hai interface:

InterfaceIP AddressNetworkGateway
eth0 192.168.0.10 192.168.0.0/24 192.168.0.1
eth1 10.10.0.10 10.10.0.0/24 10.10.0.1

Trong cấu hình thông thường, Linux chỉ có một gateway mặc định.
Để sử dụng cả hai gateway, chúng ta cần tạo routing table riêng cho từng interface.

Multi default gateway on linux

4. Cấu hình Multi Default Gateways với iproute2

4.1 Tạo routing table mới

Chỉnh sửa file:

/etc/iproute2/rt_tables

Thêm một bảng định tuyến mới:

1 rt2

Trong đó:

  • rt2 là tên bảng định tuyến

  • 1 là ID của bảng.


4.2 Thêm route vào bảng định tuyến mới

Sau khi tạo routing table, thêm route cho interface thứ hai:

ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
ip route add default via 10.10.0.1 dev eth1 table rt2

Các lệnh trên sẽ:

  • thêm route mạng 10.10.0.0/24

  • thiết lập gateway mặc định cho bảng rt2


4.3 Tạo rule định tuyến

Tiếp theo, cần thiết lập rule để hệ thống biết khi nào sử dụng bảng định tuyến này.

ip rule add from 10.10.0.10/32 table rt2
ip rule add to 10.10.0.10/32 table rt2

Các rule này cho phép:

  • traffic từ IP 10.10.0.10

  • traffic đến IP 10.10.0.10

sẽ được định tuyến thông qua bảng rt2.


5. Lưu cấu hình sau khi reboot

Các lệnh ip route và ip rule sẽ mất hiệu lực sau khi reboot.
Vì vậy cần thêm vào cấu hình mạng.

Ví dụ trong Debian / Ubuntu:

iface eth1 inet static
address 10.10.0.10
netmask 255.255.255.0
post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
post-up ip route add default via 10.10.0.1 dev eth1 table rt2
post-up ip rule add from 10.10.0.10/32 table rt2
post-up ip rule add to 10.10.0.10/32 table rt2

Sau khi khởi động lại hệ thống, rule và route sẽ được áp dụng tự động.


6. Kiểm tra cấu hình định tuyến

Sau khi cấu hình xong, có thể kiểm tra bằng các lệnh sau:

Hiển thị routing table:

ip route list table rt2

Hiển thị rule định tuyến:

ip rule show

Các lệnh này giúp xác nhận hệ thống đang sử dụng đúng bảng định tuyến cho từng interface.


7. Một số lưu ý khi cấu hình Multi Gateway

Khi triển khai nhiều default gateway trên Linux, cần lưu ý:

  • mỗi routing table chỉ nên có một default route

  • cần sử dụng policy routing để tránh routing loop

  • nên kiểm tra kỹ bằng ip rule và ip route

Trong môi trường enterprise, việc sử dụng nhiều gateway thường được kết hợp với các kỹ thuật như:

  • failover routing

  • load balancing

  • multi-homing network


Kết luận

Multi default gateways trên Linux là kỹ thuật quan trọng trong các hệ thống có nhiều interface hoặc nhiều đường kết nối mạng. Bằng cách sử dụng iproute2 và policy-based routing, quản trị viên có thể kiểm soát chính xác cách lưu lượng mạng được định tuyến qua từng gateway, giúp hệ thống hoạt động ổn định và linh hoạt hơn trong các môi trường mạng phức tạp.