Here is the GNS3 Topology for this blog post:
For the moment let us ignore Ostinato and the Cloud parts of our topology and initially concentrate on building the network infrastructure.
- OSPF is the IGP
- PIM is enabled on all inter-router interfaces
- Candidate BSRs are R3 (Priority 100) and R4 (Priority 90) – R3 should become the BSR (Like Basketball, highest wins)
- Candidate RPs for 224.0.0.0/4 are R2 (Priority 90) and R4 (Priority 100) – R2 should become the RP (Like Golf, lowest wins)
/configure
system
name "R1"
exit
card 1
card-type iom3-xp-b
mda 1
mda-type m5-1gb-sfp-b
no shutdown
exit
no shutdown
exit
port 1/1/1
ethernet
exit
no shutdown
exit
port 1/1/3
ethernet
exit
no shutdown
exit
port 1/1/4
ethernet
exit
no shutdown
exit
router
interface "R2"
address 10.1.2.1/27
port 1/1/1
no shutdown
exit
interface "R3"
address 10.1.3.1/27
port 1/1/3
no shutdown
exit
interface "R5"
address 10.1.5.1/27
port 1/1/4
no shutdown
exit
interface "system"
address 10.10.10.1/32
no shutdown
exit
ospf 0
area 0.0.0.0
interface "system"
no shutdown
exit
interface "R2"
no shutdown
exit
interface "R3"
no shutdown
exit
interface "R5"
no shutdown
exit
exit
no shutdown
exit
pim
interface "system"
exit
interface "R2"
exit
interface "R3"
exit
interface "R5"
exit
no shutdown
bsr-candidate
shutdown
exit
rp-candidate
shutdown
exit
exit
exit all
/configure
system
name "R2"
exit
card 1
card-type iom3-xp-b
mda 1
mda-type m5-1gb-sfp-b
no shutdown
exit
no shutdown
exit
port 1/1/1
ethernet
exit
no shutdown
exit
port 1/1/2
ethernet
exit
no shutdown
exit
port 1/1/3
ethernet
exit
no shutdown
exit
router
interface "R1"
address 10.1.2.2/27
port 1/1/1
no shutdown
exit
interface "R4"
address 10.2.4.2/27
port 1/1/3
no shutdown
exit
interface "R5"
address 10.2.5.2/27
port 1/1/2
no shutdown
exit
interface "system"
address 10.10.10.2/32
no shutdown
exit
ospf 0
area 0.0.0.0
interface "system"
no shutdown
exit
interface "R1"
no shutdown
exit
interface "R4"
no shutdown
exit
interface "R5"
no shutdown
exit
exit
no shutdown
exit
pim
interface "system"
exit
interface "R1"
exit
interface "R4"
exit
interface "R5"
exit
rp
static
exit
bsr-candidate
shutdown
exit
rp-candidate
address 10.10.10.2
group-range 224.0.0.0/4
priority 90
no shutdown
exit
exit
no shutdown
exit
exit all
/configure
system
name "R3"
exit
card 1
card-type iom3-xp-b
mda 1
mda-type m5-1gb-sfp-b
no shutdown
exit
no shutdown
exit
port 1/1/1
ethernet
exit
no shutdown
exit
port 1/1/3
ethernet
exit
no shutdown
exit
router
interface "R1"
address 10.1.3.3/27
port 1/1/3
no shutdown
exit
interface "R4"
address 10.3.4.3/27
port 1/1/1
no shutdown
exit
interface "system"
address 10.10.10.3/32
no shutdown
exit
ospf 0
area 0.0.0.0
interface "system"
no shutdown
exit
interface "R1"
no shutdown
exit
interface "R4"
no shutdown
exit
exit
no shutdown
exit
pim
interface "system"
exit
interface "R1"
exit
interface "R4"
exit
rp
static
exit
bsr-candidate
priority 100
address 10.10.10.3
no shutdown
exit
rp-candidate
shutdown
exit
exit
no shutdown
exit
exit all
/configure
system
name "R4"
exit
card 1
card-type iom3-xp-b
mda 1
mda-type m5-1gb-sfp-b
no shutdown
exit
no shutdown
exit
port 1/1/1
ethernet
exit
no shutdown
exit
port 1/1/3
ethernet
exit
no shutdown
exit
router
interface "R2"
address 10.2.4.4/27
port 1/1/3
no shutdown
exit
interface "R3"
address 10.3.4.4/27
port 1/1/1
no shutdown
exit
interface "system"
address 10.10.10.4/32
no shutdown
exit
ospf 0
area 0.0.0.0
interface "system"
no shutdown
exit
interface "R2"
no shutdown
exit
interface "R3"
no shutdown
exit
exit
no shutdown
exit
pim
interface "system"
exit
interface "R2"
exit
interface "R3"
exit
rp
static
exit
bsr-candidate
priority 90
address 10.10.10.4
no shutdown
exit
rp-candidate
address 10.10.10.4
group-range 224.0.0.0/4
priority 100
no shutdown
exit
exit
no shutdown
exit
exit all
/configure
system
name "R5"
exit
card 1
card-type iom3-xp-b
mda 1
mda-type m5-1gb-sfp-b
no shutdown
exit
no shutdown
exit
port 1/1/2
ethernet
exit
no shutdown
exit
port 1/1/3
ethernet
exit
no shutdown
exit
router
interface "R1"
address 10.1.5.5/27
port 1/1/3
no shutdown
exit
interface "R2"
address 10.2.5.5/27
port 1/1/2
no shutdown
exit
interface "system"
address 10.10.10.5/32
no shutdown
exit
ospf 0
area 0.0.0.0
interface "system"
no shutdown
exit
interface "R1"
no shutdown
exit
interface "R2"
no shutdown
exit
exit
no shutdown
exit
pim
interface "R1"
exit
interface "R2"
exit
rp
static
exit
bsr-candidate
shutdown
exit
rp-candidate
shutdown
exit
exit
no shutdown
exit
exit all
Initial Multicast Verification:
A:R4# show router pim status | match " BSR" post-lines 5
BSR State : Candidate BSR
Elected BSR
Address : 10.10.10.3
Expiry Time : 0d 00:01:15
Priority : 100
Hash Mask Length : 30
Up Time : 0d 00:06:58
Candidate BSR
Admin State : Up
Oper State : Up
Address : 10.10.10.4
Priority : 90
Hash Mask Length : 30
Although R4 was a possible BSR, it knows R3 has the job.
Regarding the RP? Well the BSR sends all RP candidates and lets the PIM enabled routers decide themselves – in this case, lowest priority (R2) will be what matters
A:R1# show router pim rp
===============================================================================
PIM RP Set ipv4
===============================================================================
Group Address Hold Expiry
RP Address Type Prio Time Time
-------------------------------------------------------------------------------
224.0.0.0/4
10.10.10.2 Dynamic 90 150 0d 00:02:06
10.10.10.4 Dynamic 100 150 0d 00:02:06
-------------------------------------------------------------------------------
Group Prefixes : 1
===============================================================================
So lets look at Ostinato.
There are two parts to it
- the Drone (Server that generates/receives traffic) which is a virtual appliance in my GNS3 topology
- the GUI which is running on my desktop and connects over the network to the Drone
What may not be obvious is that I run GNS3 on a separate device (an desktop pc given 16GB of ram which runs Ubuntu and starts the GNS3 server upon bootup) as a remote server which I connect to via the GNS3 GUI on my PC.
The Ubuntu Server /etc/network/interfaces configuration is a little different to most as a bridge interface is used rather than the eth0 interface directly:
adam@gns3:~$cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
iface eth0 inet manual
auto pnet0
iface pnet0 inet dhcp
bridge_ports eth0
bridge_stp off
This comes in handy because I can then add other interfaces to the bridge and be part of the same IP subnet. The follow command makes sure the gns3 user (which the GNS3 server application runs as) can control the tunnel interface (tap0) and it is added to bridge pnet0 and is enabled.
adam@gns3:~$cat /etc/rc.local
tunctl -u gns3
brctl addif pnet0 tap0
ifconfig tap0 up
exit 0
Within GNS3, a cloud that is attached to nio_tap:tap0 is created and the link is attached to the Ostinato VM interface e0.
Lets fire up the Ostinato VM (I downloaded it from Bernhard Ehlers’s site – I use the qcow2 version because I’m running it as a qemu app) and see if it has world connectivity:
Core Linux
username 'gns3', password 'gns3'
Run filetool.sh -b if you want to save your changes
box login: tc
login: can't change directory to '/home/tc'
( '>')
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\) www.tinycorelinux.net
tc@box:/$ netstat -l | grep tcp
tcp 0 0 0.0.0.0:7878 0.0.0.0:* LISTEN
tc@box:/$tc@box:/$ ifconfig eth0 | grep "inet addr"
inet addr:192.168.1.66 Bcast:192.168.1.255 Mask:255.255.255.0
tc@box:/$ ping 8.8.4.4 -c 5
PING 8.8.4.4 (8.8.4.4): 56 data bytes
64 bytes from 8.8.4.4: seq=0 ttl=55 time=25.842 ms
64 bytes from 8.8.4.4: seq=1 ttl=55 time=25.151 ms
64 bytes from 8.8.4.4: seq=2 ttl=55 time=24.438 ms
64 bytes from 8.8.4.4: seq=3 ttl=55 time=25.739 ms
64 bytes from 8.8.4.4: seq=4 ttl=55 time=25.540 ms
--- 8.8.4.4 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 24.438/25.342/25.842 ms
The Ostinato drone is on our network and ready to rock, we can see the drone is listening on tcp port 7878 for the Ostinato GUI and it has reachability on the LAN to the router and off to the wild and woolly internet.
The Next Post will focus on connecting Ostinato up to the topology and using it to play with multicast.
We shall:
- Connect he Ostinato GUI to the Drone
- Create Virtual Devices in Ostinato to appear as ARP/ICMP responders to the network
- Create a multicast stream (Mac/EthII/IPv4/UDP) to be sent to the network
- Create streams which send IGMP reports to the network so the network will forward multicast packets to those ports
Recent Comments