服务器三个网卡配置三个同网段的IP
问题分析:某内网项目,需要三个站点分别用三个独立IP来访问前台
处理方法:查看服务器当前网卡ip addr show,可以查看到只配置了ens10的网卡,ens9和ens11未配置
1. 先给 ens9、ens11 配 IP,但不加网关
nmcli con add con-name ens9 ifname ens9 type ethernet \ ipv4.addresses "10.10.10.49/24" \ ipv4.method manual \ ipv4.never-default yes \ connection.autoconnect yes nmcli con up ens9 nmcli con add con-name ens11 ifname ens11 type ethernet \ ipv4.addresses "10.10.10.50/24" \ ipv4.method manual \ ipv4.never-default yes \ connection.autoconnect yes nmcli con up ens11
#ipv4.never-default yes 很关键,防止 ens9、ens11 再产生默认网关,把现有网络顶掉。
2. 添加自定义路由表
vi /etc/iproute2/rt_tables
在文件末尾追加:
110 rt_ens10120 rt_ens9130 rt_ens11
3. 配置策略路由
# ens10 ip route flush table rt_ens10 ip route add 10.6.83.0/24 dev ens10 src 10.6.83.47 table rt_ens10 ip route add default via 10.6.83.1 dev ens10 table rt_ens10 ip rule add from 10.6.83.47 table rt_ens10 priority 1100 # ens9 ip route flush table rt_ens9 ip route add 10.6.83.0/24 dev ens9 src 10.6.83.49 table rt_ens9 ip route add default via 10.6.83.1 dev ens9 table rt_ens9 ip rule add from 10.6.83.49 table rt_ens9 priority 1200 # ens11 ip route flush table rt_ens11 ip route add 10.6.83.0/24 dev ens11 src 10.6.83.50 table rt_ens11 ip route add default via 10.6.83.1 dev ens11 table rt_ens11 ip rule add from 10.6.83.50 table rt_ens11 priority 1300
4. 关闭反向路径过滤
rp_filter 容易把回包丢掉。策略路由默认重启会丢,建议写入 /etc/rc.local。
vi /etc/rc.local
sleep 5 ip route flush table rt_ens10 ip route add 10.6.83.0/24 dev ens10 src 10.6.83.47 table rt_ens10 ip route add default via 10.6.83.1 dev ens10 table rt_ens10 ip rule add from 10.6.83.47 table rt_ens10 priority 1100 ip route flush table rt_ens9 ip route add 10.6.83.0/24 dev ens9 src 10.6.83.49 table rt_ens9 ip route add default via 10.6.83.1 dev ens9 table rt_ens9 ip rule add from 10.6.83.49 table rt_ens9 priority 1200 ip route flush table rt_ens11 ip route add 10.6.83.0/24 dev ens11 src 10.6.83.50 table rt_ens11 ip route add default via 10.6.83.1 dev ens11 table rt_ens11 ip rule add from 10.6.83.50 table rt_ens11 priority 1300 sysctl -w net.ipv4.conf.all.rp_filter=0 sysctl -w net.ipv4.conf.default.rp_filter=0 sysctl -w net.ipv4.conf.ens10.rp_filter=0 sysctl -w net.ipv4.conf.ens9.rp_filter=0 sysctl -w net.ipv4.conf.ens11.rp_filter=0
给执行权限:chmod +x /etc/rc.local
5. 验证方法
ip addr show ip route show ip rule show ip route show table rt_ens10 ip route show table rt_ens9 ip route show table rt_ens11
6.网站需要更新支持
要让网站子站独立的IP作为自定义域名,需要找开发更新相关代码。