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