要求1:除特殊要求外,要求企业网络内部所有设备能够互相通信;
效果:全网设备互相能够ping通
要求2:不同部门之间的用户数据互相隔离,但能够实现通信;
效果:不同VLAN内的主机广播消息是互相隔离的,但能够彼此进行通信;
要求3:经理办公室可以访问其他部门,其他部门不能访问经理室;
效果:除允许放行的数据之外,其他流量将被拒绝进入设备;
要求4:提升主机访问外网的网关设备的备份冗余性;
效果:当一台网关设备发生故障,主机会自动切换到备份网关,继续与外网的通信。
要求5:要求企业内部主机访问外网时转换成指定的公网地址;
效果:企业内部主机访问公网设备时,源IP地址为指定的公网地址
(二)、设备选型
1.AR1220型路由器两个
2.5700型三层交换两个
3.S3700二层交换四个
4.PC电脑八台
5.交叉、直联网线若干
(三)、项目拓扑图

基本规划
(一)、网段规划(根据规划依次写入)
vlan10,192.168.1.*/24
Vlan20,192.168.2.*/24
Vlan30,192.168.3.*/24
Vlan40,192.168.4.*/24
192.168.100.*/24
192.168.200.*/24
200.1.1.*/24
4.loop back:
200.1.2.*/24
(二)、vlan划分
区域一:vlan 10
区域二:vlan 20
区域三:vlan 30
区域四:vlan 40
两个三层交换的gig 0/0/5口:vlan 100
(三)、vrrp(热备冗余)规划
区域一与区域二以LSW1为Master,以LSW2为Backup
区域三与区域四以LSW2为Master,以LSW1为Backup
1.创建vlan 10 20 30 40
<Huawei>system-view
[Huawei]vlan batch 10 20 30 40 #对所有二层交换机做此配置
2.配置接口类型及设置可通过的vlan范围
[Huawei]interface eth 0/0/1 [Huawei]interface eth 0/0/2 #对所有二层交换的0/0/1和0/0/2接口进行如下配置
[Huawei-Ethernet0/0/1]port link-type trunk #将接口类型设为trunk
[Huawei-Ethernet0/0/1]port trunk allow-pass vlan all #允许所有vlan信号通过该端口
[Huawei]interface eth 0/0/3 [Huawei]interface eth 0/0/4 #对其他接口进行如下配置
[Huawei-Ethernet0/0/1]port link-type access #设置接口类型为access
[Huawei-Ethernet0/0/1]port default vlan 10 #指定允许该接口通过的vlan ID
<Huawei>system-view
[Huawei]vlan batch 10 20 30 40 100 #比二层交换多了一个vlan 100
将gig 0/0/1 到 gig 0/0/7口设置为trunk接口,并允许所有vlan通过
例:[Huawei]interface gig 0/0/1
[Huawei-Ethernet0/0/1]port link-type trunk
[Huawei-Ethernet0/0/1]port trunk allow-pass vlan all
#此步的接口IP默认是PC网关,但此图网关统一设为VRRP网关
LSW 1: #进入指定vlan,配置相应IP地址
例:vlan 10
[Huawei]interface Vlanif 10
[Huawei-Vlanif10]ip address 192.168.1.252 24 #接口IP及其子网掩码位数
vlan 20
[Huawei]interface Vlanif 20
[Huawei-Vlanif10]ip address 192.168.2.252 24 #valn 30和vlan 40进行相应操作
LSW 2: #LSW2的操作与LSW1相似
例:vlan 10
[Huawei]interface Vlanif 10
[Huawei-Vlanif10]ip address 192.168.1.253 24
vlan 20
[Huawei]interface Vlanif 20
[Huawei-Vlanif10]ip address 192.168.2.253 24
注:LSW1与二层相连接口IP均为192.168.*.252/24
LSW1与二层相连接口IP均为192.168.*.253/24
配置意义:当其中一台三层交换机宕机后,确保有另一台三层交换机顶上
相同三层交换上Vlanif 10配置与vlanif 20相似vlanif 30与vlanif 40相似
LSW1:
例:Vlanif 10
[Huawei]interface Vlanif 10 #进入指定vlanif
[Huawei-Vlanif10]vrrp vrid 1 virtual-ip 192.168.1.254 #设置网关地址
[Huawei-Vlanif10]vrrp vrid 1 priority 120 #设置优先级为120
[Huawei-Vlanif10]vrrp vrid 1 preempt-mode timer delay 40 #设置超时减40优先级
例:vlanif 20
[Huawei]interface Vlanif 20
[Huawei-Vlanif10]vrrp vrid 1 virtual-ip 192.168.2.254
LSW2:
例:vlanif 10
[Huawei]interface Vlanif 10
[Huawei-Vlanif10]vrrp vrid 1 virtual-ip 192.168.2.254
例:vlan 30
[Huawei-Vlanif10]vrrp vrid 1 virtual-ip 192.168.3.254 #设置网关地址
[Huawei-Vlanif10]vrrp vrid 1 priority 120 #设置优先级同样为120
[Huawei-Vlanif10]vrrp vrid 1 preempt-mode timer delay 40
查看VRRP配置结果:
①运用display命令检查
<Huawei>display vrrp brief
#任何一台机器显示的四组VRRP 有两个Master两个Backup即视为成功,否则视为失败
②运用ping命令检查
#在四台PC上分别ping三层交换的虚接口IP,若通则设置成功否则失败
注:vrid 一般是成对出现
一个vrrp的优先级默认为100
两台三层交换相同vlanif虚拟网关必须一样,相同vlanifd优先级必须不一样。
设置完成后注意pc网关已经是192.168.*.254,否则很可能ping不通
5.较为普通的gig 0/0/5口 #同样,两边做相同操作
[Huawei-Ethernet0/0/5]port link-type access #设置接口类型为access
[Huawei-Ethernet0/0/5]port default vlan 100 #将该接口划入vlan100
[Huawei]interface Vlanif 100
LSW1:
[Huawei-Vlanif100]ip address 192.168.100.* 24
LSW2:
[Huawei-Vlanif100]ip address 192.168.200.* 24
基础配置
给接口配置IP
AR1:
[Huawei]inter gig 0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 192.168.100.* 24
[Huawei]inter gig 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.200.* 24
[Huawei]inter gig 2/0/0
[Huawei-GigabitEthernet2/0/0]ip address 200.1.1.* 24
AR2:
[Huawei]inter gig 0/0/0 #接口IP
[Huawei-GigabitEthernet0/0/0]ip addres 200.1.1..* 24 #注意避免与AR1IP冲突
[Huawei]inter LoopBack 1 #设置一个回环地址
[Huawei-LoopBack1]ip address 200.1.2.* 24
这里可以设置静态路由、动态路由或者ospf区域路由(属于动态路由)
1.动态路由:
[Huawei]rip #进入动态路由配置界面
[Huawei-rip-1]network 192.168.10.0
[Huawei-rip-1]network 192.168.20.0
[Huawei-rip-1]network ………… #加入与其路由器(三层交换机)相邻的网段,可以加多个
2.ospf区域路由:
[Huawei]ospf #开启并进入ospf
[Huawei-ospf-1]area 0 #0为主干区域非0为非主干
[Huawei-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255 #后面跟反子网掩码
[Huawei-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network ……………… #与动态路由原理相似
3.静态路由
ip route-static 0.0.0.0 0 200.1.1.2
注:此处建议使用动态路由或者ospf区域路由
[Huawei]nat address-group 1 200.1.1.10 200.1.1.100 #建立一个NAT地址池
[huawei]acl 2001
[Huawei-acl-basic-2001]rule permit source 192.168.0.0 0.0.255.255
#定义acl访问规则允许192.168网段通过
[huawei]int g 2/0/0
[Huawei-GigabitEthernet2/0/0]nat outbound 2001 #指定acl运用接口
验证:
使用鲨鱼抓包进行数据抓取,地址是动态的就代表成功(如下)
配置目的:让vlan 10 能够访问vlan 20 30 40,而vlan 20 30 40 不能访问vlan10
[Huawei]acl 3000 #配置acl高级
[Huawei-acl-adv-3000]rule deny icmp source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 icmp-type echo
#禁止192.168.2.0网段发起对192.168.1.0网段icmp 请求,以下意义相同
[Huawei-acl-adv-3000]rule deny icmp source 192.168.3.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 icmp-type echo
[Huawei-acl-adv-3000]rule deny icmp source 192.168.4.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 icmp-type echo
结果测试:
用vlan 10的PC ping vlan 20 30 40任何一台pc 结果均能ping通,且vlan 20 30 40 任何一台不能ping通vlan 10的pc,则此次配置成功。
至此,此次的跨vlan通信的网络任务到此结束。
是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
假设我在Store的模型中有这个非常简单的方法:defgeocode_addressloc=Store.geocode(address)self.lat=loc.latself.lng=loc.lngend如果我想编写一些不受地理编码服务影响的测试脚本,这些脚本可能已关闭、有限制或取决于我的互联网连接,我该如何模拟地理编码服务?如果我可以将地理编码对象传递到该方法中,那将很容易,但我不知道在这种情况下该怎么做。谢谢!特里斯坦 最佳答案 使用内置模拟和stub的rspecs,你可以做这样的事情:setupdo@subject=MyCl
在ruby中,你可以这样做:classThingpublicdeff1puts"f1"endprivatedeff2puts"f2"endpublicdeff3puts"f3"endprivatedeff4puts"f4"endend现在f1和f3是公共(public)的,f2和f4是私有(private)的。内部发生了什么,允许您调用一个类方法,然后更改方法定义?我怎样才能实现相同的功能(表面上是创建我自己的java之类的注释)例如...classThingfundeff1puts"hey"endnotfundeff2puts"hey"endendfun和notfun将更改以下函数定
我有一个gem,它有一个根据Rails.env的不同行为的方法:defself.envifdefined?(Rails)Rails.envelsif...现在我想编写一个规范来测试这个代码路径。目前我是这样做的:Kernel.const_set(:Rails,nil)Rails.should_receive(:env).and_return('production')...没关系,只是感觉很丑。另一种方法是在spec_helper中声明:moduleRails;end而且效果也很好。但也许有更好的方法?理想情况下,这应该有效:rails=double('Rails')rails.sho
一边学习thisRailscast我从Rack中看到了以下源代码:defself.middleware@middleware||=beginm=Hash.new{|h,k|h[k]=[]}m["deployment"].concat[[Rack::ContentLength],[Rack::Chunked],logging_middleware]m["development"].concatm["deployment"]+[[Rack::ShowExceptions],[Rack::Lint]]mendend我的问题是关于第三行。什么是传递block{|h,k|h[k]=[]}到Has