在项目中遇到多网域的场景非常多见,我们以某县城市管理局数字城管项目进行案例分析。该项目需要搭建一套视频监控平台,平台服务端需要接入天网的前端设备,前端设备分布在两家运营商独立的局域网。平台服务器通过网络硬件防火墙映射到公网IP,使部分通过互联网的客户端来访问平台服务端,简易网络拓扑图如下所示。

centos7 网卡bond centos7 网卡增加路由_配置文件

IP地址规划

centos7 网卡bond centos7 网卡增加路由_centos7 网卡配置vlan_02

路由选择

我们在做路由规划的时候需要了解以下知识点,如果这些知识点不清楚,那么配置网络后可能将达不到预期效果。

  1. 多个网卡需要配置网关时,只能选择其中一个网卡的配置文件写GATEWAY网关参数。如果多个网卡配置里都存在GATEWAY参数,那么生效的将是最后一个网关,其他的网关不会生效,那么就达不到我们预期的效果。
  2. 既然需要网关作为出口但是又不能在网卡配置文件里写,那么只能通过另外再写静态路由来实现跨vlan通信。问题来了,那么选谁作为默认路由,谁作为静态路由呢?请记住一个原则,目的网段可以明确的即可作为静态路由(天网网段是明确知道范围的),未知目的网段必须作为默认路由(互联网不能确认具体IP)。

综上两点最终只能选择内网网卡对应的网关作为默认路由,电信和移动天网网卡对应的网关作为静态路由,在编写静态路由时我们需要指定目标参数。

现在可以进行网络IP和静态路由的配置了,三个网卡的配置文件分别如下:

内网网卡ens2f3

centos7 网卡bond centos7 网卡增加路由_配置文件_03

电信天网网卡ens2f0

centos7 网卡bond centos7 网卡增加路由_IP_04

移动天网网卡ens2f1

centos7 网卡bond centos7 网卡增加路由_centos7 网卡配置vlan_05

配置完成后IP信息

centos7 网卡bond centos7 网卡增加路由_centos7 网卡配置vlan_06

CentOS7静态路由可通过临时生效和永久生效来实现,临时生效时重启网络服务或者重启主机时路由将会丢失。

临时路由命令实现语法:

  1. route命令实现
    route  add -net 172.20.0.0/16 gw 172.20.72.1 dev ens2f0
    add/del   增加/删除
    net/host  网段/单个IP
    gw           网关
    dev          网卡
    172.20.0.0/16 包含了172.20开头所有IP地址
    172.20.72.1为ens2f0的IP172.20.72.156网关
  2. ip命令实现
    ip route add 172.20.0.0/16 via 172.20.72.1 dev ens2f0
    add/del   增加/删除
    via  网关
  3. 查看当前路由
    route -n

永久配置路由实现方法:

  1. 创建路由配置文件,默认不存在,格式为route-网关名称
    vi  /etc/sysconfig/network-scripts/route-ens2f0
  2. 写入静态路由参数
    172.20.0.0/16 via 172.20.72.1 dev ens2f0
  3. 重启网络服务生效
    systemctl restart network
  4. 查看当前路由

        route -n

centos7 网卡bond centos7 网卡增加路由_centos7 网卡配置vlan_07

Destination

目标网段或者主机

Gateway

网关地址,”*” 表示目标是本主机所属的网络,不需要路由

Genmask

网络掩码

Flags

标记。一些可能的标记如下:

U — 路由是活动的

H — 目标是一个主机

G — 路由指向网关

R — 恢复动态路由产生的表项

D — 由路由的后台程序动态地安装

M — 由路由的后台程序修改

! — 拒绝路由

Metric

路由距离,到达指定网络所需的中转数(linux 内核中没有使用)

Ref

路由项引用次数(linux 内核中没有使用)

Use

此路由项被路由软件查找的次数

Iface

该路由表项对应的输出接口