Linux多网卡多IP设置

在实际业务系统中,一个服务器可能会用到多个IP地址,而设置好IP地址后,只有默认地址可以访问,另外一个地址无法访问。

一、增加路由表

Linux 中的路由由路由规则和路由表组成。路由规则指定当数据包满足规则时,应转交到哪个路由表;路由表根据数据包的信息,选择下一跳。

可通过 ip rule 看当前的路由策略,如:

从这里也可以看出在内核中最多支持 32768 条路由规则。这里的 main 表是系统主要的路由表,所有的路由规则都写在这个表中。

查看 main 表


Linux 中支持 256 张路由表,编号为 0 到 255,可直接使用编号操作,也可使用编号的别名操作,编号和其别名的对应关系在 /etc/iproute2/rt_tables 文件中。

默认有 local,main,default 三个路由表,这三个路由表的名称命名就来自 /etc/iproute2/rt_tables。

注:数字范围为0-255,但0、255、254、253是保留的,不能使用。

增加两条路由,如有多个,按格式添加。此处增加vlan110、vlan91两个路由表。

二、建立路由网关

四、 增加路由原路返回规则,使来自不同的口的走不同的路由表。

五、命令汇总

# 清空路由表vlan110
$ ip route flush table vlan110
# 为路由表 vlan110 添加默认路由 172.16.110.254
$ ip route add default via  172.16.110.254  dev eth0 table vlan110
# 根据源 IP 决定路由表
$ ip rule add from 172.16.110.23 table vlan110
# 查看路由表vlan110
$ ip route list table 110
# 删除某个默认路由vlan110
$ ip rule del prio 32765

THE END