4.2.4 路由 OSPF(OSPF的router-id、OSPF基础配置)
OSPF邻居在建立的过程中,通过router-id标识一台OSPF路由设备,如果router-id相同,那么将认为是一台路由设备,故OSPF邻居无法建立成功。
默认华为的路由器启动后,会自动生成一个全局的Router-id。
全局的router-id默认使用的是设备上配置的第一个IP地址。
通过display router id可以查看设备的全局router-id:
<AR4>display router id
RouterID:10.1.45.4
通过router id 1.1.1.1 可以修改全局的路由ID
[AR4]router id 1.1.1.1
Info: Router ID has been modified, please reset the relative protocols manually
to update the Router ID.
[AR4]display router id
RouterID:1.1.1.1
默认情况下,使用ospf 1创建的OSPF默认使用的router-id为全局router-id。
当然手动指定ospf的router-id也是可以的:ospf 1 router-id 1.1.1.1
同时也是建议使用手动指定的方式配置OSPF的router-id。

<Huawei>sys
[Huawei]sys AR1
# 取消配置回馈信息
[AR1]un in en
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 10.1.12.1 24
# 配置OSPF
[AR1-GigabitEthernet0/0/0]ospf 1 router 1.1.1.1
[AR1-ospf-1]a 1
[AR1-ospf-1-area-0.0.0.1]network 10.1.12.1 0.0.0.0
<Huawei>sys
[Huawei]sys AR2
# 取消配置回馈信息
[AR2]un in en
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 10.1.23.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 10.1.12.2 24
# 配置OSPF
[AR2-GigabitEthernet0/0/1]ospf 1 router 2.2.2.2
[AR2-ospf-1]a 1
[AR2-ospf-1-area-0.0.0.1]network 10.1.12.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.1]a 0
[AR2-ospf-1-area-0.0.0.0]network 10.1.23.2 0.0.0.0
<Huawei>sys
[Huawei]sys AR3
[AR3]un in en
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 10.1.23.3 24
[AR3-GigabitEthernet0/0/0]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 10.1.34.3 24
# 配置OSPF
[AR3-GigabitEthernet0/0/1]ospf 1 router 3.3.3.3
[AR3-ospf-1]a 0
[AR3-ospf-1-area-0.0.0.0]network 10.1.23.3 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]a 2
[AR3-ospf-1-area-0.0.0.1]network 10.1.34.3 0.0.0.0
<Huawei>sys
[Huawei]sys AR4
[AR4]un in en
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip ad 10.1.34.4 24
# 配置OSPF
[AR4-GigabitEthernet0/0/0]ospf 1 router 4.4.4.4
[AR4-ospf-1]a 2
[AR4-ospf-1-area-0.0.0.2]network 10.1.34.4 0.0.0.0
通过display ospf peer brief 命令查看邻居是否建立成功。回显内容中State状态标识链路的状态机,为Full表示成功建立了邻接关系。
邻接Full建立成功,当然也表明了邻居成功建立。
<AR1>dis ospf pee br
OSPF Process 1 with Router ID 1.1.1.1
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.1 GigabitEthernet0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------
<AR2>dis ospf pee br
OSPF Process 1 with Router ID 2.2.2.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 3.3.3.3 Full
0.0.0.1 GigabitEthernet0/0/1 1.1.1.1 Full
----------------------------------------------------------------------------
<AR3>dis ospf pee brief
OSPF Process 1 with Router ID 3.3.3.3
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
0.0.0.2 GigabitEthernet0/0/1 4.4.4.4 Full
----------------------------------------------------------------------------
<AR4>dis ospf pee br
OSPF Process 1 with Router ID 4.4.4.4
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.2 GigabitEthernet0/0/0 3.3.3.3 Full
----------------------------------------------------------------------------
# 启用OSPF,并手动指定router-id为4.4.4.4
ospf 1 router 4.4.4.4
# 配置区域0中的OSPF信息,全命令:area 0
a 0
# 指定启用OSPF功能的接口,启用了OSPF功能的接口才能进行发送OSPF报文并建立邻居、邻接关系。
network 10.1.34.4 0.0.0.0
除了通过network IP地址 0.0.0.0的方式让指定的接口启用OSPF之外,还有其它3种方式:
1、精确宣告方式:也就是network IP地址 0.0.0.0,该方式精确指定只有该IP地址的接口才能发送OSPF报文,其它没有宣告到的接口将不能发送OSPF报文。
这样的方式安全性更高,如果每个接口都启动OSPF功能,将会引来不必要的麻烦。
2、相对精确宣告方式:network 192.168.1.0 0.0.0.255,通过反掩码来宣告一个网段的方式,这种方式相对精确在于可以通过反掩码进行控制宣告的范围。
3、不精确宣告方式:network 192.168.0.0 0.0.255.255,与相对精确相似,但这种方式是直接宣告一个非常大的范围。
4、接口宣告方式:接口模式下:ospf enable 1 area 0,在指定的接口下启用OSPF功能,将其划分到OSPF进程1的区域0中,这种方式相比精确宣告省去指定IP地址。
接口宣告方式好处在于:接口地址更改之后仍然可以继续使用,而其它方式在接口地址更改之后或多或少都需要进行更新。
# 实操接口宣告方式,在AR4将之前使用精确宣告的方式删除,使用接口宣告
[AR4]ospf 1
[AR4-ospf-1]a 2
[AR4-ospf-1-area-0.0.0.2]undo network 10.1.34.4 0.0.0.0
[AR4-ospf-1-area-0.0.0.2]q
# 此时邻接关系断开
[AR4-ospf-1]dis ospf pee br
OSPF Process 1 with Router ID 4.4.4.4
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
----------------------------------------------------------------------------
# 配置接口宣告
[AR4-ospf-1]int g0/0/0
[AR4-GigabitEthernet0/0/0]ospf enable 1 area 2
[AR4-GigabitEthernet0/0/0]【Ctrl+Z 快速跳转到用户模式】
<AR4>dis ospf pee br
OSPF Process 1 with Router ID 4.4.4.4
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.2 GigabitEthernet0/0/0 3.3.3.3 Full
----------------------------------------------------------------------------
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配