i had a problem yesterday - i needed to generate at least a dozen packets per second minimum between two connected devices (without ability to insert PC or traffic generator between them - that was Catalyst 3550 and 4900M). traffic needed to be exchanged over a time frame of several hours, so ping from console line wasn’t feasible either.
the solution was pretty straightfoward - ip sla.
as Catalyst 4900M was to be under test, on Catalyst 3550 i created two VRFs:
ip vrf TEST100
rd 100:100
ip vrf TEST200
rd 200:200
then on Fa0/17 and Fa0/18 of Catalyst 3550 i created IP interfaces and added VRF routing information:
interface fa0/17
no switchport
ip vrf forwarding TEST100
ip address 10.10.100.254 255.255.255.0
interface fa0/18
no switchport
ip vrf forwarding TEST200
ip address 10.10.200.254 255.255.255.0
ip route vrf TEST100 0.0.0.0 0.0.0.0 10.10.100.1
ip route vrf TEST200 0.0.0.0 0.0.0.0 10.10.200.1
on the Catalyst 4900M side config was pretty similar, minus the VRF trick:
interface Gi2/1
no switchport
ip address 10.10.100.1 255.255.255.0
interface Gi2/2
no switchport
ip address 10.10.200.1 255.255.255.0
ip routing
so i had “lab” setup running, the only thing left was IP SLA. as Catalyst 3550 can generate maximum of 1pps for single IP SLA, i had to generate couple of them. so, shell-level scripting came to rescue:
#!/usr/local/bin/bash
echo > ipsla_vrf.txt
for (( x=100; x<=199; x++ ))
do
echo "ip sla $x" >> ipsla_vrf.txt
echo " icmp-echo 10.10.200.254 source-ip 10.10.100.254" >> ipsla_vrf.txt
echo " request-data-size 1400" >> ipsla_vrf.txt
echo " timeout 15" >> ipsla_vrf.txt
echo " vrf TEST100" >> ipsla_vrf.txt
echo " frequency 1" >> ipsla_vrf.txt
echo "ip sla schedule $x life forever start-time now" >> ipsla_vrf.txt
echo " " >> ipsla_vrf.txt
done
for (( x=200; x<=299; x++ ))
do
echo "ip sla $x" >> ipsla_vrf.txt
echo " icmp-echo 10.10.100.254 source-ip 10.10.200.254" >> ipsla_vrf.txt
echo " request-data-size 1400" >> ipsla_vrf.txt
echo " timeout 15" >> ipsla_vrf.txt
echo " vrf TEST200" >> ipsla_vrf.txt
echo " frequency 1" >> ipsla_vrf.txt
echo "ip sla schedule $x life forever start-time now" >> ipsla_vrf.txt
echo " " >> ipsla_vrf.txt
done
once you have it in the ipsla_vrf.txt
file, you can copy & paste it to Catalyst 3550 console. while it generated 30% CPU load when starting, it was solid 200 probes per second. that was quick, dirty and made all the difference i needed at the moment.