【Linux系列教程】配置静态路由

一、配置虚拟机

1.实验需要的环境:

实现PC1和PC2之间互通

  • 4台虚拟机,分别命名为PC1、PC2、R1、R2
  • 划分网段:
    • 192.168.1.0
    • 192.168.2.0
    • 192.168.3.0

route3

route2

2.配置网卡

  • PC1和PC2各一块网卡,并且分别配置绑定VMnet1和VMnet3
  • R1需要二块网卡,并且分配VMnet1和VMnet2
  • R2需要二块网卡,并且分配VMnet2和VMnet3

route4

route5

二、配置静态路由

  • 路由表
    • 网段、接口的对应关系
  • 根据数据的目的IP查找路由表

route1

1.PC1配置网络

[root@pc-1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens33"
UUID="26942ae5-6953-424d-ae50-8e879e92e62e"
DEVICE="ens33"
ONBOOT="yes"
ETHTOOL_OPTS="autoneg on"
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.11	#这里网关是我们将来要配置的
[root@pc-1 ~]# systemctl restart network	#重启网络服务

2.为R1配置

[root@router-1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens33"
UUID="13611e23-300f-43c5-a0c6-044ee84f9c43"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.1.11	#1网口地址
NETMASK=255.255.255.0	#路由器不用配置网关
[root@router-1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens36	#每个人的网卡名字不一样注意

TYPE="Ethernet"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens36"
UUID="13611e23-300f-43c5-a0c6-044ee84f9c43"
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.2.10	#2网口地址
NETMASK=255.255.255.0

添加路由表(临时)

[root@router-1 ~]# route add -net 192.168.3.0 gw 192.168.2.11

# route add -net 网段地址 gw 下一跳地址

如果您是最小化安装,提示无route命令请手动配置本地YUM源点我跳转配置本地YUM教程然后执行下面的命令

[root@router-1 ~]# yum install -y net-tools

添加路由表(永久)

[root@router-1 ~]# vi /etc/sysconfig/network-scripts/route-ens36

192.168.3.0/24 via 192.168.2.11 dev ens36

# 网段/子网掩码 via 下一跳地址 dev 出口网卡
[root@router-1 ~]# nmcli connection reload
[root@router-1 ~]# nmcli connection up ens36
[root@router-1 ~]# nmcli connection up ens33

开启路由转发功能(临时)

[root@router-1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

开启路由转发功能(永久)

[root@router-1 ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

[root@router-1 ~]# sysctl -p	#重新加载配置文件

3.为R2配置

[root@router-2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens33"
UUID="6470d1e5-3e5e-43c7-ad2e-91a3f2e92bb9"
DEVICE="ens33"
ONBOOT="yes"
ETHTOOL_OPTS="autoneg on"
IPADDR=192.168.2.11
NETMASK=255.255.255.0
[root@router-2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens36

TYPE="Ethernet"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens36"
UUID="6470d1e5-3e5e-43c7-ad2e-91a3f2e92bb9"
DEVICE="ens36"
ONBOOT="yes"
ETHTOOL_OPTS="autoneg on"
IPADDR=192.168.3.10
NETMASK=255.255.255.0

添加路由表(临时)

[root@router-2 ~]# route add -net 192.168.1.0/24 gw 192.168.2.10

添加路由表(永久)

[root@router-2 ~]# vi /etc/sysconfig/network-scripts/route-ens33

192.168.1.0/24 via 192.168.2.10 dev ens33

# 网段/子网掩码 via 下一跳地址 dev 出口网卡
[root@router-2 ~]# nmcli connection reload
[root@router-2 ~]# nmcli connection up ens33
[root@router-2 ~]# nmcli connection up ens36

开启路由转发功能(临时)

[root@router-2 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

如果您是最小化安装,提示无route命令请手动配置本地YUM源点我跳转配置本地YUM教程然后执行下面的命令

[root@router-2 ~]# yum install -y net-tools

开启路由转发功能(永久)

[root@router-2 ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

[root@router-2 ~]# sysctl -p	#重新加载配置文件

4.PC2配置网络

[root@pc-2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens33"
UUID="6653ff53-1fc2-4556-b9b5-627d780e80cd"
DEVICE="ens33"
ONBOOT="yes"
ETHTOOL_OPTS="autoneg on"
IPADDR=192.168.3.11
NETMASK=255.255.255.0
GATEWAY=192.168.3.10	#网关接口需要配置R2上连接PC2端的地址
[root@pc-2 ~]# systemctl restart network	#重启网络服务

三、测试

[root@pc-1 ~]# ping 192.168.3.11	#测试PC2能否和PC1互通
PING 192.168.3.11 (192.168.3.11) 56(84) bytes of data.
64 bytes from 192.168.3.11: icmp_seq=1 ttl=62 time=0.553 ms
64 bytes from 192.168.3.11: icmp_seq=2 ttl=62 time=0.446 ms
64 bytes from 192.168.3.11: icmp_seq=3 ttl=62 time=0.514 ms
64 bytes from 192.168.3.11: icmp_seq=4 ttl=62 time=0.438 ms

查看路由表

[root@route-1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 ens36
192.168.3.0     192.168.2.11    255.255.255.0   UG    0      0        0 ens36

[root@route-2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     192.168.2.10    255.255.255.0   UG    0      0        0 ens33
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.3.0     0.0.0.0         255.255.255.0   U     101    0        0 ens36