lukasz.bromirski.net
kolejny taniec w cyrku zdarzeń
ip sla i shell scripting
30/05/09 o 01:05:31 pmmiał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
! teraz routing domyślny per VRF - po drugiej stronie są IP 4900M
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ć :)
jakieś inne pomysły? czekam na komentarze.
Brak komentarzy
RSS feed for comments on this post.
Sorry, the comment form is closed at this time.
powered by FreeBSD, WordPress and GimpStyle Theme.
(c)2010 Lukasz Bromirski
38.107.191.89
CCBot/1.0 (+http://www.commoncrawl.org/bot.html)