miałem wczoraj problem - na szybko potrzebowałem wygenerować minimum paręnaście pakietów na sekundę pomiędzy dwoma urządzeniami (konkretnie - przełącznikiem 3550 i 4900M), a oba stały sobie daleko od różnych przyjaznych serwerów z hpingiem, pingiem z opcją milisekundowego zalewania ruchem, etc. zadanie nie było banalne, bo ten ruch miał trwać parę godzin, więc ping z linii poleceń nie jest szczególnie przydatny.
rozwiązanie było w miarę oczywiste - ip sla.
ponieważ to 4900M miał być testowany, na 3550 wygenerowałem dwa VRFy:
ip vrf TEST100
rd 100:100
ip vrf TEST200
rd 200:200
następnie na interfejsach Fa0/17 i Fa0/18 przełącznika 3550 dodałem interfejsy IP i routing w VRFach:
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
po stronie 4900M należało wykonać podstawową konfigurację routingu - bo tutaj żadne VRFy nie są potrzebne:
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
i w zasadzie to tyle jeśli chodzi o ’lab’ - pozostało wygenerować próbki ip sla. niestety, minimalna częstotliwość wysyłania próbek na 3550 to skromna 1 sekunda, zatem trzeba było ich wygenerować ’trochę’. na szybko przyszedł mi do głowy tylko pomysł ze zrobieniem tego z automatu:
#!/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
ten skrypt generuje do pliku ipsla_vrf.txt
gotowe polecenia, które następnie wrzucić można z terminala do 3550 - przy obciążeniu 30% CPU dla tych 200 próbek, daje to już ‘jakiś’ ruch. oczywiście ani 3550 nie jest specjalnie atrakcyjny jako generator próbek IP SLA (słaby procesor), ani sam ’test’ nie był szczególnie wymagający, ale trochę więcej niż 1 pakiet na sekundę udało się uzyskać :)