c-bgp-users Mailing List for C-BGP (Page 6)
Brought to you by:
bquoitin
You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(4) |
Feb
|
Mar
(8) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(5) |
Sep
(10) |
Oct
(20) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(2) |
Jun
|
Jul
(6) |
Aug
(4) |
Sep
|
Oct
(4) |
Nov
(11) |
Dec
(4) |
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(10) |
Jul
(2) |
Aug
|
Sep
(6) |
Oct
|
Nov
|
Dec
|
2015 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
(2) |
Feb
(8) |
Mar
|
Apr
|
May
|
Jun
(9) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(6) |
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Bruno Q. <bru...@um...> - 2011-03-23 17:37:35
|
Hi Yaping, > hi Bruno, > Thanks a lot for the quick response. I followed your suggestions to > trace through the decision process using the "debug dp" command, and > found the bug in my code :-) Great. That "debug dp" command also saved my life a few times ;-) > May I ask another question (should be the last one...)? I'm planning > to evaluate the incremental deployment of our proposed protocol (say > BGP*): by having one AS running BGP* decision process, and the rest > running BGP by default. In order to do this, > - in bgp/dp_rules.h/c: I defined another set of rules in DP_RULES_NEW[] > - in bgp/as.c: I selectively choose the decision process > if(router->asn matches the AS selected to deploy) > call DP_RULES_NEW > else > unchanged. I would suggest that you add an option in each router that determines which set of decision process rules should be applied. This can be done with a small change in src/bgp/types.h * look for structure bgp_router_t { ... } * insert your option, e.g. "int dp_type;" (or use an "enum" type) * add a CLI command that allows to change that variable + base the selection of the dp rules on the value of this variable > my question is: I want to define a new command (or I could also reuse > your commands, if that's easier), like "incremental deployment ASXXX". > I want to parse the AS number specified in the .cli file, store it in > some variable, and pass it to as.h/c. > I'm digging into your code, but haven't figured out: > - which file parses the .cli configuration. i'm looking into the /cli > directory, but haven't figured out. > - how to pass the AS number to bgp/as.c, where do you store the > variables? any examples which you pass variables from config to bgp code? > Could you help to point me to some related files (pieces of > code/examples)? Really appreciate your help here! The CLI parsing code lies within the libgds library. However, the actual supported commands are defined in c-bgp under src/cli. The set of commands spans several files. Let's say you want to add a command "bgp router ASxxx dp_type xxx". This can be done with a change in file src/cli/bgp.c * to add a command, you need code that register the command and provide the implementation of the command. * to register your command, look for function "_register_bgp_router": this function is responsible for registering the commands under "bgp router". Look at how other commands are added. You can find a doxygen documentation for the various libgds CLI commands within libgds's source archive. * to provide the implementation of the new command, you need to provide a C function that takes well-defined parameters. Look at "cli_bgp_router_recordroute" for an example. This command has the following structure. int cli_bgp_router_recordroute(cli_ctx_t * ctx, cli_cmd_t * cmd) { bgp_router_t * router= _router_from_context(ctx); const char * arg= cli_get_arg_value(cmd, 0); (...) implementation of command } Cheers, Bruno > thanks, > Yaping > > On Mar 22, 2011, at 4:39 PM, Bruno Quoitin wrote: > >> Hi Yaping, >> >> Are you sure there are no pending events in the simulator's queue >> (check with "sim queue show") ? >> That might explain such inconsistencies. >> >> Did you check the current best path in every router along the path >> selected by A ? >> Did you check the content of A's adj-rib-in (check with "bgp router A >> show adj-rib in * *") >> You can also display what the decision process did on a router (say >> A) with "bgp router A debug dp <prefix>" >> >> I have no more idea based on your short description. As a last >> resort, you can send me your code (if that's not private) and I will >> try to reproduce the behaviour you observed. >> >> Cheers, >> Bruno >> >> hi C-BGP developers, >> My name is Yaping Zhu, and I'm a graduate student at Princeton >> University. I'm using C-BGP to evaluate a new routing protocol (which >> modifies the BGP decision process). However, I get inconsistent AS >> path seen from different vantage points. Would be really appreciated >> it you could help here. >> >> More specific, I change the BGP decision process in bgp/dp_rules.h/c >> in C-BGP to: >> - disable the step of selecting route based on shorter AS path >> - add a additional step, Prefer Recent Route: if the current route is >> of the same local-pref as the best route, then the decision process >> prefers current route. >> After changing the code, I did the simulation to output the AS path >> from all the ASes. However, the AS path are not consistent. e.g. AS A >> is having B on it's path, say A X B Y Z; however, B is not selecting >> Y Z but W K as its AS path. >> I checked my configuration, and the code I modified, which seems to >> be correct. Do you have any thoughts on what might go wrong? >> >> thanks, >> Yaping > -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Dow S. <dow...@pr...> - 2011-03-22 21:32:25
|
Hi Bruno. I seem to remember there being an older c-bgp wiki with some additional documentation, but it looks like the redirect may have broken in the move to sourceforge? Also, do you know of any examples and/or papers describing the implementation of an experimental (new) attribute in c-bgp? (digging through the 2.0.0-rc3 code now). Thanks, Dow |
From: Bruno Q. <bru...@um...> - 2011-03-22 20:39:40
|
Hi Yaping, Are you sure there are no pending events in the simulator's queue (check with "sim queue show") ? That might explain such inconsistencies. Did you check the current best path in every router along the path selected by A ? Did you check the content of A's adj-rib-in (check with "bgp router A show adj-rib in * *") You can also display what the decision process did on a router (say A) with "bgp router A debug dp <prefix>" I have no more idea based on your short description. As a last resort, you can send me your code (if that's not private) and I will try to reproduce the behaviour you observed. Cheers, Bruno hi C-BGP developers, My name is Yaping Zhu, and I'm a graduate student at Princeton University. I'm using C-BGP to evaluate a new routing protocol (which modifies the BGP decision process). However, I get inconsistent AS path seen from different vantage points. Would be really appreciated it you could help here. More specific, I change the BGP decision process in bgp/dp_rules.h/c in C-BGP to: - disable the step of selecting route based on shorter AS path - add a additional step, Prefer Recent Route: if the current route is of the same local-pref as the best route, then the decision process prefers current route. After changing the code, I did the simulation to output the AS path from all the ASes. However, the AS path are not consistent. e.g. AS A is having B on it's path, say A X B Y Z; however, B is not selecting Y Z but W K as its AS path. I checked my configuration, and the code I modified, which seems to be correct. Do you have any thoughts on what might go wrong? thanks, Yaping |
From: Yaping Z. <yapingz@CS.Princeton.EDU> - 2011-03-22 19:47:08
|
hi C-BGP developers, My name is Yaping Zhu, and I'm a graduate student at Princeton University. I'm using C-BGP to evaluate a new routing protocol (which modifies the BGP decision process). However, I get inconsistent AS path seen from different vantage points. Would be really appreciated it you could help here. More specific, I change the BGP decision process in bgp/dp_rules.h/c in C-BGP to: - disable the step of selecting route based on shorter AS path - add a additional step, Prefer Recent Route: if the current route is of the same local-pref as the best route, then the decision process prefers current route. After changing the code, I did the simulation to output the AS path from all the ASes. However, the AS path are not consistent. e.g. AS A is having B on it's path, say A X B Y Z; however, B is not selecting Y Z but W K as its AS path. I checked my configuration, and the code I modified, which seems to be correct. Do you have any thoughts on what might go wrong? thanks, Yaping |
From: Bruno Q. <bru...@um...> - 2011-03-18 19:30:37
|
Hello, Sorry for the late answer. Please also note that the official c-bgp mailing-list has moved to sourceforge (I cc:'ed the new mailing-list). There is an updated documentation on-line available from the sourceforge web site (http://c-bgp.sourceforge.net/documentation.php). For documentation regarding the filters, please have a look at the following node: http://c-bgp.sourceforge.net/doc/html/nodes/bgp_router_peer_filter_add-rule.html From there, the "action" and "match" parts are described and the possible predicates and actions are also defined. In cas you don't find the required information, please contact me again at my umons e-mail address. Cheers, Bruno On 09/12/10 01:07, Palani kodeswaran wrote: > Hello, > > Is the filter add-rule syntax the same in CBGP 1.4 and CBGP 2. Also, > where can I find documentation on filters for CBGP 2. > > Thanks, > Palani. > > -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Yosef K. <yo...@ov...> - 2011-03-02 17:11:37
|
Dear Prof Quoitin. Thank you for your help. My aim is to use CBGP to simulate BGP network events and to export it to my test environment. I would like to set the virtual peer as a rr-client and to record the routes sent to it. >From documentation, virtual peers will not receive BGP messages. So I'll save router A rib and export it to my test environment. Thanks Yosef Kahana -----Original Message----- From: Bruno Quoitin [mailto:bru...@um...] Sent: Wednesday, March 02, 2011 5:01 PM To: Yosef Kahana Cc: c-b...@li... Subject: Re: Using cbgp simulator Dear Yosef, I copy the c-bgp mailing-list with my answers. They might be useful to other users. On 01/03/11 13:37, Yosef Kahana wrote: > Prof Quoitin. > I'm using cbgp simulator and facing some difficulties. > 1) simulated topology is: > 5 BGP routers (a,b, and c have networks attached) 10.5.16.201-205 (a-e) > the Links are a<->d > b<->d > b<->e > c<->e > d<->e > I can see a and b networks at d > b and c networks at e > but there is no propagation of networks between d and e. > there is no propagation of networks to a, b and c. It looks like all the sessions are iBGP. A route received from an iBGP peer will not be redistributed to another iBGP peer. You need to either * establish a full-mesh of iBGP sessions among your routers. Note that you can achieve this quickly using the following command "bgp domain 65024 full-mesh". Asa result, all routers in that domain will have iBGP sessions between each others; * establish eBGP sessions; * use route-reflectors: will allow propagation of iBGP learned routes between iBGP neighbors. > 2) I would like to set a real BGP router as rr-client to d and e. > their peer status is active but nothing is sent. What do you mean by a real BGP router ? c-bgp will not establish BGP sessions with a real router. However, you are allowed to define a "virtual" router in the simulation which will act as a placeholder for a real router. The purpose of virtual routers is to allow the injection of routes collected on a real router. In brief, this works as follows: 1). You collect routes on your real router X 2). You setup a BGP session between router A in c-bgp and virtual router X. To be clear, router A has been defined with "net add node" and "bgp add router" while router X has not been defined in c-bgp. 3). You set the peer X of the BGP session of step (2) as virtual In the end, you should have something like bgp router A add peer AS(X) IP(X) peer IP(X) virtual ... bgp router A peer IP(X) recv "...MRT formated BGP route..." > attached my configuration file. By the way, I had to edit your file before testing because there were plenty of non-ASCII characters in the script. See for example the first line which has "" before the comment. Regards, Bruno -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Bruno Q. <bru...@um...> - 2011-03-02 15:21:31
|
Dear Yosef, I copy the c-bgp mailing-list with my answers. They might be useful to other users. On 01/03/11 13:37, Yosef Kahana wrote: > Prof Quoitin. > I'm using cbgp simulator and facing some difficulties. > 1) simulated topology is: > 5 BGP routers (a,b, and c have networks attached) 10.5.16.201-205 (a-e) > the Links are a<->d > b<->d > b<->e > c<->e > d<->e > I can see a and b networks at d > b and c networks at e > but there is no propagation of networks between d and e. > there is no propagation of networks to a, b and c. It looks like all the sessions are iBGP. A route received from an iBGP peer will not be redistributed to another iBGP peer. You need to either * establish a full-mesh of iBGP sessions among your routers. Note that you can achieve this quickly using the following command "bgp domain 65024 full-mesh". Asa result, all routers in that domain will have iBGP sessions between each others; * establish eBGP sessions; * use route-reflectors: will allow propagation of iBGP learned routes between iBGP neighbors. > 2) I would like to set a real BGP router as rr-client to d and e. > their peer status is active but nothing is sent. What do you mean by a real BGP router ? c-bgp will not establish BGP sessions with a real router. However, you are allowed to define a "virtual" router in the simulation which will act as a placeholder for a real router. The purpose of virtual routers is to allow the injection of routes collected on a real router. In brief, this works as follows: 1). You collect routes on your real router X 2). You setup a BGP session between router A in c-bgp and virtual router X. To be clear, router A has been defined with "net add node" and "bgp add router" while router X has not been defined in c-bgp. 3). You set the peer X of the BGP session of step (2) as virtual In the end, you should have something like bgp router A add peer AS(X) IP(X) peer IP(X) virtual ... bgp router A peer IP(X) recv "...MRT formated BGP route..." > attached my configuration file. By the way, I had to edit your file before testing because there were plenty of non-ASCII characters in the script. See for example the first line which has "" before the comment. Regards, Bruno -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Bruno Q. <bru...@um...> - 2011-01-24 12:59:25
|
Dear c-bgp users, The c-bgp documentation has been updated. -> An online command reference manual is available at http://c-bgp.sourceforge.net/doc/html. -> A tutorial is available at http://c-bgp.sourceforge.net/tutorial.php Cheers, Bruno |
From: Bruno Q. <bru...@um...> - 2011-01-09 20:16:07
|
Thanks. Could you please try with libgds-2.0.0-rc3 and let me know how it goes. Regards, Bruno On 09/01/11 16:46, Yosef Kahana wrote: > > Hi Bruno. > I have a sabauon environment. > GNOME Version 2.32.1, Build data 12/07/2010, Distributor Gentoo. > > libgds version: libgds-2.0.0-rc1. was downloaded with the distribution > of cbgp-2.0.0-rc3 > > The first compiler error is: > make[3]: Entering directory > `/home/yosefk/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3/src/cli' > /bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H > -I. -I../../src -I.. > -I/home/yosefk/Tools/BGP/Simulator/BGP/local/include -g -O2 > -Wall -O2 -MT libcli_la-sim.lo -MD -MP -MF .deps/libcli_la-sim.Tpo -c > -o libcli_la-sim.lo `test -f 'sim.c' || echo './'`sim.c > libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../src -I.. > -I/home/yosefk/Tools/BGP/Simulator/BGP/local/include -g -O2 -Wall -O2 > -MT libcli_la-sim.lo -MD -MP -MF .deps/libcli_la-sim.Tpo -c sim.c > -fPIC -DPIC -o .libs/libcli_la-sim.o > sim.c: In function 'cli_sim_options_loglevel': > sim.c:130: error: too many arguments to function 'stream_str2level' > > Thanks Yosef. > > On 01/09/2011 04:35 PM, Bruno Quoitin wrote: >> Hi Yosef, >> >> Could you tell me which version of libgds you are using. What is your >> build environment (OS + version). >> >> Then, what's the exact error message you received for the first error >> (message from compiler). >> >> Thanks. >> Bruno >> >> >> On 09/01/11 08:56, Yosef Kahana wrote: >>> Dear Prof Quotin. >>> >>> When compiling cbgp-2.0.0-rc3 I got an error and sim.c line 130. >>> The stream_str2level should receive char * and return the >>> stream_level_t. >>> I fixed it as follow: >>> line 130: if ((level = stream_str2level(arg)) < 0) { >>> >>> >>> _After successful compilation the make check had returned: >>> _yosefk@ov-dt-00116 ~/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3 $ make >>> check >>> Making check in src >>> ...... >>> ...... >>> ...... >>> Testing: Net Network:network add subnet >>> SUCCESS (0.0s) >>> Testing: Net Network:network add subnet (duplicate) >>> SUCCESS (0.0s) >>> Testing: Net Network:node send/bin/sh: line 5: 32114 Segmentation >>> fault ${dir}$tst >>> FAIL: cbgp-test >>> =========================================== >>> 1 of 1 test failed >>> Please report to bru...@uc... >>> =========================================== >>> make[3]: *** [check-TESTS] Error 1 >>> make[3]: Leaving directory >>> `/home/yosefk/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3/src' >>> make[2]: *** [check-am] Error 2 >>> make[2]: Leaving directory >>> `/home/yosefk/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3/src' >>> make[1]: *** [check-recursive] Error 1 >>> make[1]: Leaving directory >>> `/home/yosefk/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3/src' >>> make: *** [check-recursive] Error 1 >>> >>> Yosef Kahana, Senior Software Engineer, Oversi >>> M: +972-52-3477562 | T: +972-77-333-7771 | F: +972-3-542-3165 >>> >>> yo...@ov... |www.oversi.com >> >> >> -- >> Prof. Bruno Quoitin Networking Lab >> UMons, Belgiumhttp://informatique.umons.ac.be/networks >> Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 > > > -- > Yosef Kahana, Senior Software Engineer, Oversi > > M: +972-52-3477562 | T: +972-77-333-7771 | F: +972-3-542-3165 > > yo...@ov... |www.oversi.com -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Bruno Q. <bru...@um...> - 2011-01-09 14:35:34
|
Hi Yosef, Could you tell me which version of libgds you are using. What is your build environment (OS + version). Then, what's the exact error message you received for the first error (message from compiler). Thanks. Bruno On 09/01/11 08:56, Yosef Kahana wrote: > Dear Prof Quotin. > > When compiling cbgp-2.0.0-rc3 I got an error and sim.c line 130. > The stream_str2level should receive char * and return the stream_level_t. > I fixed it as follow: > line 130: if ((level = stream_str2level(arg)) < 0) { > > > _After successful compilation the make check had returned: > _yosefk@ov-dt-00116 ~/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3 $ make check > Making check in src > ...... > ...... > ...... > Testing: Net Network:network add subnet > SUCCESS (0.0s) > Testing: Net Network:network add subnet (duplicate) > SUCCESS (0.0s) > Testing: Net Network:node send/bin/sh: line 5: 32114 Segmentation > fault ${dir}$tst > FAIL: cbgp-test > =========================================== > 1 of 1 test failed > Please report to bru...@uc... > =========================================== > make[3]: *** [check-TESTS] Error 1 > make[3]: Leaving directory > `/home/yosefk/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3/src' > make[2]: *** [check-am] Error 2 > make[2]: Leaving directory > `/home/yosefk/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3/src' > make[1]: *** [check-recursive] Error 1 > make[1]: Leaving directory > `/home/yosefk/Tools/BGP/Simulator/BGP/cbgp-2.0.0-rc3/src' > make: *** [check-recursive] Error 1 > > Yosef Kahana, Senior Software Engineer, Oversi > M: +972-52-3477562 | T: +972-77-333-7771 | F: +972-3-542-3165 > > yo...@ov... |www.oversi.com -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Bruno Q. <bru...@um...> - 2011-01-06 17:02:51
|
Dear Yosef, Thank you for your interest. Please note that the latest (and most stable) version is 2.0.0-rc3 which is available from sourceforge at http://sourceforge.net/projects/c-bgp/ I also cc: the c-bgp mailing list on sourceforge. > Remarks: > > 1. The documentation in the WEB is of version 1.1.20, lot of > command had been added/changed/removed. if there is an updated > User Guide, I'll be happy to have it. > The documentation is outdated. We are working towards a more recent user guide. Meanwhile, some of the newest commands are documented on-line at the following URL http://cbgp.info.ucl.ac.be/doc/html/index.html. There is also a tentative tutorial on-line et http://cbgp.info.ucl.ac.be/tutorial.php > 1. All my questions are for implementing a simulated BGP networks > with several Domain. The simulated network should implement iBGP > as well as eBGP > You will find examples in the on-line tutorial. A good source for examples can also be found in the source archive under the "examples" directory. You will find examples for several scenari. > > Questions: > > 1. Topology file - I want to generate a topology file that has > several routers in the same AS. The example files describe each > router in a separated AS. > How do I set some routers in the same AS? > To do this, you will need to build routers by hand. To create a router involves several steps: net add node <addr> This will create a node modeling the router: <addr> is the identifier of the node in the simulation. The identifier is formatted as an IP address, this address will automatically be allocated as a loopback address to the router, you can prevent this with the --no-loopback option) If the node is going to belong to an IGP (interior gateway protocol), you can also create an IGP domain and add the node to this domain (this will be used to compute shortest path routes between all nodes in that domain). net add domain <id> igp net node <addr> domain <id> Note that the first command is needed only once per domain. Once all your nodes (and the links between them have been setup and configured ith an IGP weight), you can run a single command to compute the shortest paths routes between the nodes within that domain: net domain <id> compute Note that if you later change an IGP weight or change the status of an interface/link, you can call this command again to update the routes withint that domain. Finally, you will need to create a BGP router in your node: bgp add router <asn> <addr> The <asn> parameter is the AS number and <addr> is the identifier of an existing "node". > 1. Create links - the documentation describe a "net node <address> > spf-prefix <prefix>" which no longer exist. > What is the new matching command? > The "spf-prefix" as used to computer shortest paths from one node towards all the nodes matching a given prefix. This has been replaced by the concept of "IGP domain" as described above. To setup links, there are several options depending on the level of details of your model. The current c-bgp version is able to model router-to-router links, point-to-point links and LANs (we call them point-to-multipoint links). An router-to-router link is the simplest way to connect nodes. It can be created with the following command where <addr1> and <addr2> identify existing nodes. net add link <addr1> <addr2> net add link 1.0.0.1 1.0.0.2 You cannot add parallel router-to-router links. A point-to-point link is a bit more complex to setup. Network interfaces will be created on the nodes and the link will connect thoses interfaces together. Interface addresses (network / prefix_size) need to be specified for each end of the link. <addr1> and <addr2> are the node identifiers (same as above). <addr_if1> and <addr_if2> are the interface identifiers. In the following example, the network interface on node 1.0.0.1 receives address 192.168.0.1 (prefix length is 30). while the other interface receives address 192.168.0.2. net add link-ptp <addr1> <addr_if2> <addr2> <addr_if2> net add link-ptp 1.0.0.1 192.168.0.1/30 1.0.0.2 192.168.0.2/30 Note that c-bgp currently checks that both interfaces are in the same subnet. If you want to model a LAN, you first need to create the LAN, which is called a "subnet" in the c-bgp terminlogy. Then, you create links between your nodes and that LAN. A LAN is identified by a prefix and has a type (transit / stub) which is used by the IGP model to check if shortest paths can traverse that LAN (transit) or not (stub). net add subnet <prefix> <transit|subnet> net add link <addr> <addr_if> net add subnet 192.168.0.0/28 net add link 1.0.0.1 192.168.0.1/28 net add link 1.0.0.2 192.168.0.2/28 net add link 1.0.0.3 192.168.0.7/28 Note that c-bgp currently checks interfaces on the same subnet have different addresses. The above commands define "physical" links between nodes. You will also need to setup "BGP sessions" between BGP routers. This is done in a slightly different manner: suppose that you want to establish a BGP session between routers R1 and R2. You will need to setup the session on both routers (see example below). The "add peer" sub-command" defines a BGP neighbor on the router. The "peer up" command sets the session as administratively opened. The session will really be established if the two routers are reachable (you need to setup the underlying routes before, using an IGP and/or static routes). bgp router R1 add peer R2 peer R2 up bgp router R2 add peer R1 add peer R1 peer R1 up The type of the session (iBGP or eBGP) is automatically derived from the router's ASN when the session is established. > 1. Community - I would like to set communities at specific Domains. > can it be done at the domain boarder itself or should it be set > in the domain peer boarder? > It is done on a per-session basis, using filters. An example is shown below. The set of commands define a new rule in the outbound filter of router R1 for session with neighbor R2. The rules says that all routes (match any) will be added the community 100:2000 bgp router R1 peer R2 filter out add-rule match any action "community add 100:2000" > 1. eBGP - distributing routing between Domains. The command net > options igp-inter not longer exist. > what is the configure eBGP updates distribution command? > How can we filter the updates of specific networks? we would > like to distribute some networks and block others. > Using filters (example above) > 1. Router Reflector - we would like to set a router reflector in > the simulation. > How can it be done? > A router becomes a route reflector if it has BGP sessions with route-reflector clients. You can change a BGP session into a session with a client as follows bgp router R1 peer R2 rr-client That makes automatically R1 a RR. > 1. BGP listener node - we would like to set a node that is a > listener to the Router Reflector. We would like to record all > the updates deliver to this listener and to dump it to a file. > Please advise about this issue. > bgp router R1 peer R2 record <file> > 1. Thanks for the support. > Hope this helps Please tell me if you need additional support (We have in-house scripts and applications that allow to more easily setup c-bgp models using real network data). And finally, I would appreciate if you can describe a bit more what's your exact application ? Regards, Bruno -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Bruno Q. <bru...@um...> - 2010-12-16 20:15:55
|
*Dear Palani,* The syntax has slightly changed since version 1.4. Unfortunately, there is no up-to-date documentation. However, have a look at file "examples/example-net-export.cli" in the c-bgp source archive. It uses BGP filters extensively and is a good start to discover the filter syntax. In case of doubt, please contact me again. Regards, Bruno * [C-bgp-users] Filters in cbgp-2.0.0 rc <https://sourceforge.net/mailarchive/message.php?msg_id=26759366>* Delete <https://sourceforge.net/mailarchive/exclude_list.php?action=addexclude&group_id=276050&forum_name=c-bgp-users&msg_name=AANLkTim7QsF%2BhzrsiPGJm-a%3D-%2BEi2wdAvLDO2F3UqcE2%40mail.gmail.com> From: Palani kodeswaran <palani.k@gm...> - 2010-12-09 00:07 *Attachments:* Message as HTML <https://sourceforge.net/mailarchive/attachment.php?list_name=c-bgp-users&message_id=AANLkTim7QsF%2BhzrsiPGJm-a%3D-%2BEi2wdAvLDO2F3UqcE2%40mail.gmail.com&counter=1> Hello, Is the filter add-rule syntax the same in CBGP 1.4 and CBGP 2. Also, where can I find documentation on filters for CBGP 2. Thanks, Palani. -- Prof. Bruno Quoitin Networking Lab UMons, Belgium http://informatique.umons.ac.be/networks Phone: ++32 65 37 34 48 GSM: ++32 498 28 12 21 |
From: Palani k. <pal...@gm...> - 2010-12-11 00:07:53
|
Hello, Is the filter add-rule syntax the same in CBGP 1.4 and CBGP 2. Also, where can I find documentation on filters for CBGP 2. Thanks, Palani. |
From: Palani k. <pal...@gm...> - 2010-12-09 00:07:30
|
Hello, Is the filter add-rule syntax the same in CBGP 1.4 and CBGP 2. Also, where can I find documentation on filters for CBGP 2. Thanks, Palani. |
From: Bruno Q. <bru...@um...> - 2010-11-29 11:00:09
|
Dear Palani, [The new mailing-list is now on sourceforge] The conversion depends on the c-bgp version you are using. In the past, it was a fixed conversion were the ASN was used in the two most significant bytes of the IP address, the two least significant bytes were 0. For example, ASN7018 would have a single router with address 27.106.0.0 (since 7018=27*256 + 106). With c-bgp 2.0.0 the ASN <->IP address mapping can be configured through so-called addressing schemes. The default behaviour is the same as past version however. The addressing scheme can be mentionned as an option to the "bgp topology load" command. Only two schemes are possible today: "default" (7018 -> 27.106.0.0) and "local" (7018 -> 0.0.27.106). The second one was introduced to better control where router addresses were located (always in prefix 0.0/16) and avoid routing perturbations where, for example, a BGP prefix advertisement would change the way two routers can reach each other. Cheers, Bruno -------- Original Message -------- Subject: [cbgp] Node addresses from AS numbers while using bgp load topology Date: Mon, 29 Nov 2010 02:34:04 -0500 From: Palani kodeswaran <pal...@gm...> To: cbg...@li... Hello, I am trying to understand how AS numbers in a topology file used in "bgp topology file" are assigned IP addresses. For example, what ip would AS 7018 map to. Thanks, Palani. |