Setup multiple gateway trên cùng 1 hệ thống Centos
Setup nhiều IP nằm cùng một subnet với cùng 1 gateway là rất đơn giản bằng cách add trực tiếp hoặc sủ dụng ethernet alias. Tuy nhiên, để chạy được 2 line mạng với 2 subnet, 2 gateway khác nhau trên Linux thì lại là chuyện khác. Lúc này ta cần 2 ethernet card nhưng không phải cứ add như bình thường vào là nó chạy như Windows, lý do là mặc định Linux chỉ hiểu 1 default gateway duy nhất. Do đó giải pháp là phải route lại đường đi của các subnet này qua các gateway tương ứng.
Giả sử ta có 2 line mạng với các IP như sau:
+ IP 192.168.1.199, mask /24, gateway 192.168.1.1 gán vào ethernet eth0
+ IP 172.16.15.199, mask /24, gateway 172.16.15.1 gán vào ethernet eth1
Trước tiên ta gán IP 192.168.1.199 như bình thường vào eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static HWADDR=00:21:9B:91:14:2E IPADDR=192.168.1.199 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
ifup eth0
Vậy là card thứ nhất đã OK, mặc định Linux sẽ hiểu default gateway là 192.168.1.1 bất kể ta có gán GATEWAY khác vào card thứ hai. Nếu gán vào và active, hệ thống sẽ mất kết nối mạng ngay lập tức.
Do đó, ở card còn lại ta khai báo tương tự như eth0 nhưng tuyệt đối ko active nó ngay mà sau đó tạo entry cho eth1 trong bảng table như sau:
# echo "11 eth1" >>/etc/iproute2/rt_tables
Add route cho subnet cần sử dụng để nó tìm được gateway tương ứng
# ip route add 172.16.15.0/24 dev eth1 src 172.16.15.199 table eth1 # ip route add default via 172.16.15.1 dev eth1 table eth1
Add route policy cho IP cần sử dụng bảng route. Mục đích của việc này là cho phép IP 172.16.5.199 giao tiếp được với các interface khác chứ không phải làm thay đổi bảng route để hệ điều hành có thế cho phép communicate giữa các subnet khác nhau.
# ip rule add from 172.16.15.199/32 table eth1 # ip rule add to 172.16.15.199/32 table eth1
và
ifup eth1
Kiểm tra lại bảng route ta được như sau:
ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.199 172.16.15.0/24 dev eth1 proto kernel scope link src 172.16.15.199 default via 192.168.1.1 dev eth0 default via 172.16.15.1 dev eth1 metric 100
và bảng rule thì được như sau:
ip rule show
0: from all lookup local 32764: from all to 172.16.15.199 lookup eth1 32765: from 172.16.15.199 lookup eth1 32766: from all lookup main 32767: from all lookup default
Nếu tất cả các thông số trên hiển thị như mong muốn thì có nghĩa là All Done! Lúc này ta hoàn toàn yên tâm thuê vps linux với nhiều line mạng khác nhau để có được nhiều IP khác nhau phục vụ cho mục đích SEO.