第十二章 路由通信(二)
12.2.5 永久配置静态路由
以上的命令设置路由,重启network服务或系统后即会失效,为了能够每次重启都能够自动写入路由信息,需要编写配置文件:
vi /etc/sysconfig/network-scripts/route-ens34
---创建编辑网卡的路由配置文件,写入
192.168.30.0/24 via 192.168.20.2 dev ens34
则每次重启network服务或重启系统后,自动添加静态路由
重启后可以使用ip route 查看得到。
12.3 动态路由
12.3.1 动态路由协议
上一节介绍了静态路由的配置,现在我们来介绍一下动态路由。说到动态路由,其实是让路由器间自动运行路由协议,相互学习,建立完整路由表。这种动态路由的方案,比较适合于网络较为复杂,且网络环境会经常变化的局域网内。当路由所连接的网段发生变化时,可以快速更新,而静态路由只能等管理员手动变更路由才能正常通信。通过路由协议,相互学习,建立路由表的过程,专业内称为路由收敛。
动态路由主要有一下几种协议:
距离矢量协议:路由选择依据:跳数,如:rip,周期性更新。
链路状态协议:路由选择依据:开销(带宽的反比),如:ospf,触发更新。
混合型协议:综合考虑带宽、延时、负载大小、可靠性、最大传输单元大小等多个参数,评测出最佳路径,如:IGRP,思科专有协议,只思科设备支持。
前两种功能的协议,相比较来说,距离矢量协议收敛较慢,如rip协议是每30秒更新一次,那就说明如果网络距离较远,间隔的路由器较多,则从一端更新到另一端的路由器,需要学习多个30s才能完成。而链路状态协议,如ospf,会快速集中化、统一化学习,所以收敛迅速,适合于大中型局域网,且采用触发更新,即即当网络发生变化时,才再次做统一化学习。具体原理,是属于网络工程师的技术范畴,本章内不做介绍。
本节内,我们只演示rip协议的配置过程,这也只是模拟而已,真正网络中还是使用企业级路由器完成的,大家还是以了解原理为主。
12.3.2 rip协议配置
首先介绍一下rip协议的特性:
路由表30s更新,即路由器间交换路由表,收敛速度较慢,适合于小型局域网。
v1版 广播通信,有类协议(严格遵守ipABC三类的划分,不支持VLSM、CIDR)。
v2版 广、组播通信,组播ip:224.0.0.9 ,无类协议(不遵守ABC三类ip的划分,支持VLSM、CIDR)。
再来介绍一下配置方式:针对动态路由,CentOS中自带了一个思科设备的模拟器,我们可以安装该模拟器后,运行之,并在其内部使用思科命令配置路由协议。PS:我们仍沿用之前实验环境做演示。
具体操作命令如下:
路由器R1配置过程:
yum -y install quagga ---安装思科模拟器
cp/usr/share/doc/quagga-XXXX/ripd.conf.sample /etc/quagga/ripd.conf ---复制事例文件为rip协议配置文件,这里的XXX表示版本,读者可自行<tab>出来
systemctl restart zebra ---quagga软件对应的服务是 zebra
systemctl restart ripd
systemctl enable zebra
systemctl enable ripd
iptables –F ---关闭防火墙
setenforce 0 ---关闭selinux
vtysh ---启动、进入思科模拟器
# show running ---查看当前思科设备的配置信息
# show ip route ---查看本设备路由表
# show interface ens33 ---查看网卡参数
# config terminal ---进入全局配置模式
(config)# router rip ---启用rip路由协议,进入协议配置界面,默认启动的是V1版
(config-router)# network192.168.10.0/24 ---公告自己的直连网段,便于相互学习
(config-router)# network 192.168.20.0/24
(config-router)# version 2 ---转为V2版
(config-router)# exit
# show ip route ---查看路由表,可见学习信息
# exit ---退出模拟器
对端R2路由做相应配置即可。
R1、R2都配置好rip协议后,即可查看路由表了:
图中以R开头的行即是学习到的路由信息,可以在主机A上ping主机B做验证了。
注:在思科设备中,操作界面分为三个基本级别:用户模式、特权模式、全局配置模式。但在Linux的模拟器中,登录后是直接进入的特权模式,所以显示的是#的提示符。另外,思科设备中,不同的命令会限制在不同模式下,如:show查看类的命令一般只能在特权模式下使用,请大家做实验时一定注意。
12.4 路由通信总结
关于路由,我们在之前已经总结过两条要点的,下面继续来做总结。
首先我们来思考一个问题,若一台主机有多个网卡,连接不同的子网,各自连接到各自的网关路由器上,那么网关应该如何配置呢?可能很多人会说,各自配置网关就好了,其实事实并不是这样的,多块网卡,都配置网关的话,只会有一个生效,不可能同时生效的,大家可以看一下如下设置:
如上图:我们关闭路由器R1的动态路由,然后配置两块网卡的网关,ip route查询是可见的,但是当我们ping30.2时发现是不通的,说明正确的那块网卡网关并没有生效,也就证明只能有一个网卡生效。
所以总结如下:
一台主机,允许有多IP、多网关的情况存在,默认以可通信可用的ip、网关生效
若多IP、多网关都可用时,随机启用一个为准,另一个失效。即一台主机只能有一个网关有效
12.5 双线接入解决方案
我们在日常中,经常会听说有的服务器双线接入,或某局域网双线接入。我们最常接触的就是某游戏的服务器是双线接入的。这里的双线接入指的是网通、电信网络同时接入,那么这样的服务器是如何连接并配置的呢?
我们先来看一下连接图 :
如图,假设某服务器有两块网卡,分别连接网通、电信的网络,一块网卡连接的网通路由器网关是59.1.1.1,网卡分配到的ip是59.1.1.2;另一块网卡连接的电信路由器网关是81.1.1.1,网卡分配到的ip是81.1.1.2。那么为了实现双线通信(即网通客户使用网通线响应,电信客户使用电信线响应),因为每台主机只能有一个网卡生效,所以我们设置第一块网卡以网通路由59.1.1.2作为网关,作为主线路,另一块网卡不设置网关。则当前所有客户数据都会走网通线路。再收集电信网络的网段(一般网络服务商会购买一系列的网段为客户提供ip,假设是81.0.0.0、202.0.0.0、219.0.0.0等,可以电话联系客服已获得所有ip段),则我们可以把电信的网段以静态网络路由的形式加入到路由表中,如:
route add -net 81.0.0.0/8 gw 81.1.1.1
route add -net 202.0.0.0/8 gw 81.1.1.1
route add -net 219.0.0.0/8 gw 81.1.1.1
则按照路由表工作原理,网络路由优先级高于默认路由,所以当有电信客户访问时,服务器会走电信线路给与回复,这就完成了双线通信的分离。
注:这样设置有时也会有错误通信,那是因为电信的ip段未能设置完整,可以使用traceroute命令探测一下所有路径,查看是否都是电信网络的,如不是,则需要再次通过客服确认后,增加到静态路由中。
同理,若是双线接入的局域网,可以把这种操作设置到局域网总路由器上即可。
总结如下:
双线接入的Server或路由器,选择一条默认线路做为网关设置到相连的网卡上,其他网卡不设网关。查询到另一线路所有的ip段,以静态网络路由的形式加入到路由表中,指定好通信线路即可。