前言

这一切的一切,要从10月18日那天说起(到今天刚好一个月了)。要说的很多,我就简单说一下。
那天,公司很多人上网有问题,一早上忙忙碌碌排查问题。无法访问网站,文件发不出去,网络卡顿,等等等等,但是更多人是在反馈微信图片发不出去。接着等到开完会之后,和群友聊了一下才知道,原来微信服务器崩了->【“微信崩了”上热搜:大量用户反映无法收发图片和文件,腾讯回应】。等到中午的时候,陆陆续续恢复了,我以为事情就这么结束了,只是我们这些网管运维背了个锅。殊不知这一切只是开始。

接着后面,公司的网络天天都出现访问网站DNS异常,偶尔会断网,但是基本上都是因为DNS有问题,于是我就不断改DNS,但是直到本文的两周前,改了好几个DNS都没用,甚至自己本地改DNS也没用;接着我又去重新配置广域网,重启路由器交换机,都没解决这个问题,于是就有点开始怀疑是不是运营商的问题。

找了两次运营商,第一次刷新了数据,好了几分钟,第二次直接喊上门排查了,但是在喊上来之前,运营商都没说有什么问题。这中间我也对公司路由、交换机进行了配置和检查,都有网络不通缓慢的问题。于是判断是运营商。但后来和运营商的工程师进行了一系列检查之后,才发现,原来是路由器的问题。于是公司最后把路由(华为企业路由)拿去修了,用一个普通路由临时顶着。虽然后面也陆陆续续出现一些问题(后面分析会继续说),但是也算是能正常用了。

所以其实本来公司的网络就有点问题了,直到那天,直接爆发。就这个事情忙乎了一个月,虽然不多但也算有点收获,那么就写这个记录,然后后面用来做一个参考和教训。
【本记录采用本人随心所欲的方式写,非技术指导,非专业】

分析

组网环境

公司的组网环境,一言难尽。
简单来说就是一台光猫桥接入网,主路由拨号,然后下层一堆乱七八糟的交换机和无线路由器;
一个vlan0,路由器除了连接光猫的接口,其他都分配进了Vlan0(所以理所当然就只有一个vlanif),所有设备接入vlanif使用192.168.1.x网段,DHCP协议动态分配IP,就是说硬生生把一个企业路由变成了傻瓜路由。
交换机全部是二层交换机,其中一台网管型二层交换和路由器放在一起,其他傻瓜交换机通过网线接入网管型二层交换机,全部开启stp。然后无线路由也是采用桥接方式,使用同一个网段(有一台测试用的是独立网段)。
【后面内容没有特殊说明,均使用该组网环境展示案例】

可能会遇到的问题

这种组网方式很低级,和家用没什么区别,曾经在某个学校(小学)做运维的时候,学校的校园网(内网)也是这样,全部用10开头的A类IP做内网设备的IP,然后所有设备(包括教师电脑,教学设备,学校需要联网的其他设备【除了监控以外】)都是同一个IP段。所以经常网络一出问题,就会崩一大片。这里做个人分析,基本上都是我个人遇到的问题。

1. 会容易出现大型网络混乱

结合目前公司网络,分析一下下面遇到的情况:

案例A:公司某员工自己有个小型路由,通过LAN口有线接入公司的网管型二层交换机有线连接公司网络,联网方式是:动态获取IP,设置了DHCP服务器,同时DHCP服务器分配的IP网段和网关的网段一样。

这里涉及到一个问题:DHCP的工作原理。

DHCP的工作原理:就是“先到先得”。服务端等待DHCP服务完全启动后,会接收到来自客户端的DHCP Discover包,然后发送DHCP Offer包,接着客户端会发送DHCP Request包请求与之连接,最后服务端会发送DHCP ACK包完全确认。
而路由器的DHCP Server功能相当于你在LAN口接了一个支持DHCP分配的服务器

这个过程,如果主路由因启动时间差或者其他异常,发生报文无法及时发送或者接收的情况,客户端就会被其他服务端抢走(这就是弱肉强食吧,跟销售一样),导致最后客户端连接的是其他开启了DHCP服务的路由,而不是主路由。

路由器的DHCP Server功能相当于你在LAN口接了一个支持DHCP分配的服务器

这种情况会造成什么问题:根据DHCP的工作原理,由于原本提供IP的DHCP服务器故障(主路由),且这个小型路由启用了DHCP服务器、内网客户端设备全部采用DHCP获取IP联网,那么这个小型路由的DHCP服务器就会抢先给内网客户端设备提供IP,客户端设备就会连接上以小型路由提供的网关信息作为网关的局域网。同时这个小型路由原来是动态获取主路由分配的IP,然后通过主路由连接外网,结果由于主路由故障,小型路由无法连接上原来的主路由,所以连接外网的通道被切断,而小型路由建立连接的设备,也自然无法连接外网。

接着,如果主路由恢复之后,能访问外网吗?答案是能上,但又不完全能上。因为主路由恢复之后,小型路由组成的网络已经暂时稳定了,所以不会那么容易变动,其次会有网络冲突。这时候,小型路由和主路由已经没有从属关系了,两者是对等关系。默认情况下,普通路由都会自动学习并更新路由表(动态路由),因此假如小型路由给下面的客户端设备分配了和主路由默认IP地址一样的地址,那么小型路由的路由表就会出现错误,这时候究竟是跳到客户端设备还是跳到主路由,导致两个路由之间不能正常互相通信,所以小型路由无法到达拨号的主路由,访问外网。那为什么能上呢?只要设备使用的是静态IP且网关是已经拨号的主路由,那么就能正常联网,但同理,IP有冲突的话,也是无法上网。

所以最后总结一下案例的问题:

  1. 内网设备没有做好规划安装导致网络出现混乱崩溃
  2. 内网网络拓扑异常导致IP地址冲突使其无法正常访问网络

案例B:【非本文公司组网环境】某学校的校园网,监控、校园网交换机混用,通过IP地址划分网段区分校园网和监控,教师办公室用AP上网,课室网口直连楼层FD,校园网IP地址网段是10开头的A类地址,DHCP分配IP地址,无网络划分,监控使用静态IP地址。无线网络管理使用不规范。

这种情况会造成什么问题:监控和校园网混用交换机,一条线路上面的设备,如果没有使用指定静态IP,会自动获取到校园网的IP地址上网,也可能会出现像案例A那样,如果有个路由器LAN口接入网络,开启DHCP,并且网段和监控一致,甚至会影响整个监控网络,甚至是有线校园网的正常运行。无线网络管理使用不规范(例如无线路由使用LAN口接入校园网,路由器的SSID和校园网一致),容易导致像案例A那样的问题。整体网络安全度低,稍有不慎一个病毒或者错误就能影响一片网络的运行,内网容易入侵。

实际上一般情况下监控和校园网不能混用,这样会大大降低监控系统的安全性和可管理性。同时IP尽可能要按实际情况划分,还要划分不同的Vlan。因为像一个学校,网络比较复杂,如果IP地址大一统的话,很容易在出现问题的时候瘫痪一片。甚至如果有设备修改ip投毒,直接能把监控设备也瘫痪。还会出现案例A那样的一些问题。

最后总结一下案例的问题:

  1. 内网组网没有做好规划
  2. 内网安全性差
  3. 内网容易因小问题瘫痪

2. 网络使用无法很好的管理

这个问题,实际上最近公司就遇到这样的事情,因为公司网络经常有些大大小小的问题,导致无法精准定位是哪个设备在占用带宽,亦或者是哪个端口线路出现故障。不好去查这个,于是就很容易出现问题不好解决的障碍。

案例A:公司的交换机有好几个,有一台主要的网管型二层,下面都是些杂乱的普通交换机,全部接入主交换机的接口,有些设备连接到普通交换机,有些设备直接接入主交换机,交换机没有划分vlan。

这种情况会造成什么问题:内网资源占用过大,如果网管型二层交换机中发现占用大的接口连接的是子交换机,可能会出现不能合理定位具体设备的情况,同时因为没有划分vlan,导致公司网络一旦出现问题,只要接入该vlan的所有设备都会出现问题,不好定位是哪个部门造成的故障。

一般来说,公司有一定人数和使用设备,需要优先按照各部门划分vlan,并且分配好交换机和路由器的使用接口,否则在管理网络的时候不能正确定位网络异常问题的来源。甚至如果有病毒或者是内网大量占用,直接整个网络都给搞瘫痪,所以在端口使用上一定要分仔细。

案例B:结合问题1的案例A和本问题的案例A,每个设备都是使用DHCP分配IP,IP地址无法确定目前使用的用户的情况,没有MAC地址与员工对照信息表表,没有接口分配表,没有类似AD域的管理。

这种情况会造成什么问题:一旦出现IP冲突的问题,无法搜索到该冲突IP的来源,无法精确定位该冲突IP的来源,即使能通过后台信息看到IP、MAC和端口,也无法确定所属用户,因为没有类似于AD域的管理,无法精确知道问题的机子是哪个。

像一些大公司,都会使用AD域来确定该设备和该用户,在AD域后台能看到所有信息,而当前网络和公司环境并没有AD域管理,所以很多信息无法收集,一旦出现问题,就不好定位问题来源,需要花时间排查。

解决方案

【本解决方案直接把上诉所有问题都融入进去了,需要完全阅读】
对于问题1的案例A而言,解决这些问题最好的方法,就是把整个网络组网推到重做,重新分配网线接口,重头开始划分vlan,分配IP地址,所有网络设备信息做好后台登记,预留用于后面维护的空间,规范整体网络的使用。

但显然,现实是残酷的,首先,重新分配网线接口工程量就很大,很多标签需要重新打,很多网线要重新整理拉,这样会增加工作量,而且会影响公司日常网络,其次,由于本身接口就很乱,有些接口接了其他交换机,其他交换机下面又接了不同部门的机子,那么就不能按照最常见的方法通过部门划分vlan了。所以上面说的,一般都是一个不小的工程,除非是大整改或者是刚开始做的时候去做。如果本来内网的物理层线路已经定下来了,那就直接从网络配置入手。

首先,先对当前所有设备信息进行一个登记,如果有AD域的公司,可以直接通过AD域后台,导出员工和主机信息,如果公司没有AD域,那么就只能通过一个比较固定的信息绑定设备和员工了,所以比较推荐直接使用MAC地址标识。

可以先通过网络设备后台,提取所有当前已经连接的设备的mac地址,也可以通过某些软件查阅内网的IP,接着可以查阅公司的一些公司管理系统等工具获得的员工信息和MAC地址,实在不行只能一个个去对。目的是先掌握员工和设备的使用情况,并做好一份表格,用于后期对照。

接着对内网的IP分配做出修改。如果vlan和物理网线能重新分配,就可以按照不同部门分配不同的vlan/vlanif,然后设置不同的网段,让该接口的机器自动获取该vlanif动态分配的IP。如果无法重新分配,那就尽可能手动,关闭公司的动态IP协议,然后所有员工使用手工指定的静态IP,vlanif下添加多个IP段(仅可在企业级路由下),手动给各个员工做IP和MAC地址绑定,按部门分配不同的IP段,设置绑定,禁止员工私自修改IP地址。最后完善原先的员工设备登记表。

等IP都静态下来之后,基本上能杜绝IP冲突的问题,同时基本上也能解决问题2难管理的问题。因为都是手动设置的,一般情况下不会冲突,而且MAC-IP绑定之后,用户也无法私自更改IP地址,这样就能完全避免一些网络的问题,同时还有一份员工设备登记表,后续有设备出现带宽占用的问题或者其他网络异常问题,也能够直接找到问题设备解决了。

但实际这些方法都是下下策,避免后续问题最好的方法,就是一开始就需要做好一些网络的分配,而且做好管理。简单来说,就是一定要做好员工信息和设备的绑定,方便日后出现问题的时候有信息可寻,而不是稀里糊涂,只能看着某个设备影响企业网络却没有办法干掉它。

那么对于问题1的案例B,其实解决方法就是用更现实的方案,例如按楼层、楼宇号等方法,重新对整体网络划分区域网段,和案例A差不多,但是不能用静态IP,或者也有一些方案,像深信服一些功能一样,通过账号登录+后台设置允许的MAC地址入网,只要通过MAC认证和登录认证,才能上网,然后再通过后台看如何做IP划分。这种方法其实像案例A那样也可以使用,不过工程量会比较大,对于一些普通几十号人的小型企业也不太适合。对于大型企业而言,用这些成熟的方案也是个不错的选择。

当然,上面的方法也不是最优解,这知识我根据我的实际情况想出来的一个方案,可能根据不同的实际情况会有不同的最优解,这里先做一个记录,以后有最优解的话再记录。

通用问题排查流程

这里简单说一下,一般公司网络出现异常,最简单的排查方法是怎样的。
大概流程是:从下到上,从软到硬。
本地系统网络情况->本地网线连接情况->交换机网络情况->路由的网络情况->汇总网线连接情况->光猫运行情况->运营商网络

  1. 如果是个人网络问题,先看看是什么问题,如果只是单纯的网络访问,那么先检查一下对方联网的设备,看看系统网卡是否正常、网络配置是否正常,检查IP地址(是否获取失败或者是IP冲突)、网关地址、子网掩码、DNS,检查浏览器网络报错情况等。同时检查一下是否个人有自己的网关设备,有可能需要检查一下网关是否有问题。如果查到是物理断网的问题,继续看下面。
  2. 如果是大面积出现问题,同样需要看看是什么问题,如果只是单纯的网络访问,那么可以去交换机后台查看是不是有内网占用等,还要查看一下路由设备是不是有IP冲突,检查问题范围内是否有其他设备影响到该范围设备的正常联网。查看交换机和路由器是否有配置错误的地方。检查路由和交换机设备的日志,查看是否有办公设备和网络设备有冲突。如果查到是物理断网的问题,继续看下面。
  3. 如果是物理断网,个人网络的话,那么就要检查连接电脑的网线是否有问题,如果是大面积问题,需要查看问题范围里面的设备所连接的交换机是否有问题。同时检查连接的交换机、路由器是否接口或设备故障、断电。如有必要,可以对设备进行重启或者重置。
  4. 如果内网正常,广域网异常,需要先检查路由器的拨号情况,然后查看光猫的运行情况,检查光猫到路由器的网络是否正常,可以拨打运营商电话询问网络是否异常。
  5. 如果直连外网正常,局域网异常,需要先检查路由器、交换机的服务是否正常运行,检查是否有错误的局域网配置,其次检查线路是否异常,如有必要,可以对设备进行重启或者重置。
  6. 检查路由器和交换机的时候(交换机是网管交换机),需要进入后台,检查接口是否运行正常,检查一下出入口网络宽带是否高占用状态。检查联网状态的时候,需要分别接入两个设备的接口测试(需要根据实际情况配置本地电脑的网络信息)。
  7. 由于有些时候,上游断开连接,电脑设备的网卡不一定处于断开状态,所以除了本地连接断开之外,其他物理线路异常不要参考网卡的物理连接情况。
  8. 如果查看到IP是169.254开头的IP,那么基本上断定是上游IP分配出错了,有可能是上游的DHCP服务器崩溃或者是断开了连接。169.254开头的是链路本地地址。

本流程不一定是专业完整的流程,以后有发现新的可以增加的内容再增加。

总结

这篇文章只是自己的一个工作总结,采用本人随心所欲的方式写,写的很累,写了两天,非技术指导非专业,不成熟或者是有问题的地方,以后会更正和补充,这是#1,未来还会有#2,#3,这也说明了我未来会继续向这个方向发展。后面再慢慢看吧。