网络工程师开发学习
本节将主要聚焦于ensp仿真,从头一步步来并了解网络的拓扑结构
ensp的下载不是我的讨论内容,这方面建议自行百度.本内容会持续更新
基本的网络结构
ip和dhcp这些概念只要上网时间长就都能理解,所以这里不讨论,直接进入仿真吧
网工入门
ip地址配置
我们进入拓扑,选择两个路由器,(一般选择ar2220,接口拓展多),选择两个路由器进行连接,手动分配ip地址.开机,system-view进入系统视图(直接敲sy系统会帮助你补全),然后选择我们所使用的接口,比如g0/0/0,interface选择我们所需端口,可以int按tab键补全,后接端口,我感觉有点像cd命令?
1 | ip address 192.168.1.1 255.255.255.0 |
其中192.168.1.1为ip地址,255.255.255.0为子网掩码.这两个也是常见的术语,在此不做赘述.这样,我们就配好了,参考你在你的windows主机上所作的.
如法炮制另一台,配好后就试试能不能ping通吧.保存配置的方式,quit退出网络视图,save保存
DHCP
我们平时上网赖以为生的不用手动配置网络的方式.DHCP:动态主机配置协议.Dynamic Host C Protacal.
我们先建立一个简单的常见的网络.包含路由器,交换机,主机,将其连接.虽然我们希望主机不需要手动分配,但得先配好路由器:专业设备还是需要配置的.主机的命令行在任务窗口内,点击主机就能看到.
DHCP可以由这台路由器充当它的服务器.如何让路由器成为dhcp服务器.命令行中dhcp enable.
对于路由器而言,它有多个接口,我们要指定实现dhcp功能的接口,接下来我们要进入接口
1 | interface g0/0/0 |
接下来进行dhcp的选择
1 | dhcp select interface |
这样就可以了.这时候我们重新在主机中应用dhcp,ipconfig查看网卡
1 | ipconfig |

我们可以清楚地看到已经获得了地址和子网掩码和网关,仔细观察我们会发现网关和路由器使用的接口的地址是一样的,这意味着什么呢?在以后我们会知道.我们依次给其他主机也分配好dhcp,然后开始ping吧!
DNS域名系统
那么我们要思考一个问题,我们知道ip地址可以当作一个服务器或者主机的位置,但是我们平时访问的时候可从来不需要记住ip地址啊?你知道google.com的ip地址吗?google.com是一个域名.是的我们是访问域名的,那么是如何实现的?
我们需要一台dns服务器来做域名解析.所谓的域名解析,就是把网址变成它对应的ip地址.
第一步,pc将网址发送给dns服务器,询问dns服务器域名所对应的ip,dns服务器给pc一个应答,应答包含相对应的ip地址,于是它就能通过ip地址就行访问.实验:
我们在ensp找到server,服务器可实现dns功能.我们在服务器内找到服务器信息,选择DNSServer.我们可以在其中添加域名和相对应的ip地址.如:
1 | www.baidu.com |
这个ip地址是你配置的某个主机,你知道的,这是仿真,所以得有台电脑来充当这个角色吧
不能忽视的是服务器本身也需要配上地址,这样你才能先访问到服务器对吧,用网线把它接到网络里.(教学视频接到交换机上,我觉得路由器也可以).这时候我们尝试去ping域名,发现依旧不通.我们需要配置路由器,依旧进入使用端口,在端口下需要指定dns服务器
1 | dhcp server dns-list 192.168.100 |
该ip地址是我们所指定的dns服务器地址
然后让主机重新获取dhcp地址即可

路由技术基础
我们知道子网掩码是用来确定网络位的,进而判断我们所在网段.那么网关是干什么的呢?
联系我们生活,我们和那么多人通信,肯定不可能全在一个网段下,这太麻烦了,所以我们想象一个场景,有另外一台pc在交换机外,通过路由器和我们通信,自然的,给它一个不同的网段.我们内网里的设备怎么和它通信呢?这时候就需要网关
网关:用来连接不同网段.在我们的这个仿真中,充当这个角色的就是路由器.这时候就能解决我们上节所说的问题了,于是我们pc的网关配置就选择和路由相连的那个口.配置完成,记得开机
开始和不同网段的互ping
第一次会丢包,原理:pc会先发送请求,判断目标和自己是不是同个网段的,如果不是,就把数据包发个网关,也就是中间人,由它来处理请求并转发
我们生活中的路由器肯定不止两个接口,企业级的更是多如牛毛,那么要怎么判断从哪个接口来发?接下来引出路由表
1 | display ip routing-table |
即查看ip路由表的意思

这里标注了去往相应ip会走过的口.
很多对吧,如果我们想精确定位:
1 | display ip routing-table 100.100.100.100 |
这里就会只显示相应的结果
有一个小细节,我们可以给设备取名,毕竟你也不想一直看着遥遥领先的名字吧
1 | sysname RA |
RA:route A,可以遵循这样的命名方式.
重力般的焦虑是否要持续到明天
静态路由
ip static.我们依旧从实际问题出发,我们的数据是要经过好几个路由的,也就是好几个网关.我一开始也天真地认为设置好网关以后数据就可以无忧无虑地发送了,但是并不是这样的,当pc并不与同一个路由器相连的时候,由于路由表并不会记载不直接相连的,路由器不知道要用哪个口做转发,就需要给它人为指定.也就是static ,静态路由表
1 | ip route-static 192.168.3.0 255.255.255.0 192.168.2.10 |
这时候用route不用routing,不懂区别,这就代表所有192.168.3.x的目标,下一跳都经过192.168.2.10,由它进行传递,路由器会自己知道怎么去2.10的,如果直接相连的话.
这时候再去ping,依旧不通?
为什么呢,因为你发数据包要有人还你啊,不然怎么知道能不能通信.所以对等的也得设置静态路由,
接下来实验吧
TCP与UDP
先去吃饭
我们先思考几个问题,电脑浏览器如何打开百度?
我们先通过dhcp获得ip地址,相当于可以正常地写上发件人地址.然后电脑要获得百度的ip,如何获得呢>它先需要通过dns服务器去解析,然后获得百度的ip,接下来就可以向百度的服务器发送请求,然后百度的服务器返还一个数据包给自己的电脑.这个包要先经过一个又一个的网关来跳,也就是路由器.在这里回忆我们设置静态路由的办法,ip route-static ip地址 子网掩码 直接相连的下一个ip(一般是网关),(这一步在路由表里),经过路由表的查找,最后送回来.
下一个问题:我们是如何通过客户端连接服务器?
使用客户端的时候有别于浏览器键入请求,它无需域名,也就无需dns服务器,因为它可以直接内置服务器的ip,就可以直接连接服务器ip.诸如游戏客户端,qq客户端,微信客户端,即使我们的dns服务器配错了依旧可以连接(?这样的话,如果ufw只使用dns污染,我们是不是也可以访问X和facebook?)
有兴趣可以把自己dns改了,输入你最喜欢的网址全部打不开,qq就可以,因为qq内置了服务器ip
TCP:虽然附上英文名是比较好的习惯,但我没啥印象了所以先不写,三次握手也不知道,当个入门吧.TCP的特征是会多次确认包的完整性,从而保证数据的完整,缺点是它的延迟比较大,速度慢.像客户端更新和下载一般都是采用TCP的方式,这可能也是我们觉得下载慢的原因.电子邮件也采用TCP
UDP:一次性发送,不确认完整性,延迟低速度快,一般用于游戏中这些对延迟要求高而对数据完整性要求较低的场景,以保证玩家体验.
电商服务器如何顶住压力?
使用cdn:content deliver network:内容分布网络,用多个服务器处理请求,用智能dns技术将一个域名请求解析成多个ip返还,从而使多个服务器来完成工作,降低压力.服务器上的内容一致则是另一个技术了.
vlan虚拟局域网
我们已经了解了网络是怎么通的,那么它的安全性是怎么确保的?什么时候数据能通,什么时候不能?
我们先入门最常见的网络安全技术.
vlan技术 acl:访问控制列表
Vlan:虚拟局域网,顾名思义,将一个真实的局域网划分为多个虚拟的局域网,实现不同vlan的隔离,将不同的电脑放到不同的vlan就能起到隔离的作用.(比如说你有不想让别人看到的东西),从而保护隐私,限制病毒的传播,让其只能待在一个vlan里.接下来我们在ensp里仿真
vlan主要用在交换机上(想想也是,局域网),一般而言,我们用交换机构成的局域网,设备彼此之间都是互通的.但当我们使用vlan,就可以使之不通
步骤:先在交换机创建vlan,再将设备放进不同的vlan
步骤很简单
1 | system-view |
我们就得到了两个编号不同的vlan
1 | display vlan |
查看vlan,我们会看到我们指定的vlan编号,其中有个vlan1,这个是开机启动就带有的,所有接口都属于vlan1,all hail vlan1,雾,那么我们怎么分配.因为每个设备和交换机都有个接口,所以把接口指定给vlan就好了
交换机的接口模式:
Access:用来连接终端,电脑打字机
Trunk:连接交换机
我们这里交换机连接电脑,故而用access
输入以下命令:
1 | interface 指定port |
先进入端口再指定,这样我们就分配好第一个端口了
1 | display vlan |
这时候我们可以看到vlan10下的端口包含了g0/0/0.如法炮制指定vlan20的端口,重新去ping目标端口ip地址,ping不通
前面提到了trunk是用来连接不同交换机的方式,可以类比access的命令
我们设想一个场景,我们将路由器与路由器相连构成一个更大的局域网,每个路由器上有不同的vlan.先明确一点,不同路由器下编号相同的vlan是可以通信的(我也不明白为什么,可能这就是vlan的意义吧,虚拟局域网),那么路由器要怎么判断数据包来自哪个vlan呢?
先进入端口,这里不再重复步骤
1 | port link-type trunk |
进入trunk,然后在设置可以通过交换机的vlan
1 | port trunk allow-pass vlan vlan编号 |
若要允许全部通过
1 | port trunk allow-pass all |
最后我们去把两组交换机下的pc各自ping一下,同属于一个vlan的可通,否则不可通,也就是通过trunk指定了可以接受的vlan后交换机会给数据贴上标签,判断来自哪目的地可不可达(怎么实现的我不知道)





