Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: ch3mik 26. 11. 2010, 12:25:07
-
Zdravím, potřevoval bych poradit postup jak zachytit určitý počet paketů a ty pak posílat znova, přesně tak jak přišly. Potřebuji testovat software pro netflow, kterému chci posílat zkušebně stejný počet a obsah paketů.
-
Co zkusit Packet generator v kernelu?
CONFIG_NET_PKTGEN:
Packet Generator
Location:
-> Networking support (NET [=y])
-> Networking options
-> Network testing
Není to přesně, co potřebujete, ale možná by se to dalo použít.
-
Standardní cestou jak toto udělat je použít tcpdump pro zachycení a tcpreplay pro odeslaní (Případně můžeš pomocí tcpreplay-edit měnit některé položky paketů při vysílání).
-
Díky, zdá se že je to ono, ale ačkoliv tcpdump vidí správně pakety přeposlané znova tcpreplay, onen program je nevidí. Nenapadá vás proč?
Díky
Standardní cestou jak toto udělat je použít tcpdump pro zachycení a tcpreplay pro odeslaní (Případně můžeš pomocí tcpreplay-edit měnit některé položky paketů při vysílání).
-
Asi hloupa otazka, ale sedi adresa a port? Co tak hodit vystup z tcpdump-u i netstat -ln ?
-
Asi hloupa otazka, ale sedi adresa a port? Co tak hodit vystup z tcpdump-u i netstat -ln ?
dělám to takto:
zachytím pár paketů
tcpdump -nn -i eth0 -xx -s 0 -w record udp port 1234
a potom přehrávám
tcpreplay -i eth0 record
toto dělám v jedné konzoli
v druhé mám spuštěný onen program, poslouchá na portu 1234 udp protokol
pokud nechám pakety přicházet zvenku, program na ně normálně reaguje,
pak vypnu odesílání zvenku, a spustím ten tcpreplay ale program nic nevidí.
když ale v této konzoli poslouchám tcpdumpem (tcpdump -nn -i eth0 udp port 1234)
vidím pakety přicházet úplně stejně jak z vnějšího zdroje, tak pakety odeslané tcpreplayem
-
A eth0 je pripojen k cemu? Zkusil bych to poslat na nejaky loopback nebo modifikoval l2 hlavicku, mozna to neprojde pres ten switch (ocekaval bych, ze ten druhy tcpdump by mel packety videt na eth0 2x, jednou jako odeslane podruhe jako prijate).
-
eth0 je připojen do switche. Zkoušel jsem změnit program aby poslouchal na loopbacku a poslat to přes něj, ale chová se to stejně. tcpdump pakety vidí, program ne.
Problém asi musí být v tom, že tcpreplayem ten provoz generuji na cílovém stroji.
tcpdump (při tcpreplayi) ukáže přesně to samé, jako když provoz přichází zvenku, z originálního zdroje. Zkoušel jsem nasadit různá iptables pravidla (na INPUT a OUTPUT), abych ty pakety viděl, ale nic.
Pak jsem ještě zkusil ten nahraný provoz odesílat z jiného stroje, zkusil jsem změnit zdrojovou ip adresu na tu ip adresu toho jiného stroje - tak aby to vypadalo správně:
tcpprep --auto=router --pcap=record --cachefile=input.cache
tcprewrite --endpoints=62.240.184.2:62.240.184.74 --cachefile=input.cache --infile=record --outfile=output.pcap
masky obou pc jsou /30, takze jsou za routerem. Na PC "62.240.184.2" spouštím
tcpreplay -i eth0 output.pcap
a opět, ačkoliv tcpdumpem (na tom novém PC) vidím provoz odcházet správně, na cílovém pc nevidím nic (tentokrát ani tcpdumpem)
tcpdump na cílovém PC (s programem) - toto vidím, když pakety přichází z vnějšího zdroje (88.146.151.213) ale i při tcpreplayi spuštěném na tomto pc
10:45:23.655911 IP 88.146.151.213.1234 > 62.240.184.74.1234: UDP, length 1464
10:45:23.655916 IP 88.146.151.213.1234 > 62.240.184.74.1234: UDP, length 1464
10:45:23.656502 IP 88.146.151.213.1234 > 62.240.184.74.1234: UDP, length 408
tcpdump na novém PC (62.240.184.2) po přepsání zdrojové IP (bohužel cílové pc nic nevidí):
10:17:40.417416 IP 62.240.184.2.1234 > 62.20.184.74.1234: UDP, length 1464
10:17:40.417630 IP 62.240.184.2.1234 > 62.20.184.74.1234: UDP, length 1464
10:17:40.417638 IP 62.240.184.2.1234 > 62.20.184.74.1234: UDP, length 168
Teď nevím jak dál. Zkuste mi něco ještě poradit, případně úplně jiný postup. Koukal jsem na packet generator dle rady Ahmula, obě PC jsou na CentOS, bylo by celkem komplikované to na nich rozeběhnout, a výsledek je nejistý.
-
Jak rikam, pravdepodobne pakety z ciloveho stroje odchazi (to je to co vidno pres tcpdump) na switch, ale uz se nevraci (jestli by se vraceli, kazdy paket by mel byt videt jeste jednou).
Zkusil bych zmenit ne L3 (IP) adresy, tech bych se nedotykal, ale L2 (MAC), mozna s nima ma ten switch problem - i kdyz dost dobre nevim proc (spoofing protection?).
Btw, proc je jednou jako cil 62.240.184.74:1234 a jednou 62.20.184.74:1234? Jaka je maska site?