邻居建立和Hello包有关,所以我们要看看Hello包里有什么东东会影响邻居建立。
a、Route ID一致。Route ID是唯一的,所以Route ID一致会导致邻居建立不成功
b、area ID不一致。
c、认证方式不一致。(不需要认证、明文认证、密文认证)
d、认证密码不一致。
e、掩码不一致
f、Hello time和Dead time不一致
其他原因:
g、接口链路故障,或者接口没有启用OSPF,导致接口收不到对端发送的Hello报文。
h、网络类型不一致(比如一边是P2P对等网络,一边是Broadcast广播;hello报文里没有网络类型这个字段,但是两边网络类型不一致有可能Hello time一致,也会有影响,有一种特例,如果Hello time时间一致,则可以建立邻居,但是接口类型不一致会导致学不到路由信息)
Cisico路由器可以使用show ip ospf interface f0/0查看f0/0的ospf接口信息

i、区域类型不一致(特殊区域和非特殊区域)
j、接口加入了静默接口(静默(被动)接口不会发送Hello报文,简单来说就是路由器连接PC的接口,PC不需要收到路由器发送的hello包等数据包,所以为了优化链路带宽,就可以将这个接口配置为静默(被动)接口)

(1)init状态
什么情况状态一直处于init状态?
不发送Hello报文;接收不到Hello报文(ACL访问控制过滤了OSPF报文)。
R1给R2发送Hello包,但是R2一直不给R1发送Hello包,所以对于R1 来说就不认识R2 ,就会认为R2一直处于init状态。

如果想要R2状态处于init状态,那么R2 不发送Hello包给R1 即可;或者配置R1不接收R2发送的Hello报文,可以做ACL过滤。
(2)2-way状态
当接口优先级为0的时候不进行DR和BDR的选举,DRother之间处于2-way状态
Cisico路由器修改接口优先级ip ospf priority 0

(3)Exstart/Exchange状态
Exstart状态发送的DD报文不包含LSA摘要信息,这个状态是选主从的;exchange状态发送的DBD报文包含LSA摘要信息。
Exstart/Exchange状态交互DBD报文,在Exstart状态会进行MTU的检查。Cisico设备默认会检查,华为设备默认不检查,所以值为0。Cisico可以使用ip ospf mtu-ignore忽略MTU检查。

Cisico重新启动OSPF进程R1#clear ip ospf 1 process
修改接口的mtu:R1(config-if)#ip mtu 1300


三种情况:
1、两端的MTU不一致,任意一方开启了MTU检测,可以正常进入FULL状态。
因为不开启MTU检查的一端收到对端发送的DBD报文后会直接忽略MTU检查直接接收报文,MTU向小兼容,如图:假设R5开启了MTU检查,R4不开,R4的DBD报文发送给R5的时候检查MTU值大小,本端MTU值大于对端兼容收下数据包,R5发送DBD给R4,MTU虽然大于R4,但是R4不对MTU进行检查,所以收下数据包,两端进入exstart状态。DBR-R5发送带有LSA摘要的DBD报文给DR-R4,收下,都进入exchange状态。进入loading状态,交换路由更新信息,进入FULL状态。
2、两端都开启MTU检测
(1)、从设备的MTU大于主设备情况,主设备处于exchange状态,备设备处于exstart状态。
因为交互完DBD报文之后都进入了exstart状态,从设备给主设备发送DBD报文,从设备状态变为exchange,而主设备MTU比较小,MTU检查不通过,只能丢弃这个包,主设备无法进入exchange状态。
(2)、从设备的MTU小于主设备,两者都处于exstart状态。
两边都可以发送DBD选举主从进入exstart状态,但是从设备的MTU小,从设备接收不到主设备发送的第一个DBD报文,也就不会发送带有LSA摘要信息的DBD给主设备,也就无法进入exchange状态。

好吧,这让我发疯了。我已经阅读了Associations文章和示例,并在过去三天里一直在努力解决这个问题,我已经厌倦了这让我感到愚蠢,所以......如何与DataMapper建立关联?(我将DM与Sinatra和SQLite3一起使用。对于具有多个值等的单个表,一切都很好。当我开始尝试将它们关联起来时,我开始出现错误。)假设我有一个种满苹果树的Orchard。每棵树都有很多苹果。每个苹果都有很多种子。因此每棵树都有许多种子通过它的苹果require'sinatra'require'datamapper'DataMapper::setup(:default,"sqlite3://#{D
我有以下字符串:a="001;Barbara;122"我拆分成字符串数组:names=a.split(";")names=["001","Barbara","122"]我应该怎么做才能将每个元素另外用''引号括起来?结果应该是names=["'001'","'Barbara'","'122'"]我知道这听起来很奇怪,但我需要它在rubyonrails中进行数据库查询。出于某种原因,如果我的名字在“”引号中,我将无法访问数据库记录。我在数据库中确实有mk1==0006但rails不想以某种方式访问它。但是,它确实访问1222。sql="SELECTmk1,mk2,pk1,pk
在MacOS更新之前,它一直运行良好。我重新安装了RVM、rails、ruby等等。到目前为止没有任何效果。在我的Mac终端中,我可以生成一个é,但是在控制台中,我可以生成字符,使用alt+character,然后当我键入字符分配给的字母,它会删除该字符。在我的~/.rvmrc中:exportruby_configure_flags="--with-readline-dir=/usr/local/Cellar/readline/6.2.4"有什么想法吗?到目前为止,我已经明确地让它工作了,包括readline-rb。我猜我的全局要求不工作。gem'rb-readline','~>0.4
我的Rails应用程序在暂存服务器上运行速度非常慢,这让我遇到了一些麻烦。最令人困惑的是每个请求的日志输出的最后一行。看起来View和数据库时间甚至不接近整个渲染时间。在一页上,完成时间大约1000毫秒,View大约450毫秒,数据库大约20毫秒。渲染页面所需的其余时间从何而来? 最佳答案 当事情变得神秘时......分析器是你的friend!分析器将统计哪些方法被调用最多以及每个方法调用花费多长时间。ruby-prof当我在RubyLand时,它会帮我解决这个问题,它会生成一个漂亮的调用图(如果需要,可以是html格式),这使得查
条件:a+b+c=100a,b,cpositiveintegersor0期望的输出:[[0,0,100],[0,1,99],...#allotherpermutations[99,1,0],[100,0,0]] 最佳答案 我会写:(0..100).flat_map{|x|(0..100-x).map{|y|[x,y,100-x-y]}}#=>[[0,0,100],[0,1,99]],...,[99,1,0],[100,0,0]]站点注释1:这是一个经典示例,其中列表推导式大放异彩(如果某处有条件则更是如此)。由于Ruby没有LC,我
所以这很奇怪。我在Ruby1.9.3中,float加法没有像我预期的那样工作。0.3+0.6+0.1=0.99999999999999990.6+0.1+0.3=1我在另一台机器上试过了,得到了同样的结果。知道为什么会发生这种情况吗? 最佳答案 浮点运算是不精确的:它们将结果四舍五入到最接近的可表示浮点值。这意味着每个float操作是:float(aopb)=mathematical(aopb)+rounding-error(aopb)如上式所示,舍入误差取决于操作数a和b。因此,如果您以不同的顺序执行操作,float(float(
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我正在努力寻找一套好的工具来实现我的个人网站。必须具备:网站或其生成器必须基于Ruby必须易于部署和维护拥有的美好:它应该在排版上干净漂亮它应该具有html5/css3功能我正在考虑直接使用Rails3,但它似乎有点过分了。编辑内容将是作品集和博客的混合体。你们ruby在用什么?效果好吗?
在为一些与JRuby中的临时文件交互的代码运行单元测试时,我有时会得到以下信息:Exception:java.lang.ThreadDeaththrownfromtheUncaughtExceptionHandlerinthread"Thread-6395"它似乎没有引起任何问题,但这是怎么回事,我如何确定它发生在哪里?我尝试打开-d,但这并没有给我异常的堆栈跟踪。 最佳答案 FWIW:这可能与http://jira.codehaus.org/browse/JRUBY-7074有关.我偶尔会在不使用反引号但调用系统的JRuby程序中
我正在尝试安装geoutm使用geminstallgeoutm。Github存储库没有问题页面,所以我尝试自己解决问题然后提交拉取请求。这是问题:$geminstallgeoutmFetching:geoutm-1.0.1.gem(100%)Successfullyinstalledgeoutm-1.0.1ERROR:Whileexecutinggem...(TypeError)noimplicitconversionofArrayintoString它说“已成功安装”,但尝试要求gem失败。详细安装并没有多大用处:$geminstallgeoutm--verboseHEADhttps
文章目录实验要求实验思路IP地址规划路由实验配置R1上配置R2上配置R3上配置R4上配置R5上配置R6上配置R7上配置R8上配置R9上配置R10上配置R11上配置R12上配置实验测试R10pingR4的环回R10pingR12的环回R10pingR1实验要求R4为ISP,其只能配置IP地址;R4与其他所有直连设备间均使用公有IP;R3-R5/6/7为MGRE环境,R3为中心站点;整个OSPF环境IP基于172.16.0.0/16划分;所有设备均可访问R4的环回;减少LSA的更新量,加快收敛,保障更新安全;全网可达实验思路IP地址规划公网IP随便配置,这里我R3-R4的网段为34.1.1.0/2