Łukasz B.

Łukasz B. Business
Applications
Consultant

Temat: [ubuntu, iperf] Wyjście ruchem przez eth0 -> powrót eth1

Witam

Chce przeprowadzić test wydajności urządzenia sieciowego (ruter, switch itp.).

OS: Ubuntu 11.04 x64

Mam między innymi do dyspozycji interfejsy eth 0-3. Używam programu np. iperf (jper), binduję IP do interfejsów.

Schemat:

eth0 192.168.9.1/24 (serwer iperf) - patchcord - testowane urządzenie - patchcord - eth1 192.168.9.2/24 (client iperf)

Wyniki otrzymane (64Gb/s) wskazują, że generowany ruch nie przechodzi przez testowane urządzenie a sam test odbywa się "lokalnie".

Czy macie jakieś propozycje co można zrobić, żeby wymusić wyjście ruchu z eth0, przejście przez testowane urządzenie i powrót przez eth1? Ten sam test wykonywany na systemie windows 7x64 działa poprawnie, natomiast na windowsie xp pojawia się ten sam problem co na ubuntu.

Ps. Nie mogę wykorzystać dwóch stacji do testu.

Pozdrawiam.
Stanisław P.

Stanisław P. Software designer

Temat: [ubuntu, iperf] Wyjście ruchem przez eth0 -> powrót eth1

Jak wywołujesz iperf? Z odpowiednią opcją "-B ..." powinien się zbindować do konkretnego interfejsu.

A jak nie działa, to ze ścieżek wywal route dla ip na którym jest serwer - pakiety powinny wyjść przez default gateway który możesz ustawić...
Adrian Czerniak

Adrian Czerniak Administrator
Systemów Uniksowych

Temat: [ubuntu, iperf] Wyjście ruchem przez eth0 -> powrót eth1

Linux po ARP rozpozna, że oba MAC ma lokalnie. Użyj VLAN.
Łukasz B.

Łukasz B. Business
Applications
Consultant

Temat: [ubuntu, iperf] Wyjście ruchem przez eth0 -> powrót eth1

Adrian Czerniak:
Linux po ARP rozpozna, że oba MAC ma lokalnie. Użyj VLAN.

Dziękuję za wskazówkę.

Czy mógłbyś jednak dokładniej objaśnić mi jak mam skonfigurować VLANy żeby serwer iperfa połączył się z clientem na innym interfejsie chcąc przetestować np. przełącznik.
Adrian Czerniak

Adrian Czerniak Administrator
Systemów Uniksowych

Temat: [ubuntu, iperf] Wyjście ruchem przez eth0 -> powrót eth1

Nie chodzi o samego iperfa, a o routing wewnątrz kernela.
VLANy konfiguruje się narzędziem vconfig. Nie będę przepisywał jak, bo to jest opisane w dokumentacji.

Temat: [ubuntu, iperf] Wyjście ruchem przez eth0 -> powrót eth1

Ciekawy problem:)

Dlaczego system miałby wyrzucać pakiety przez sieciówki, skoro oba adresy ma u siebie? Już pomijam, że są z jednej podsieci.

Moja konfiguracja to:
eth0: 192.168.122.2/24
eth1: 10.0.1.1/24

root@vDebian:~# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default

Najwyższy priorytet ma tablica local, a w niej m.in:

root@vDebian:~# ip ro list table local
local 192.168.122.2 dev eth0 proto kernel scope host src 192.168.122.2
local 10.0.1.1 dev eth1 proto kernel scope host src 10.0.1.1
...

Nasza właściwa tablica routingu będzie dopiero w tablicy main:

root@vDebian:~# ip ro list table main
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.2
default via 192.168.122.1 dev eth0

Wychodzi na to, że możemy ją sobie modyfikować do bólu, zakładać wirtualne interfejsy i vlany... wszystko marność;) Moglibyśmy pokusić się o modyfikacje tablicy local, ale... usunięcie z niej wpisu o adresie interfejsu pozbawi go podstawowej funkcjonalności...

Kombinuję sobie, że fajnie byłoby mieć sieć, której nasz system nie "ma u siebie", a którą dodam do routingu:

root@vDebian:~# ip ro add 192.168.1.0/24 dev eth1
root@vDebian:~# sysctl -w net.ipv4.conf.all.forwarding=1

I teraz:

root@vDebian:~# ping 192.168.1.1 -I 192.168.122.2
PING 192.168.1.1 (192.168.1.1) from 192.168.122.2 : 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=149 time=11.0 ms

W efekcie czego:

root@vDebian:~# tcpdump -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
00:02:04.727632 IP 192.168.122.2 > 192.168.1.1: ICMP echo request, id 2246, seq 21, length 64

root@vDebian:~# tcpdump -i eth0 | grep -v ssh
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
00:02:34.769697 IP 192.168.1.1 > 192.168.122.2: ICMP echo reply, id 2246, seq 51, length 64
00:02:35.771085 IP 192.168.1.1 > 192.168.122.2: ICMP echo reply, id 2246, seq 52, length 64

Choć pewnie do zadanego w pytaniu testu trzeba będzie nagłowić się bardziej.

Następna dyskusja:

install ubuntu na sun sparc...




Wyślij zaproszenie do