将安装了 CentOS/RHEL 6/7 的机器转变成路由器

将安装了 CentOS/RHEL 6/7 的机器转变成路由器

在本文中,我们将学习通过使用 NAT 技术将安装有 RHEL/CentOS 6 & 7 的机器转变成路由器来用。 我们都知道,路由器是一个工作在第三层的网络设备,用于将两个或多个网络连接在一起,即,将局域网连接上广域网上或者局域网直接互联。 路由器非常昂贵,尤其对于小型组织来说更是如此,这可能是我们关注路由器的一个原因。 与其使用专用硬件,不如让我们用 Linux 机器转换成路由器来用。

RHEL/CentOS 6 和 7 上的操作过程我们都会讲。但在开始之前, 让我们先看看需要准备那些东西。

 

前期条件

1、 一台装有 RHEL/CentOS 6 或 7 的机器

2、两块分别配有本地 IP 和外网 IP 的网卡

我们需要为两个网卡都分配 IP 地址,一个本地网络的 IP(由我们的网络管理员提供),另一个是互联网 IP(由 ISP 提供)。 像这样:

  1. <span class="typ">Ifcfg</span><span class="pun">-</span><span class="pln">en0s3 </span><span class="lit">192.168</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">(</span><span class="pln">LAN IP address</span><span class="pun">)</span>
  2. <span class="typ">Ifcfg</span><span class="pun">-</span><span class="pln">en0s5 </span><span class="lit">10.1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">(</span><span class="pln">WAN IP address</span><span class="pun">)</span>

注意 不同 Linux 发行版的网卡名是不一样的。

现在准备工作完成了,可以进行配置了。

 

步骤 1 启用 IP 转发

第一步,我们启用 IP 转发。 这一步在 RHEL/CentOS 6 和 7 上是相同的。 运行

  1. <span class="pln">$ </span><span class="kwd">sysctl</span><span class="pun">-</span><span class="kwd">w</span><span class="pln"> net</span><span class="pun">.</span><span class="pln">ipv4</span><span class="pun">.</span><span class="pln">ip_forward</span><span class="pun">=</span><span class="lit">1</span>

但是这样会在系统重启后恢复。要让重启后依然生效需要打开

  1. <span class="pln">$ </span><span class="kwd">vi</span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="kwd">sysctl</span><span class="pun">.</span><span class="pln">conf</span>

然后输入下面内容,

  1. <span class="pln">net</span><span class="pun">.</span><span class="pln">ipv4</span><span class="pun">.</span><span class="pln">ip_forward </span><span class="pun">=</span><span class="lit">1</span>

保存并退出。现在系统就启用 IP 转发了。

 

步骤 2 配置 IPtables/Firewalld 的规则

下一步我们需要启动 IPtables/firewalld 服务并配置 NAT 规则,

  1. <span class="pln">$ </span><span class="kwd">systemctl</span><span class="pln"> start firewalld </span><span class="pun">(</span><span class="typ">For</span><span class="typ">Centos</span><span class="pun">/</span><span class="pln">RHEL </span><span class="lit">7</span><span class="pun">)</span>
  2. <span class="pln">$ service iptables start </span><span class="pun">(</span><span class="typ">For</span><span class="typ">Centos</span><span class="pun">/</span><span class="pln">RHEL </span><span class="lit">6</span><span class="pun">)</span>

然后运行下面命令来配置防火墙的 NAT 规则:

  1. <span class="typ">CentOS</span><span class="pun">/</span><span class="pln">RHEL </span><span class="lit">6</span>
  2. <span class="pln">$ iptables </span><span class="pun">-</span><span class="pln">t nat </span><span class="pun">-</span><span class="pln">A POSTROUTING </span><span class="pun">-</span><span class="pln">o XXXX </span><span class="pun">-</span><span class="pln">j MASQUERADE</span>
  3. <span class="pln">$ service iptables restart </span>
  4. <span class="typ">CentOS</span><span class="pun">/</span><span class="pln">RHEL </span><span class="lit">7</span>
  5. <span class="pln">$ firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">-</span><span class="pln">permanent </span><span class="pun">-</span><span class="pln">direct </span><span class="pun">-</span><span class="pln">passthrough ipv4 </span><span class="pun">-</span><span class="pln">t nat </span><span class="pun">-</span><span class="pln">I POSTROUTING </span><span class="pun">-</span><span class="pln">o XXXX </span><span class="pun">-</span><span class="pln">j MASQUERADE </span><span class="pun">-</span><span class="pln">s </span><span class="lit">192.168</span><span class="pun">.</span><span class="lit">1.0</span><span class="pun">/</span><span class="lit">24</span>
  6. <span class="pln">$ </span><span class="kwd">systemctl</span><span class="pln"> restart firewalld</span>

这里,XXXX 是配置有外网 IP 的那个网卡名称。 这就将 Linux 机器配置成了路由器了, 下面我们就可以配置客户端然后测试路由器了。

 

步骤 3 配置客户端

要测试路由器,我们需要在客户端的网关设置成内网 IP, 本例中就是 192.168.1.1。 因此不管客户机是 Windows 还是 Linux, 请先确保网关是 192.168.1.1。 完成后, 打开终端或命令行并 ping 一个网站来测试客户端是否能访问互联网了:

  1. <span class="pln">$ </span><span class="kwd">ping</span><span class="pln"> google</span><span class="pun">.</span><span class="pln">com</span>

我们也可以通过网络浏览器访问网站的方式来检查。


via: http://linuxtechlab.com/turning-centosrhel-6-7-machine-router/

作者:Shusain 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关推荐