RHCE 系列(一):如何设置和测试静态网络路由

RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操做系统和软件,同时它还给公司提供训练、支持和咨询服务。linux

这个 RHCE 是一个绩效考试(代号 EX300),面向那些拥有更多的技能、知识和能力的红帽企业版 Linux(RHEL)系统高级系统管理员。web

重要: 得到RHCE 认证前须要先有 红帽认证系统管理员认证 Red Hat Certified System Administrator,RHCSA。数据库

 

红帽企业版 Linux 7 中的静态路由服务器

现代网络的一个奇迹就是有不少可用设备能将一组计算机链接起来,不论是在一个房间里少许的机器仍是在一栋建筑物、城市、国家或者大洲之间的多台机器。网络

然而,为了能在任意情形下有效的实现这些,须要对网络包进行路由,或者换句话说,它们从源到目的地的路径须要按照某种规则。app

静态路由是为网络包指定一个路由的过程,而不是使用网络设备提供的默认网关。除非另有指定静态路由,网络包会被导向默认网关;而静态路由则基于预约义标准所定义的其它路径,例如数据包目的地。运维

咱们在该篇指南中会考虑如下场景。咱们有一台 RHEL 7,链接到 1号路由器 [192.168.0.1] 以访问因特网以及 192.168.0.0/24 中的其它机器。tcp

第二个路由器(2号路由器)有两个网卡:enp0s3 一样链接到路由器1号以访问互联网,及与 RHEL 7 和同一网络中的其它机器通信,另一个网卡(enp0s8)用于受权访问内部服务所在的 10.0.0.0/24 网络,例如 web 或数据库服务器。linux运维

 

在这篇文章中咱们会集中介绍在 RHEL 7 中设置路由表,确保它能经过1号路由器访问因特网以及经过2号路由器访问内部网络。测试

在 RHEL 7 中,你能够经过命令行用 ip 命令 配置和显示设备和路由。这些更改能在运行的系统中及时生效,但因为重启后不会保存,咱们会使用 /etc/sysconfig/network-scripts 目录下的 ifcfg-enp0sX 和 route-enp0sX 文件永久保存咱们的配置。

首先,让咱们打印出当前的路由表:

# ip route show

从上面的输出中,咱们能够得出如下结论:

默认网关的 IP 是 192.168.0.1,能够经过网卡 enp0s3 访问。

系统启动的时候,它启用了到 169.254.0.0/16 的 zeroconf 路由(只是在本例中)。也就是说,若是机器设置经过 DHCP 获取 IP 地址,可是因为某些缘由失败了,它就会在上述网段中自动分配到一个地址。这一行的意思是,该路由会容许咱们经过 enp0s3 和其它没有从 DHCP 服务器中成功得到 IP 地址的机器机器相链接。

最后,但一样重要的是,咱们也能够经过 IP 地址是 192.168.0.18 的 enp0s3 与 192.168.0.0/24 网络中的其它机器链接。

 

下面是这样的配置中你须要作的一些典型任务。除非另有说明,下面的任务都在2号路由器上进行。

确保正确安装了全部网卡:

# ip link show

若是有某块网卡停用了,启动它:

# ip link set dev enp0s8 up

分配 10.0.0.0/24 网络中的一个 IP 地址给它:

# ip addr add 10.0.0.17 dev enp0s8

噢!咱们分配了一个错误的 IP 地址。咱们须要删除以前分配的那个并添加正确的地址(10.0.0.18):

# ip addr del 10.0.0.17 dev enp0s8

# ip addr add 10.0.0.18 dev enp0s8

如今,请注意你只能添加一个经过网关到目标网络的路由,网关须要能够访问到。由于这个缘由,咱们须要在 192.168.0.0/24 范围中给 enp0s3 分配一个 IP 地址,这样咱们的 RHEL 7 才能链接到它:

# ip addr add 192.168.0.19 dev enp0s3

最后,咱们须要启用包转发:

# echo "1" > /proc/sys/net/ipv4/ip_forward

并停用/取消防火墙(从如今开始,直到下一篇文章中咱们介绍了包过滤):

# systemctl stop firewalld

# systemctl disable firewalld

回到咱们的 RHEL 7(192.168.0.18),让咱们配置一个经过 192.168.0.19(2号路由器的 enp0s3)到 10.0.0.0/24 的路由:

# ip route add 10.0.0.0/24 via 192.168.0.19

以后,路由表看起来像下面这样:

# ip route show

一样,在你尝试链接的 10.0.0.0/24 网络的机器中添加对应的路由:

# ip route add 192.168.0.0/24 via 10.0.0.18

你可使用 ping 测试基本链接:

在 RHEL 7 中运行:

# ping -c 4 10.0.0.20

10.0.0.20 是 10.0.0.0/24 网络中一个 web 服务器的 IP 地址。

在 web 服务器(10.0.0.20)中运行

# ping -c 192.168.0.18

192.168.0.18 也就是咱们的 RHEL 7 机器的 IP 地址。

另外,咱们还可使用 tcpdump(须要经过 yum install tcpdump 安装)来检查咱们 RHEL 7 和 10.0.0.20 中 web 服务器之间的 TCP 双向通讯。

 

首先在第一台机器中启用日志:

# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

在同一个系统上的另外一个终端,让咱们经过 telnet 链接到 web 服务器的 80 号端口(假设 Apache 正在监听该端口;不然应在下面命令中使用正确的监听端口):

# telnet 10.0.0.20 80

经过查看咱们 RHEL 7(192.168.0.18)和 web 服务器(10.0.0.20)之间的双向通讯,能够看出已经正确地初始化了链接。

请注意你重启系统后会丢失这些更改。若是你想把它们永久保存下来,你须要在咱们运行上面的命令的相同系统中编辑(若是不存在的话就建立)如下的文件。

尽管对于咱们的测试例子不是严格要求,你须要知道 /etc/sysconfig/network 包含了一些系统范围的网络参数。一个典型的 /etc/sysconfig/network 看起来相似下面这样:

# Enable networking on this system?

NETWORKING=yes

# Hostname. Should match the value in /etc/hostname

HOSTNAME=yourhostnamehere

# Default gateway

GATEWAY=XXX.XXX.XXX.XXX

# Device used to connect to default gateway. Replace X with the appropriate number.

GATEWAYDEV=enp0sX

当须要为每一个网卡设置特定的变量和值时(正如咱们在2号路由器上面作的),你须要编辑 /etc/sysconfig/network-scripts/ifcfg-enp0s3 和 /etc/sysconfig/network-scripts/ifcfg-enp0s8 文件。

 

下面是咱们的例子,

TYPE=Ethernet

BOOTPROTO=static

IPADDR=192.168.0.19

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

NAME=enp0s3

ONBOOT=yes

以及

 

TYPE=Ethernet

BOOTPROTO=static

IPADDR=10.0.0.18

NETMASK=255.255.255.0

GATEWAY=10.0.0.1

NAME=enp0s8

ONBOOT=yes

其分别对应 enp0s3 和 enp0s8。

因为要为咱们的客户端机器(192.168.0.18)进行路由,咱们须要编辑 /etc/sysconfig/network-scripts/route-enp0s3:

10.0.0.0/24 via 192.168.0.19 dev enp0s3

如今reboot你的系统,就能够在路由表中看到该路由规则。

 

总结

在这篇文章中咱们介绍了红帽企业版 Linux 7 的静态路由。尽管场景可能不一样,这里介绍的例子说明了所需的原理以及进行该任务的步骤。

免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.lampbrother.net/linux/

或者勾搭Q2430675018

欢迎加入linux交流群 478068715

相关文章
相关标签/搜索