SSFNet与BRITE

来源:互联网 发布:重庆行知学校 编辑:程序博客网 时间:2024/04/30 00:15

SSFNet与BRITE的结合
1)你可以使用BRITE根目录下的brite可执行程序来启动BRITE的GUI,然后在里面来配置产生拓扑。
generate topology之后一般会产生两个DML文件,a.dml或者a_network.dml,你仔细看后a_network.dml中又extends了一个dictionary.
这个文件我找了很久才找到,它在%BRITE_HOME/java/Export之下。
2)但是直接运行是报java错误的,通过上网查找到的解决方法是:把a_network.dml中的最外层的名字由a_network.dml该为a_network,
然后把a.dml中所有相应的都去掉“.dml”这四个字符,这样就可以跑起来了。
即:
It seems that the latest version of SSFNet doesn't like
this kind of definition:

_extends .topologia_networks.dml.as6.Net
                                               ^^^^

I've had to get rid of ".dml" string in both the file where
the "extends" tag appears and in the "_network.dml" file.

Besides, both "warn_packet_drop" and "warn_no_route"
tags (defined in "Java/Export/dictionary.dml") have been
deprecated. Now it's enough to specify "debug true".

I've got it running now. Thanks!   

3)整个需要跑起来的话,命令行中共需要四个DML文件,(1)是a.dml,这个文件描述了有多少个自治系统及其连接关系。因为在a.dml文件中
extends了a_network.dml中的内容,所有还要有(2)a_network.dml,这个文件描述了每个自治系统。因为a_network.dml文件中又extends了
%BRITE_HOME/java/Export/dictionary.dml中的内容,所有还要有(3)%BRITE_HOME/java/Export/dictionary.dml。(4)最后应该还要有
%SSFNet_HOME/examples/net.dml
4)运行起来的时候,warning每个路由器的前5个interface没有初始化,应该是没有问题的。
5)
SSFNet中关于BGP的配置最简单的就是包含三项内容在ProtocolSession里面即可。name use 还有就是是否进行autoconfigure。
如果进行了autoconfigure,则有这样三个限制:
1 如果一个自治系统中有多个BGP路由器,那么它们从物理上都要进行full mesh地进行连接。
2 timer均使用default
3 no policy configured

 以上是从每个协议的doc文档中看到的,那么从这个意义上讲,如果autoconfigure为true的话,
那么你关于BGP的其它配置都是没有用的了,那么你只需要连接好物理连接即可,比如谁和谁neighbor都不需要你配置了
即link,


8 # Each individual BGP protocol session (BGP speaker) must be configured
# separately, though certain global default values may be configured (refer
# to the 'bgpoptions' attribute). 
这样如果我使用pesudo-protocol对于BRITE生成的autoconfigure为true的拓扑来制造BGP die的事件时,为了防止无限次地重新连接发生,
可以在bgpoptions中来把auto-reconnect置为false即可,虽然它默认情况下是true。
顺便说一下这个代表全局的bgpoptions中的一些属性的用法,比如globle_hole_time,分四种情况,但其使用原则是:
如果autoconfigure为true,那么你对于单个BGP peer的该属性的配置是不生效的了,如果bgpoptions里配置了值,就使用该值,
如果没有配置值就使用默认值;如果为false,如果在bgpoptions中配置了值,则所有的peer会使用该值,如果为某个peer手动指定了,
则就重载了这个全局的。
(注:在Brite产生的DML中,bgpoption这个选项在a.dml的第一个大Net中进行配置。)