欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

127 从基础开始的学习网络--大中型医院的网络规划

最编程 2024-04-29 07:36:15
...

场景的分析

此可见医院的网络系统建设主要应满足以下几个方面的需求:
带宽性能的需求,医院网络已经发展成为一个多业务承载平台。不仅要继续承载办公自动化,Web浏览等简单的数据业务,还要承载涉及医院运营的各种业务应用系统数据,以及带宽和时延都要求很高的 IP 电话、视频会议等多媒体业务。因此,数据流量将大大增加,尤其是对核心网络的数据交换能力提出了前所未有的要求,核心层及骨干层必须具有万兆位级带宽和处理性能,才能构筑一个畅通无阻的”高品质”大型医院网,从而适应网络规模扩大,业务量日益增长的需要。所以要建立高速骨干网络,保证各楼宇、各网段之间线速无阻塞的数据交换;
应用服务的需求,当前的网络已经发展成为”以应用为中心”的信息基础平台,网络管理能力的要求已经上升到了业务层次,医院日常业务的处理,如:门诊及住院管理、药品管理、电子病案管理等;良好的兼容性,保障医院各管理系统软件的正常运行
稳定可靠的需求,设备的可靠性设计:医院每天都有庞大的数据量需要传输,难免在某些端口或者设备上出现故障,所以网络的可靠性不仅要考察网络设备是否实现了关键部件的冗余备份,还要从网络设备整体设计架构、处理引擎种类等多方面去考察。业务的可靠性设计:网络设备在故障倒换过程中,是否对业务的正常运行有影响。链路的可靠性设计:以太网的链路安全来自于多路径选择,所以在医院网络建设时,要考虑网络设备是否能够提供有效的链路自愈手段,以及快速重路由协议的支持;
网络服务质量的需求,单纯的提高带宽并不能够有效地保障数据交换的畅通无阻,所以今天的大型医院网络建设必须要考虑到网络应能够智能识别应用事件的紧急和重要程度,如视频、音频、数据流;
灵活性的需求,医院的服务会逐步的趋于完善,未来可能有更多的科室或者部门的加入进来,因此,需要能够灵活的扩充网络容量以及提升网络服务,同时还可以实现多种方式的网络接入,以便适应未来对网络规模的扩大,以及接入模式变化的需求;
网络安全的需求,医院的内部信息主要是以病人的病例、处方和医嘱等信息为主,而医院是有义务保障病人的信息安全,保证病人的病例、处方和医嘱信息不被没有必要的部门或人员查看,同时也要保证信息不能外传。因此,如何保证整个系统的保密性、完整性、可用性、可审核性也是医院信息系统安全性的一部分,对网络病毒、DHCP攻击,ARP攻击甚至是对于黑客的DDoS攻击等的防御,同时能够完成一些基本的对于网络的管理和一些对于网络的实时监控功能。

简单来说就是要安全、可靠、灵活、冗余。
随便去一个省级或者小一点的医院,只有一个感受:人满为患,人山人海,看不见尽头的排队。
由此便知道医院的业务有多么的繁重了,这还只是我们看到了,我们没有看到的视频会议,IP 电话,X 光片、CT 等数据的传输存储等等。

所以根据这几样的需求我们网络在设计时需要考虑到:
带宽性能:使用千兆,设置在骨干区域使用万兆的线路与端口;
稳定可靠:每天大数据量的传输对于端口的压力很大,所以网络的冗余设计、负载均衡不可少;
灵活易扩展:医院的规模随着需求在不断的扩展着,所以此时的设计必须模块化,分层次,否则在未来扩展的时候会十分的混乱;
网络安全:医院每天交易的金额,每天传输的病人数据都是非常私密、非常敏感,很容易招来不法分子的窥视,所以安全十分的重要,如防火墙、Zone Based Firewall、ACL 等等都十分重要(本套实验还未讲到安全部分所以暂时不做过多的要求)

拓扑图的设计

从上述的需求,以及真实的医院结构参照,我们决定使用经典的三层结构网络模型
核心层
接入层
汇聚层

同时从医院的结构布局来看,大致分为 教育培训楼、科研楼、后勤大楼、行政大楼、第一、二、三住院大楼、医技楼、门诊大楼。由此我们做出了这样的拓扑设计(这样的设计是根据我们现有的知识点与能力来设计,例如多园归路、Zone based firewall 等等都没有接触到便不会考虑在内):


image.png

拓扑图中各个设备的对应关系如下:


image.png

因为医院实在是太大了,我们只是部分实现。
首先从宏观的结构来看,我们对每栋大楼做出这样的设计,如住院大楼与门诊大楼这些都是独立的模块,功能类似,而同层次结构的医技大楼、行政大楼都可以这样设计扩展下去,最后用同样的方法连上核心层的两台核心交换机即可。

我们细看其中的一个模块:


image.png

首先汇聚层的 DS1 与 DS2 两台设备,这样下属的设备与外通信时不会出现单点故障的问题,同时两台设备的存在可以做到负载均衡,减小一台设备因为负载过高而出现故障的几率,同时设备之间使用链路捆绑以备防范某个端口出现故障的情况。
该层会实现 vlan 的划分,vtp 的 vlan 管理,mstp 的链路放环与负载均衡, etherchannel 的带宽冗余,同时实现 vrrp 的网关冗余,DHCP 的地址管理,与上层的 OSPF 连接。
接下来的 AS1、2 为网络中继,避免汇聚层接入过多的端口,而该层只用配置 vtp 即可。
PC1 与 PC2 用于模拟终端接入设备,只需配置成 DHCP 的地址获取方式即可。
这便是每个独立模块的功能,其他的模块除了 vlan 划分的不同,IP 地址分配的不同其余的基本上完全相同。
所以这样我们可以很灵活的去扩展各个部分,每个模块,一个模块的改动并不会牵扯到其他模块的使用。
往上看便是核心层,所有的数据包都会通过该层来转发,所以该层只需要安心转发数据包即可,不能分配过多的任务给他,这一层只用实现 OSPF 即可。

继续往上看便是出口路由,出口路由决定着我们与外网的通信,在该层可以做
多园归路(也就是我们可以从两个运营商或者一个运营商申请多个公网地址,做到符合一定条件的出一个口,符合另外条件的走另外一个出口),当然我们还没有学习到所以不实现,
Zone Based Firewall,也就是路由实现的防火墙,来抵挡外部的攻击,当然也可以之间连接防火墙设备,只是价格较为昂贵。
NAT 地址转换,医院中有这么多的设备不可能每个都配置一个公网 IP,所以需要 NAT,在所有内网地址将要访问公网时将其转换为我们从 ISP 申请到的 IP 地址,这样才能使得所有设备访问 Internet。(这部分也未来得及讲)
帧中继或者 VPN 或者二者同时存在,这样能够将该园区网路与其他的分院的网络连接起来,或者是出差办公的人员可以访问内网资源。

而左边的 DS5 部分与独立的模块类似,但是不用做 vlan 的划分,因为该部分用于连接服务器,如 OA 平台,Web 访问服务器等等的使用,当然也可以选择使用公有云了。
右边的 Client 用于模拟在外地需要访问内网的站点。
看着这样复杂的网络这样梳理下来其实并不会太困难了,使用的都是我们所学习过的知识点。

逐步实现

梳理完拓扑结构,每层会实现怎样的功能,我们便可来着手实现了。
实现的第一部便是做好网络地址的规划与划分,不划分子网的网络会混乱,管理不便的。我们根据不同的科室、不同的部门做了这样的地址划分:


image.png

还记得如何划分 vlan,如何划分子网吗?此处每个 vlan 可以容纳 30 台主机,因为一个可是差不多也就 20 多个人,所以一个 vlan 划分 30 台主机。每个 vlan 的头几个地址作为网关使用,或者设备之间的连接使用。
我了拓扑图有了功能的描述,我们便先定一个小目标,实现一个模块:

1.DS1 的功能实现:

#汇聚层第一台

##第一个功能 Ethernet channel

DS1(config)#int range e0/0-1
DS1(config-if-range)#sh
DS1(config-if-range)#switch tr en do
DS1(config-if-range)#swit mode tr
DS1(config-if-range)#channel-group 1 mode on
DS1(config-if-range)#ex
DS1(config)#int port-channel 1
DS1(config-if)#switch tr en do
DS1(config-if)#swit mode tr
DS1(config-if)#ex
DS1(config)#int range e0/0-1
DS1(config-if-range)#no sh
DS1(config-if-range)#ex
DS1(config)#no ip cef
DS1(config)#int range e0/2-3
DS1(config-if-range)#switchport trunk en do
DS1(config-if-range)#switchport mode trunk
DS1(config-if-range)#no sh
DS1(config-if-range)#exit

##验证该功能是否实现 show etherchannel summary

##第二个功能 vtp

DS1(config)#vtp mode server
DS1(config)#vtp pruning
DS1(config)#vtp domain menzhen

##验证该功能的实现 show vtp status

##第三个划分vlan

##这是一个体力活,没有思路而言,只实现部分

DS1(config)#vlan 2
DS1(config-vlan)#name guke
DS1(config-vlan)#exit
DS1(config)#vlan 3
DS1(config-vlan)#name neike
DS1(config-vlan)#exit
DS1(config)#vlan 4
DS1(config-vlan)#name waike
DS1(config-vlan)#exit
DS1(config)#vlan 5
DS1(config-vlan)#name pifu
DS1(config-vlan)#exit
DS1(config)#vlan 6
DS1(config-vlan)#name zhongyi
DS1(config-vlan)#exit
DS1(config)#vlan 7
DS1(config-vlan)#name yanke
DS1(config-vlan)#exit
DS1(config)#vlan 8
DS1(config-vlan)#name fangshe
DS1(config-vlan)#exit

##第四打开端口 trunk 模式

DS1(config)#int range e0/2-3
DS1(config-if-range)#switchport trunk en do
DS1(config-if-range)#switchport mode trunk
DS1(config-if-range)#no sh
DS1(config-if-range)#exit

##第五开启DHCP以及地址的排除

#每个科室都创建一个地址池,每个地址池的头两个作为两组 VRRP 的虚拟网关,一个作为 SVI 接口地址 

DS1(config)#service dhcp
DS1(config)#ip dhcp pool guke
DS1(dhcp-config)#network 172.16.0.32 255.255.255.224
DS1(dhcp-config)#default-router 172.16.0.33 255.255.255.224
DS1(dhcp-config)#exit
DS1(config)#int vlan 2
DS1(config-if)#ip address 172.16.0.34 255.255.255.224
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#
DS1(config)#ip dhcp pool neike
DS1(dhcp-config)#network 172.16.0.64 255.255.255.224
DS1(dhcp-config)#default-router 172.16.0.65 255.255.255.224
DS1(dhcp-config)#exit
DS1(config)#int vlan 3
DS1(config-if)#ip address 172.16.0.66 255.255.255.224
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#
DS1(config)#ip dhcp pool waike
DS1(dhcp-config)#network 172.16.0.96 255.255.255.224
DS1(dhcp-config)#default-router 172.16.0.97 255.255.255.224
DS1(dhcp-config)#exit
DS1(config)#int vlan 4
DS1(config-if)#ip address 172.16.0.98 255.255.255.224
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#
DS1(config)#ip dhcp pool pifu
DS1(dhcp-config)#network 172.16.0.128 255.255.255.224
DS1(dhcp-config)#default-router 172.16.0.129 255.255.255.224
DS1(dhcp-config)#exit
DS1(config)#int vlan 5
DS1(config-if)#ip address 172.16.0.130 255.255.255.224
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#
DS1(config)#ip dhcp pool zhongyi
DS1(dhcp-config)#network 172.16.0.160 255.255.255.224
DS1(dhcp-config)#default-router 172.16.0.161 255.255.255.224
DS1(dhcp-config)#exit
DS1(config)#int vlan 6
DS1(config-if)#ip address 172.16.0.162 255.255.255.224
DS1(config-if)#no sh
DS1(config-if)#exit

##很多地址都作为了网关的需要所以需要排除掉,以防地址冲突

DS1(config)#ip dhcp excluded-add 172.16.0.33
DS1(config)#ip dhcp excluded-add 172.16.0.34
DS1(config)#ip dhcp excluded-add 172.16.0.35
DS1(config)#ip dhcp excluded-add 172.16.0.65
DS1(config)#ip dhcp excluded-add 172.16.0.97
DS1(config)#ip dhcp excluded-add 172.16.0.129
DS1(config)#ip dhcp excluded-add 172.16.0.161
DS1(config)#ip dhcp excluded-add 172.16.0.193
DS1(config)#ip dhcp excluded-add 172.16.0.225
DS1(config)#
DS1(config)#ip dhcp excluded-add 172.16.0.66
DS1(config)#ip dhcp excluded-add 172.16.0.98
DS1(config)#ip dhcp excluded-add 172.16.0.130
DS1(config)#ip dhcp excluded-add 172.16.0.162
DS1(config)#ip dhcp excluded-add 172.16.0.194
DS1(config)#ip dhcp excluded-add 172.16.0.226
DS1(config)#
DS1(config)#ip dhcp excluded-add 172.16.0.67
DS1(config)#ip dhcp excluded-add 172.16.0.99
DS1(config)#ip dhcp excluded-add 172.16.0.131
DS1(config)#ip dhcp excluded-add 172.16.0.163
DS1(config)#ip dhcp excluded-add 172.16.0.195
DS1(config)#ip dhcp excluded-add 172.16.0.227
DS1(config)#

##第六 mstp的设置

##设置两个 mst 组管理两部分 vlan,1 组此设备为次根,2组此设备为主根,在 DS2 中反过来
##这样的灵活应用可以做到负载均衡的作用

DS1(config)#spanning-tree mode mst
DS1(config)#spanning-tree mst conf
DS1(config-mst)#name keshi
DS1(config-mst)#instance 1 vlan 2-4
DS1(config-mst)#instance 2 vlan 5-6
DS1(config-mst)#ex
DS1(config)#spanning-tree mst 1 priority 4096
DS1(config)#spanning-tree mst 2 priority 8192
DS1(config)#


##第七 vrrp的设置

## vrrp 也可以与 mstp 的做法类似,一个 vlan 两个组,一个此设备 Master,一个 DS2 为 Master

DS1(config)#int vlan 2
DS1(config-if)#vrrp 1 ip 172.16.0.33
DS1(config-if)#vrrp 1 priority 150
DS1(config-if)#vrrp 1 preempt
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#int vlan 3
DS1(config-if)#vrrp 2 ip 172.16.0.65
DS1(config-if)#vrrp 2 priority 150
DS1(config-if)#vrrp 2 preempt
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#int vlan 4
DS1(config-if)#vrrp 3 ip 172.16.0.97
DS1(config-if)#vrrp 3 priority 150
DS1(config-if)#vrrp 3 preempt
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#int vlan 5
DS1(config-if)#vrrp 4 ip 172.16.0.129
DS1(config-if)#vrrp 4 priority 150
DS1(config-if)#vrrp 4 preempt
DS1(config-if)#no sh
DS1(config-if)#exit
DS1(config)#int vlan 6
DS1(config-if)#vrrp 5 ip 172.16.0.161
DS1(config-if)#vrrp 5 priority 150
DS1(config-if)#vrrp 5 preempt
DS1(config-if)#no sh
DS1(config-if)#exit

如此我们便配置好了 DS1,然后我们便来配置 DS2,DS2 与 DS1 的功能相同,但是有一些细微的差别,例如上文所说的 mstp,vrrp 等

##汇聚层第2台
##第一个功能 Ethernet channel

DS2(config)#int range e0/0-1
DS2(config-if-range)#sh
DS2(config-if-range)#switch tr en do
DS2(config-if-range)#swit mode tr
DS2(config-if-range)#channel-group 1 mode on
DS2(config-if-range)#ex
DS2(config)#int port-channel 1
DS2(config-if)#switch tr en do
DS2(config-if)#swit mode tr
DS2(config-if)#ex
DS2(config)#int range e0/0-1
DS2(config-if-range)#no sh
DS2(config-if-range)#ex
DS2(config)#no ip cef
DS2(config)#int range e0/2-3
DS2(config-if-range)#switchport trunk en do
DS2(config-if-range)#switchport mode trunk
DS2(config-if-range)#no sh
DS2(config-if-range)#exit

##验证 show etherchannel summary

##第二个功能 vtp

DS2(config)#vtp mode server
DS2(config)#vtp pruning
DS2(config)#vtp domain menzhen

##第四打开端口trunk模式

DS2(config)#int range e0/2-3
DS2(config-if-range)#switchport trunk en do
DS2(config-if-range)#switchport mode trunk
DS2(config-if-range)#no sh
DS2(config-if-range)#exit


##第五定义各个vlan的第二个网关

DS2(config)#int vlan 2
DS2(config-if)#ip address 172.16.0.35 255.255.255.224
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 3
DS2(config-if)#ip address 172.16.0.67 255.255.255.224
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 4
DS2(config-if)#ip address 172.16.0.99 255.255.255.224
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 5
DS2(config-if)#ip address 172.16.0.131 255.255.255.224
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 6
DS2(config-if)#ip address 172.16.0.163 255.255.255.224
DS2(config-if)#no sh
DS2(config-if)#exit

##第六 mstp的设置

DS2(config)#spanning-tree mode mst
DS2(config)#spanning-tree mst conf
DS2(config-mst)#name keshi
DS2(config-mst)#instance 1 vlan 2-4
DS2(config-mst)#instance 2 vlan 5-6
DS2(config-mst)#ex
DS2(config)#spanning-tree mst 1 priority 8192
DS2(config)#spanning-tree mst 2 priority 4096

##第七 vrrp的设置

DS2(config)#int vlan 2
DS2(config-if)#vrrp 1 ip 172.16.0.33
DS2(config-if)#vrrp 1 priority 100
DS2(config-if)#vrrp 1 preempt
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 3
DS2(config-if)#vrrp 2 ip 172.16.0.65
DS2(config-if)#vrrp 2 priority 100
DS2(config-if)#vrrp 2 preempt
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 4
DS2(config-if)#vrrp 3 ip 172.16.0.97
DS2(config-if)#vrrp 3 priority 100
DS2(config-if)#vrrp 3 preempt
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 5
DS2(config-if)#vrrp 4 ip 172.16.0.129
DS2(config-if)#vrrp 4 priority 100
DS2(config-if)#vrrp 4 preempt
DS2(config-if)#no sh
DS2(config-if)#exit
DS2(config)#int vlan 6
DS2(config-if)#vrrp 5 ip 172.16.0.161
DS2(config-if)#vrrp 5 priority 100
DS2(config-if)#vrrp 5 preempt
DS2(config-if)#no sh
DS2(config-if)#exit

这样我们便配置好了 DS2 的所有功能,配置相应的功能之后大家记得验证哦。
这是 AS1 与 AS2 的配置:

##接入层第一台
##第一个功能开启vtp

AS1#conf t
AS1(config)#hostname AS1
AS1(config)#vtp mode client
AS1(config)#vtp pruning 
AS1(config)#vtp domain menzhen
AS1(config)#

##第二个功能以端口划分给vlan

AS1(config)#int range e0/2-3
AS1(config-if-range)#switch mode acc
AS1(config-if-range)#switch acc vlan 2
AS1(config-if-range)#no sh
AS1(config-if-range)#ex
AS1(config)#int e1/0
AS1(config-if)#switch mode acc
AS1(config-if)#switch acc vlan 3
AS1(config-if)#no sh
AS1(config-if)#ex
AS1(config)#

##第三 mstp的设置

AS1(config)#spanning-tree mode mst
AS1(config)#spanning-tree mst conf
AS1(config-mst)#name keshi
AS1(config-mst)#instance 1 vlan 2-4
AS1(config-mst)#instance 2 vlan 5-6
AS1(config-mst)#ex
AS1(config)#spanning-tree mst 1 priority 4096
AS1(config)#spanning-tree mst 2 priority 8192


##接入层第二台

##第一个功能开启vtp

AS2#conf t
AS2(config)#hostname AS2
AS2(config)#vtp mode client
AS2(config)#vtp pruning 
AS2(config)#vtp domain menzhen
AS2(config)#

##第二个功能以端口划分给vlan

AS2(config)#int range e0/2-3
AS2(config-if-range)#switch mode acc
AS2(config-if-range)#switch acc vlan 2
AS2(config-if-range)#no sh
AS2(config-if-range)#ex
AS2(config)#int e1/0
AS2(config-if)#switch mode acc
AS2(config-if)#switch acc vlan 3
AS2(config-if)#no sh
AS2(config-if)#ex
AS2(config)#

##第三 mstp的设置

AS2(config)#spanning-tree mode mst
AS2(config)#spanning-tree mst conf
AS2(config-mst)#name keshi
AS2(config-mst)#instance 1 vlan 2-4
AS2(config-mst)#instance 2 vlan 5-6
AS2(config-mst)#ex
AS2(config)#spanning-tree mst 2 priority 4096
AS2(config)#spanning-tree mst 1 priority 8192

只需要在 PC1 的响应端口使用 ip add dhcp 命令,能获取到正确范围的 IP 地址,我们的功能便完全实现了,这就是一个独立的模块所有的功能。
你能独立配置另外一个模块吗?
当另外一个模块也实现的时候,这两个模块是独立,没有联系,此时我们需要配置核心层将他们连接起来,这样便能实现全网通了。
能按照我们拓扑图中所绘制的 OSPF 的区域将该功能实现吗?
需要做的便是为每个相连的端口配置 IP 地址,然后配置 OSPF 即可

##参考配置

##DS1

DS1(config)#int e1/0
DS1(config-if)#no switch
DS1(config-if)#ip add 172.16.0.2 255.255.255.252
DS1(config-if)#no sh
DS1(config-if)#ex
DS1(config)#
DS1(config)#int e1/1
DS1(config-if)#no switch
DS1(config-if)#ip add 172.16.0.10 255.255.255.252
DS1(config-if)#no sh
DS1(config-if)#ex
DS1(config)#router ospf 1
DS1(config-router)#network 0.0.0.0 0.0.0.0 area 1

##DS2

DS2(config)#int e1/0
DS2(config-if)#no switch
DS2(config-if)#ip add 172.16.0.6 255.255.255.252
DS2(config-if)#no sh
DS2(config-if)#ex
DS2(config)#
DS2(config)#int e1/1
DS2(config-if)#no switch
DS2(config-if)#ip add 172.16.0.14 255.255.255.252
DS2(config-if)#no sh
DS2(config-if)#ex
DS2(config)#router ospf 1
DS2(config-router)#network 0.0.0.0 0.0.0.0 area 1

这是 CS1 的参考配置,能参照着做出 CS2 的配置吗?

conf t
host CS1
int e0/0
no swit
no ip add
sh
channel-group 1 mode on
ex
int e0/1
no swit
no ip add
sh
channel-group 1 mode on
ex
int port-channel 1
no swit
ip address 172.16.10.1 255.255.255.252
no sh
ex
int range e0/0-1
no sh
ex
no ip cef

conf t
int e0/2
no switch
ip add 172.16.0.1 255.255.255.252
no sh
ex
int e0/3
no switch
ip add 172.16.0.5 255.255.255.252
no sh
ex

int e1/0
no switch
ip add 172.16.3.1 255.255.255.252
no sh
ex
int e1/1
no switch
ip add 172.16.3.5 255.255.255.252
no sh
ex

router ospf 1
network 172.16.10.6 0.0.0.0 area 0
network 172.16.0.1 0.0.0.0 area 1
network 172.16.0.5 0.0.0.0 area 1

推荐阅读