centos7使用rt_tables巧妙配置多网卡多路由实现策略路由

路由表和策略路由的区别

通常我们维护静态路由表会手工填写所有IP地址段的路由规则,使用命令或者写入配置文件永久生效,以常见的操作系统Windows/Linux/AIX为例

#Windows静态路由--键入 route -p add [目标] [mask <网络掩码>] [网关] [metric <度量值>] [if <接口>]route printroute deleteroute -p add 172.16.19.0 mask 255.255.255.0 198.15.0.1#RHEL静态路由vi /etc/sysconfig/networkdefault via 192.168.3.1 dev eth010.211.6.0/24 via 192.168.3.1 dev eth010.0.0.0/8 via 10.212.52.1 dev eth1#SuSE静态路由vi /etc/sysconfig/network/routesdefault 192.168.3.1 - -10.211.6.0 192.168.3.1 255.255.255.0 eth010.0.0.0 10.212.52.1 255.0.0.0 eth1#AIX静态路由smitty mkroute172.20.14.0/24 gw 172.23.14.254
这种办法针对少量的规则还可以轻松应对,但规则一旦增加麻烦也就接踵而至,网段地址不断变化就必须及时更新路由表,否则其他用户就无法访问。如果可以根据用户访问进来的路径设定策略路由就会方便很多,而rt_tables就是为此而生

rt_tables

rt_tables简单来说就是通过给表的命名使得管理简单化

大部分人习惯直接将路由表优先级号码直接作为表的名称来使用,这样做的好处是非常直观和简明的表达了表所在优先级的位置,但是当表的优先级结构出现变动时,我们对巨大的路由表的修改就显得很烦琐和费事了。

在/etc/iproute2/目录下,有这么一个文件rt_tables,只要对它进行改动,我们将很容易的完成路由表优先级结构的变动。(数值越小优先级别越高)

当路由表的优先级发生变化的时候,我们只需要编辑/etc/iproute2/rt_tables这个文件就可以直接改变路由表的优先级次序。

[root@peter-host ~]# vim /etc/iproute2/rt_tables ## reserved values#255     local254     main253     default0       unspec## local##1      inr.ruhep

Linux最多可以支持255张路由表,其中有3张表是内置的:

表255 本地路由表(Local table) 本地接口地址,广播地址,已及NAT地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。

表254 主路由表(Main table) 如果没有指明路由所属的表,所有的路由都默认都放在这个表里,一般来说,旧的路由工具(如route)所添加的路由都会加到这个表。一般是普通的路由。

表253 默认路由表 (Default table) 一般来说默认的路由都放在这张表,但是如果特别指明放的也可以是所有的网关路由。

表 0 保留

因为VPC网络没有其他网段,所以此处就以同网段的示例:

原有网卡eth0

[root@peter-host network-scripts]# cat ifcfg-eth0 BOOTPROTO=dhcpDEVICE=eth0ONBOOT=yesTYPE=EthernetUSERCTL=noIPV6INIT=yesDHCPV6C=yes

新增网卡eth1,ip为自动获取的

从其他机器ping这两个ip,只有eth0网卡可以通信,eth1不可以

1、编辑路由策略

#编辑rt_tables
  echo "251 net_251" >> /etc/iproute2/rt_tables
  echo "252 net_252" >> /etc/iproute2/rt_tables

# 查看[root@peter-host ~]# vim /etc/iproute2/rt_tables # reserved values#255     local254     main253     default0       unspec

#
 # local
 #
 #1 inr.ruhep

#################添加下面两行(数值越小优先级别越高)251     net_251252     net_252

2、添加路由规则

#清空net_251的路由表ip route flush table net_251# 添加一个路由规则到 net_251 表,这条规则是 net_251 这个路由表中数据包默认使用源 IP 192.168.0.33 通过 eth0 走网关 192.168.0.1ip route add default via 192.168.0.1 dev eth0 src 192.168.0.33 table net_251#来自 192.168.0.33 的数据包,使用 net_251 路由表的路由规则ip rule add from 192.168.0.1 table net_251

#清空net_252的路由表
  ip route flush table net_252
 # 添加一个路由规则到 net_252 表,这条规则是 net_252 这个路由表中数据包默认使用源 IP 192.168.0.207 通过 eth1 走网关 192.168.0.1
  ip route add default via 192.168.0.1 dev eth0 src 192.168.0.207 table net_252
 #来自 192.168.0.207 的数据包,使用 net_252 路由表的路由规则
  ip rule add from 192.168.0.1 table net_252

#添加默认网关route add default gw 192.168.0.1

3、如果需要自启动生效可以写进配置文件也可以加入rc.local

vim /etc/rc.localip route flush table net_251ip route add default via 192.168.0.1 dev eth0 src 192.168.0.33 table net_251ip rule add from 192.168.0.33 table net_251ip route flush table net_252ip route add default via 192.168.0.1 dev eth1 src 192.168.0.207 table net_252ip rule add from 192.168.0.207 table net_252route add default gw 192.168.0.1

4、给文件添加 执行权限使其开机执行

chmod u+x /etc/rc.d/rc.local

5、重启系统

6、在其他主机上测试ping这两个ip是否可以通信,此时就可以正常使用了

查看路由表:

网关

(0)

相关推荐

  • Linux 路由 策略路由

    目录 Linux 路由 策略路由 查看IP策略 添加IP策略规则 删除IP策略规则 根据源地址决定路由表 根据目的地址决定路由表 根据网卡设备决定路由表 此外还可以根据其他条件进行设置,例如tos等等 ...

  • Linux 基于策略的路由

    https://www.cnblogs.com/gaozhengwei/p/7098024.html Linux 基于策略的路由(Linux Policy Routing) Linux 有传统的基于数 ...

  • 配置centos网卡

    一.Centos 修改IP地址 修改对应网卡的IP地址的配置文件 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 同时修改以下内容: DEVICE=eth ...

  • 五菱Q500房车,布局巧妙配置大升级!15.8万价格不变为百姓用心打造好车!

    可能大家开车都遇到过这样的事,在公路上平稳的行驶着,突然一辆车在一旁一闪而过,将你超越,等你反应过来就只能看到它远处的尾灯了,没错就是"五菱神车",自上市以来就以它超高的性价比以及 ...

  • CentOS7安装wget 及配置

    CentOS7安装wget 及配置 bellus- 2018-02-25 18:15:28 51606 收藏 4 分类专栏: 坚持学习 未来可期 软件安装 # CentOS7 知识共享. 本文链接:h ...

  • centos7 vsftp安装与配置

    一.安装 #安装yum install -y vsftpd#设置开机启动systemctl enable vsftpd#启动systemctl start vsftpd#重启systemctl res ...

  • CentOS7下安装Consul和自启动配置

    安装 1.下载Consul [root@localhost 20190903] wget https://releases.hashicorp.com/consul/0.9.3/consul_0.9. ...

  • H3C交换机和Linux服务器网卡绑定bond对接经典配置

    交换机与Linux服务器多网卡bond模式对接 交换机多端口和服务器对接时,需要确定是否需要配置聚合或者不配置聚合,并且配置聚合的时候还需要确认是静态聚合还是动态聚合,当然这和当前服务器网卡的bond ...

  • CentOS7及Docker配置中文字符集问题

    说明 Linux系统默认使用英文字符集,不会安装中文字符集等其他字符. 查看当前字符集 $ echo $LANG en_US.UTF-8 安装字符集 使用locale命令看看当前系统所使用的字符集 $ ...

  • CentOS 网卡配置bond4(LACP)

    交换机开启LACP,配置聚合. 网卡eno1, eno2, eno3.eno1为管理口,eno2和eno3绑定,配置bond4. 配置eno2: vim /etc/sysconfig/network- ...

  • certbot在Centos7上配置合法签名证书,实现nginx的https访问

    咖菲猫-李常明笔记 公司因之前使用的openssh创建的自签名证书,有一个弊端,就是在某些客户端上不能使用此证书,无法使用https连接,所以,研究了一下certbot 做签名证书! certbot的 ...