Step 4. BGP Scenario with I-BGP over directly-connected BGP speakers¶
Goals¶
[explanation]
Configuration¶
This step uses the following network:
network BGP_Topology_2
{
@display("bgb=1238.76,594.405");
submodules:
configurator: Ipv4NetworkConfigurator {
@display("p=93,44");
}
visualizer: IntegratedMultiCanvasVisualizer {
@display("p=243.2025,43.536247");
}
RB2: Router {
@display("p=699.3,174.825");
}
RC1: Router {
@display("p=872.46,392.94");
}
RC2: Router {
@display("p=964.035,344.655");
}
RC3: Router {
@display("p=964.035,444.555");
}
RB1: Router {
@display("p=491.175,174.825");
}
RA4: Router {
@display("p=349.79123,400.83374");
}
RA2: Router {
@display("p=244.70375,342.285");
}
RA3: Router {
@display("p=244.70375,442.86874");
}
RA1: Router {
@display("p=153.1275,393.32748");
}
RC4: Router {
@display("p=1048.95,392.94");
}
switch1: EtherSwitch {
@display("p=54.045,391.82623");
}
switch2: EtherSwitch {
@display("p=244.70375,250.70874");
}
switch3: EtherSwitch {
@display("p=244.70375,534.445");
}
switch4: EtherSwitch {
@display("p=964.035,246.42");
}
switch5: EtherSwitch {
@display("p=964.035,527.805");
}
switch6: EtherSwitch {
@display("p=1158.84,391.275");
}
host0: StandardHost {
@display("p=53.28,251.415");
}
host1: StandardHost {
@display("p=1158.84,261.405");
}
connections:
RC1.ethg++ <--> Eth100M <--> RC2.ethg++;
RC1.ethg++ <--> Eth100M <--> RC3.ethg++;
RB2.ethg++ <--> Eth100M <--> RC1.ethg++;
RB1.ethg++ <--> Eth100M <--> RA4.ethg++;
RA4.ethg++ <--> Eth100M <--> RA2.ethg++;
RA3.ethg++ <--> Eth100M <--> RA4.ethg++;
RA2.ethg++ <--> Eth100M <--> RA1.ethg++;
RA1.ethg++ <--> Eth100M <--> RA3.ethg++;
RC4.ethg++ <--> Eth100M <--> RC2.ethg++;
RC3.ethg++ <--> Eth100M <--> RC4.ethg++;
switch1.ethg++ <--> Eth100M <--> RA1.ethg++;
RA2.ethg++ <--> Eth100M <--> switch2.ethg++;
RA3.ethg++ <--> Eth100M <--> switch3.ethg++;
RC2.ethg++ <--> Eth100M <--> switch4.ethg++;
RC3.ethg++ <--> Eth100M <--> switch5.ethg++;
RC4.ethg++ <--> Eth100M <--> switch6.ethg++;
switch1.ethg++ <--> Eth100M <--> host0.ethg++;
switch6.ethg++ <--> Eth100M <--> host1.ethg++;
RB2.ethg++ <--> Eth100M <--> RB1.ethg++;
}
The configuration in omnetpp.ini
is the following:
[Config Step4]
description = "BGP Scenario with I-BGP over directly-connected BGP speakers"
network = BGP_Topology_2
# adding default routes in RA4 and RC1 and ask OSPF to distribute it within the AS
*.configurator.config = xml("<config> \
<interface hosts='RA4' names='eth0' address='192.168.x.x' netmask='255.x.x.x'/> \
<interface hosts='RB1' names='eth0' address='192.168.x.x' netmask='255.x.x.x'/> \
\
<interface hosts='RB2' names='eth0' address='192.168.x.x' netmask='255.x.x.x'/> \
<interface hosts='RC1' names='eth2' address='192.168.x.x' netmask='255.x.x.x'/> \
\
<interface among='host0 RA*' address='10.x.x.x' netmask='255.x.x.x'/> \
<interface hosts='RA*' address='10.x.x.x' netmask='255.x.x.x'/> \
\
<interface among='RB1 RB2' address='20.x.x.x' netmask='255.x.x.x'/> \
\
<interface among='host1 RC*' address='30.x.x.x' netmask='255.x.x.x'/> \
<interface hosts='RC*' address='30.x.x.x' netmask='255.x.x.x'/> \
\
<route hosts='RA4' destination='*' netmask='0.0.0.0' interface='eth0' /> \
<route hosts='RC1' destination='*' netmask='0.0.0.0' interface='eth2' /> \
<route hosts='host*' destination='*' netmask='0.0.0.0' interface='eth0' /> \
</config>")
# OSPF configuration
*.RB{1,2}.hasOspf = false
*.R*.hasOspf = true
*.R*.ospf.ospfConfig = xmldoc("OSPFConfig_IBGP.xml")
*.RA4.ipv4.routingTable.routerId = "10.0.0.5"
*.RC1.ipv4.routingTable.routerId = "30.0.0.5"
# BGP configuration
*.RA4.hasBgp = true
*.RB1.hasBgp = true
*.RB2.hasBgp = true
*.RC1.hasBgp = true
*.R*.bgp.bgpConfig = xmldoc("BGPConfig_IBGP.xml")
# enable OSPF redistribution
*.RA4.bgp.redistributeOspf = "O IA"
*.RC1.bgp.redistributeOspf = "O IA"
The BGP configuration:
<?xml version="1.0" encoding="ISO-8859-1"?>
<BGPConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="BGP.xsd">
<TimerParams>
<connectRetryTime> 120 </connectRetryTime>
<holdTime> 180 </holdTime>
<keepAliveTime> 60 </keepAliveTime>
<startDelay> 60 </startDelay>
</TimerParams>
<AS id="64500">
<!--router RA4-->
<Router interAddr="10.0.0.1" />
</AS>
<AS id="64600">
<!--router RB1-->
<Router interAddr="20.0.0.2" >
<Network address='20.0.0.0' />
</Router>
<!--router RB2-->
<Router interAddr="20.0.0.1" >
<Network address='20.0.0.0' />
</Router>
</AS>
<AS id="64700">
<!--router RC1-->
<Router interAddr="30.0.0.1" />
</AS>
<!--bi-directional E-BGP session between RA4 and RB1-->
<Session id="1">
<Router exterAddr="192.168.0.6"/>
<Router exterAddr="192.168.0.5"/>
</Session>
<!--bi-directional E-BGP session between RB2 and RC1-->
<Session id="2">
<Router exterAddr="192.168.0.1"/>
<Router exterAddr="192.168.0.2"/>
</Session>
</BGPConfig>
Results¶
[explanation]
Sources: BGP_Topology_2.ned
,
omnetpp.ini
,
OSPFConfig_IBGP.xml
,
BGPConfig_IBGP.xml