用CentOS 7 主机做路由器 释放你的内网资源

用CentOS 7 主机做路由器 释放你的内网资源

需求: 左边网段主机需要通过一台接入了两个网段的主机访问另外一个网段的主机。

所有主机的操作系统均为CentOS 7。

操作步骤:

  1. 配置路由主机。
  2. 配置本地主机。

配置路由主机

配置上图中的 SERVER0 主机。

本配置将使用Centos自带的firewall进行配置,请开启firewalld

systemctl enable firewalld
systemctl start firewalld

开启IP转发

touch /usr/lib/sysctl.d/sysctl.conf
echo "net.ipv4.ip_forward=1" >> /usr/lib/sysctl.d/sysctl.conf

sysctl -p

在Centos7中推荐使用/usr/lib/sysctl.d/sysctl.conf 替换原来的/etc/sysctl.conf文件

配置防火墙规则,启动路由转发

firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --direct --permanent \
                    --add-rule ipv4 filter INPUT 0 \
                    --in-interface eno2 --protocol vrrp -j ACCEPT
firewall-cmd --reload

注意:--in-interface eno2中的eno2名称,请改为 “处于目的路由网段中的端口名称”

到这里,路由主机SERVER0配置已经完成。

配置本地主机路由

配置SERVER1-1SERVER1-2使其能够通过SERVER0访问到右侧网段。

图中均已标注SERVER1-1SERVER1-2都是使用名为eno1的网口接入网络
用CentOS 7 主机做路由器 释放你的内网资源

在主机上对eno1端口指定一条永久的路由,编辑路由eno1端口文件(不存在就手动创建):

vi /etc/sysconfig/network-scripts/route-eno1

route-eno1中的eno1请替换为实际主机上使用的端口名称,这里使用的是eno1

加入下面路由条目,保存并退出:

192.168.1.0/24 via 192.168.2.1 dev eno1

192.168.1.0/24 为目的网段;192.168.2.1为路由出口(网关)也就是中间SERVER0的一个网口IP;eno1取决于主机接入网络时候使用的端口;请根据实际情况替换上面IP和端口名称。

重启网络服务,并观察ip路由中是否加入了预期的路由:

systemctl restart network

ip route show

预期输出包含如下结果:

192.168.1.0/24 via 192.168.2.1 dev eno1 proto static metric 100

接下来可以使用ping命令检测是否能通:

ping 192.168.1.10

总结

在没有交换机的时候,可以利用服务主机多网口的优势,以最低的成本搭建一套互通的网络(主要是没有钱)。

实际上如果有路由器就不用这么折腾了…

参考文献

[1] 少延 . 2019.2 . https://www.xsy.me/linux/system/proxy-forward.html