路由器 是一种网络设备,用于在不同子网间转发数据包,是互联网的重要设备。Linux 系统因其出色的 TCP/IP 协议支持优势,可以很容易的让 Linux 主机扮演网络路由器的角色。如果一台 Linux 主机包含两块网卡,每块网卡又分别连接不同的子网,那么这台主机通过简单的配置就可以成为连接两个子网的路由器。

本文将演示如何将一台 Linux 主机配置成为简单的路由器。

1] 演示环境

  • 操作系统:CentOS 7
  • 主机名:iprouter.local
  • 网卡1 IP 地址:172.16.200.1
  • 网卡2 IP 地址:10.10.10.1

2] 配置网络接口

首先查看一下网络接口状态:

# nmcli device status

图.1 查看 Linux 主机网络接口状态

从图.1 可以看出,主机包含两个网络接口设备,分别为”ens33″和”ens37″,两个设备均已经连接成功,其中”ens33″连接 172.16.200.0/24 网段,为主机公共 IP,”ens37″连接 10.10.10.0/8 网段,为主机私网 IP。

如果主机网络设备没有配置,则可以使用如下命令对其进行设置:

// 连接公共网络
# nmcli connection add con-name ens33 ifname ens33 type ethernet autoconnect yes ip4 172.16.200.1/24 gw4 172.16.200.254nmcli connection modify ens33 ipv4.method manual ipv4.dns 114.114.114.114 ipv6.method ignore
# nmcli connection modify ens33 connection.zone external
# nmcli connection down ens33 ; nmcli connection up ens33
// 连接私有网络
# nmcli connection add con-name ens37 ifname ens37 type ethernet autoconnect yes ip4 10.10.10.1/8 gw4 10.10.10.1
# nmcli connection modify ens37 ipv4.method manual ipv4.dns 10.10.10.1 ipv6.method ignore
# nmcli connection modify ens37 ipv4.never-default yes
# nmcli connection modify ens37 connection.zone internal
# nmcli connection down ens37 ; nmcli connection up ens37

3] 配置防火墙

现在,将内部网络设置为默认区域:

# firewall-cmd --set-default-zone=internal
# firewall-cmd --list-all
# firewall-cmd --list-all --zone=external
图.2 查看系统防火墙状态

可以看到,每个网络接口均处于自己的特定区域。

4] 启用 IP  转发

最后,确认系统内核已经启用了 IP 转发功能,就完成了一个简单路由的设置:

# sysctl -a | grep ip_forward

如果结果输出中包含”net.ipv4.ip_forward = 1″,则表示系统已经启用了 IP 转发功能。否则需要修改内核参数启用 IP 转发功能。

在”/etc/sysctl.conf”配置文件中有一项名为 net.ipv4.ip_forward 的配置项,是用于配置 Linux 内核 IP 转发的参数。如果其值为0,说明禁用了 IP 转发;将其值设置为1,则启用内核 IP 转发。

需要注意的是,修改”sysctl.conf”文件后需要执行指令”sysctl -p”后新的配置才会生效。

5] 验证路由功能

在私有网络(10.10.10.0/8)网段添加一台主机,IP 地址设置为 10.10.10.150,网关设置为启用了 IP 转发的 Linux 主机;在公共网络(172.16.200.0/24)网段,有一台 Windows 终端,需要通过 Linux 主机访问私有网络的主机,则需要使用如下命令添加一条路由:

C:\> route add 10.10.10.0/8 172.16.200.1
C:\> tracert 10.10.10.150

图.3 验证 Linux 主机路由功能

可以看到,此时 CentOS 7 主机已经成功完成 IP 转发功能,实现了简单的路由功能。

发表评论

您的电子邮箱地址不会被公开。