单位的短信平台建设得比较早,租用运营商的专线,使用的短信机是双网卡,一张网卡连接运营商的网络,另一张网卡连接单位内部网络。应用服务器调用短信机的接口信息,通过专线把短信发送给运营商的短信网关,最终实现把短信转发给用户的手机,网络结构如图1所示。
图1 网络拓扑结构
短信机其实就是一台厂家定制的服务器,使用的是Linux操作系统,厂家在系统上面装了一个自己开发的软件。因为短信机是比较早期的产品,最近使用起来经常出现问题,导致短信发不出去。联系了厂家的工程师,通过更换一台新的设备来解决这个问题。
把新的短信机装上机柜配置好IP地址之后,Ping不到运营商的短信网关,短信发不出去。排查一下网络,发现能够Ping通运营商对端的地址172.16.1.6/30,就是通不了短信网关的地址10.16.13.143。IP地址配置如图2所示。
图2 IP地址配置
再次检查短信机的网络配置,因为笔者对Linux操作系统不是很了解,只好用处理路由器网络故障的方法去排查,网络已经连通但有网段地址不可达,必须先查看路由表。Linux系统里面查看路由表就是用简单的route命令,通过查看可以发现服务器里面有三条路由条目,分别是172.16.1.4/30、192.168.100.0/24这 两个网段,缺省网关是指向192.168.100.254,也就是指到eth0这一块网卡出去了(如图3)。
综合分析可知,运营商的短信网关10.16.13.143这个IP匹配了缺省路由,访问请求经过eth0这一块网卡把数据包送出去了当然是没有办法去到目的地址。解决的办法也很简单,就是在Linux下手动添加一条静态路由指向eth1网卡。两种配置方法如下所示:
# route add –host 10.16.13.143 dev eth0 (把主机地址指定出口的网卡)
# route add –host 10.16.13.143 gw 172.16.1.6(把主机地址指定下一条地址)
配置完成以后,经过测试,发现短信网关10.16.13.143已经可以Ping通了,但是Linux的系统重启之后路由就会自动清空,查看配置文档添加永久路由的方法,是在/etc/rc.local文件里添加:
或者是
图3 查看路由表
图4 文本编辑框
图5 查看路由表
在这里,需要插上一段关于vi文本编辑器的使用介绍,刚接触这个东西确实觉得比较麻烦,其实复杂的东西不需要死记硬背,记住几个简单的命令就可以了。vi一共有三种工作方式:命令方式、插入方式和行方式。以上面添加永久路由的为例,我们要对/etc/rc.local这一个文件进行修改,往它里面写入一些路由条目。只要我们输入vi /etc/rc.local就能够进入如图4所示的文本编辑框。按一下Insert键,就可以对文本的内容进行增加删除。
修改完毕之后按一下Esc键切换到命令方式,最后再按一下冒号键切换到行方式,输入wq表示退出并保存,输入q!强制退出不保存。
前面介绍的是Linux系统下面的添加静态路由的办法,Windows系统也是类似。查看路由表使用的命令是route print,添加永久静态路由的命令是route -p,以上面短信网关的添加路由为例子,添加永久静态路由命令为:
添加完成之后,再次再看路由表,可以发现在Persistent Routes下面增加了一条新的路由条路(如图5)。
类似于这种在服务器里面有多张网卡的设备,我们在遇到故障的时候应把它当做是一台路由器来处理。故障的原因一类是因为路由丢失,像上面所说的更换了服务器后没有添加静态路由;另一类是添加路由写错,把出接口写错了别的网卡或者是匹配了缺省路由。这些通过查看服务器的路由表很快就能定位出故障点来。
最后从网络安全方面谈一下多业务网卡应用服务器,从严格意义上来说,这是属于把网络贯通的方式。服务器本身是一个计算节点或者是网络终点,添加多张网卡配合静态路由的方式把多个网段贯通,对于网络安全方面存在着一定的隐患,本来划分不同的网段就是为了实现隔离,因此在使用这种方式的时候应当谨慎。