Khi bạn cài đặt một server chạy hệ điều hành Linux (CentOS, Ubuntu…) mà muốn sử dụng nhiều IP cùng một subnet thì đơn giản bạn chỉ cần add thêm card mạng hoặc cấu hình sub-interface và thêm IP vào, các IP sẽ hoạt động hoàn toàn bình thường. Nhưng các IP khác subnet thì lại là một câu chuyện khác.
Vì vậy lúc này chúng ta sẽ cần phải làm thêm một vài thao tác định tuyến, chỉ lại đường đi cho từng subnet trên server.
Ở đây ta có một Server Linux có 2 Card mạng có IP thuộc 2 subnet khác nhau (Một dải .85.0/24 và một dải .86.0/24).
103.81.85.x/24 được gán cho eth0
103.81.86.x/24 được gán vào eth1
Ping thử xem hiện tại Server đang nhận IP nào.
Ta thấy Server đang nhận địa chỉ thuộc dải 103.81.86.0 để ra internet => interface eth1 sẽ có metric nhỏ hơn. Vì vậy, ta sẽ chỉ phải định tuyến lại đường đi cho eth0 của server.
Các bước thực hiện như sau:
Tạo entry cho eth0 trong bảng rt_table bằng lệnh:
#echo "10 eth0" >>/etc/iproute2/rt_tables
10 là entry ID (có thể thay đổi, miễn sao không bị trùng lặp).
eth0 là tên card mạng thêm vào bảng.
Add route cho subnet thuộc eth0:
#ip route add 103.81.85.0/24 dev eth0 src 103.81.85.x table eth0 #ip route add default via 103.81.85.1 dev eth0 table eth0 #ip rule add from 103.81.85.x/32 table eth0 #ip rule add to 103.81.85.x/32 table eth0
Sau khi cấu hình xong các thông số trên, từ PC của bạn, hãy thử ping đến IP 103.81.85.x của server xem đã reply chưa.
Ta đã thấy Server reply gói ping trên IP 103.81.85.x và giờ ta đã sử dụng được 2 IP như bình thường.
Nếu server có nhiều hơn 2 IP bạn cấu hình các thông số tương ứng cho các Card mạng còn lại.
Lưu ý: Lệnh định tuyến này chỉ sẽ mất tác dụng khi bạn restart lại dịch vụ network hoặc khởi động lại server, vì vậy bạn hãy tạo ra một file script đơn giản để server sẽ tự chạy các lệnh kia khi khởi động lên.