iptables guruk!
rtmpdump egy udp://239.0.1.23:1234 multicast cimre kuldi a csomagokat.
Cel az lenne, hogy ideiglenesen ezt "atiranyitsuk" mondjuk ugyanezen IP "5678" portjara. Majd bizonyos ido utan vissza.
Az rtmpdump folyamat nem szakadhat meg!
az atiranyitas utan letiltanam a hoston a kimeno 1234 udp portot bizonyos okokbol, remelem az rtmpdump nem szall el igy "permission denied" hgibaval, peldaul igy:
"av_interleaved_write_frame(): Operation not permitted
Error writing trailer of udp://239.0.1.23:1234: Operation not permitted"
iptables-re gondoltam, de elkelne itt segitseg.
kosz
(ui.: az is egy kerdes, hogy multicast traffic-ot hogy lehet mirrorozni egy masik portra legegyszerubben?)
- 275 megtekintés
Hozzászólások
Sajna ez nem megy a legujabb Ubuntun (allitplag CentOS-on megy):
iptables -t mangle -A PREROUTING -p UDP --dport 1234 -j TEE --gateway 127.0.0.2
iptables -t nat -A PREROUTING -d 127.0.0.2 -p UDP --dport 1234 -j DNAT --to 239.0.1.23:5678
Mintha muticastra nemmukodne.
Esely a ROUTE target eseteben?
Ezt dobja:
admin@master:~$ iptables -A PREROUTING -t mangle -p udp -m udp --dport 7 -j ROUTE --gw 1.2.3.4 --tee
iptables v1.8.7 (nf_tables): unknown option "--gw"
- A hozzászóláshoz be kell jelentkezni
A multicast nem arról szól, hogy UDP bombázást csinálunk target unicast cím helyett multicast címre. Mi a helyzet az IGMP csomagokkal?
- A hozzászóláshoz be kell jelentkezni
Kerdesek en (is) tettem fel :)
Nezzuk akkor maskeppen. A vegso targetnek mindenkeppen multicastnak kell lennie, ugyanis tobb kliens veszi a csomagokat egyidoben.
Ha az rtmpdump mondjuk localhostra kuld, majd valahogy iptables ruleokkal multicast a vegallapot, az is udvozito...(ha itt igmp-t is meg kell oldani, hat probaljuk meg..)
Vagy valami mas otlet....
- A hozzászóláshoz be kell jelentkezni
Az iptables szabály ugyanazon gépen lenne kiadva, mint aki küldi az rtmp-t? Ha igen akkor PREROUTING helyett az OUTPUT láncban kellene editálni a portot. Ha nem így van, akkor hogy néz ki a topológia?
- A hozzászóláshoz be kell jelentkezni
Igen, a rtmpdump es a iptables ugyanazon gepen fut.
Mire gondolsz az "editalasnal"?
- A hozzászóláshoz be kell jelentkezni
Pl. port átírás. A kimenő csomagok csak az OUTPUT majd a POSTROUTING láncokon mennek át, így a PREROUTING-os szabályok sosem fogják látni ezeket a csomagokat.
- A hozzászóláshoz be kell jelentkezni
Az eredeti peldamban ugye lattad, hogy ket interface is van, az egyiken kimeno a masikon bejovo.
- A hozzászóláshoz be kell jelentkezni
Semmiféle interfészt nem látok a példádban :-(
- A hozzászóláshoz be kell jelentkezni
Peldaul itt van egy : "127.0.0.2"
A masik pedig a fizikai halokartya, amin kimegy a forgalom.
- A hozzászóláshoz be kell jelentkezni
Ez IP cim, nem interface.
- A hozzászóláshoz be kell jelentkezni
Azt lehet tudni mi a cél az ilyen multicastos "port" átírányításnak ?
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
A klienesek ket "multicast" porton figyelnek a "tuloldalon", egyszer az egyik kliens csoportnak kell a csomagokat megkapni, utana a masik kliens csoportnak, majd ujra az elsonek. De kozben az eredeti stream nem szakadhat meg - es sajna az rtmpdump egyszerre csak egy targetre tud tudomasom szerint irni!
- A hozzászóláshoz be kell jelentkezni
szokásos fordítva ülünk a lovon :D
Akkor én ezt remuxerrel oldanám meg.
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Melyik lovon ? :D
az utomu-t kresgeltem, de nem talalom...
De ha van egyszeru otleted Ubuntura, kivele...
- A hozzászóláshoz be kell jelentkezni
Melyik lovon ? :D
A multicast a lovon :D
Tudtommal a multicast arra lett kitalálva, hogy vannak egy IP:port akit ez érdekel erre feliratkozik és kész, ha más érdekli másik IP:portra iratkozik.
Viszont az, hogy ungyanaz a stream más más portokon, ip-n elérhető nem a multicast gondja.
Ezért mondtam, hogy amennyiben van egy multicast streamed és te azt másik ip-n porton is akarod akkor a remuxolás lehet egy megoldás.
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Figyelj, az alapkerdes nagyon egszeru. Egy stream-et kell ket kulonbozo multicast IP, portra kuldeni. Ennyi! (Sajna ugy, hogy nem indithatsz ket kulonbozo stream kuldot..)
A source stream lehet unicast is egy interface-n, nekem mindegy. A lenyeg a target site, magyarul kulonbozo multicast portok.
ha remux, akkor remux, de adj konkret peldat, mire gondolsz itt?
- A hozzászóláshoz be kell jelentkezni
Mindig így indul, hogy egyszerű a probléma, viszont olyannal akarod megoldani, ami nem erre az egyszerű problémára lett kitalálva ...
Hát ha a source megvan, akkor ugyanazt egyből 2 portra küldöd ki oszt jónapot, persze ez függ a remuxertől, VLC vel simán megy a duplicate ...
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
En olyannal akarom megoldani, ami adott! Itt az rtmpdump rogzitett, "elvileg" nem hasznalhatsz mas stream kuldot.
Persze ha nagyon muszaj, es iptables-szel, vagy barmi egyeb kiegeszito tool-lal nem megoldhato, akkor majd atragom a vlc-t, de elotte korul szeretnem jarni a temat!
Egyebkent VLC-nel valami ilyenre gondolasz?
cvlc INPUT_RTMP_STREAM --sout '#duplicate{dst=rtp{dst=224.0.0.1,port=5004},dst=rtp{dst=224.0.0.1,port=5005}}'
- A hozzászóláshoz be kell jelentkezni
Igen, erre. Ez a legtisztább módszer szerintem. Nem holmi kókányolás ...
ui: Így megvan mindkét porton a stream nem kell oda-vissza váltogatni ...
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Itt az a gond, hogy dupla forgalmat general a halozatra folyamatosan...az iptables cucc azert jobb, met azt akkor "kapcsolod" be, ha kell, es a masik streamet pedig ki
- A hozzászóláshoz be kell jelentkezni
Ha nem kell 2x forgalom ne 2 porton nézzék :D
Kíváncsi leszek persze, hogy ezt IPtablessel mennyire lehet megmókolni ...
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Ket porton nezik, ugyanis a kliensek ugyanazon a hoston vannak, csak ket kulonbozo progi.
- A hozzászóláshoz be kell jelentkezni
2 vlc le tudja játszani ugyanazt a streamet, a fenti program erre nem képes ?
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Itt a lenyeg az, hogy egyidoben keruljon kikuldesre mindket stream. Azaz nem lehet kulonbseg idoben. Ha kettot inditasz, mindenkeppen lesz minimalis kulionbseg, mert a streamerek pufferelnet, stb, igy ez kiesett.
- A hozzászóláshoz be kell jelentkezni
Már 2 kiküldés nem értem.
Innden indult:
rtmpdump egy udp://239.0.1.23:1234 multicast cimre kuldi a csomagokat.
Cel az lenne, hogy ideiglenesen ezt "atiranyitsuk" mondjuk ugyanezen IP "5678" portjara. Majd bizonyos ido utan vissza.
Aztán:
Ket porton nezik, ugyanis a kliensek ugyanazon a hoston vannak, csak ket kulonbozo progi.
Nekem eddig úgy tűnt, hogy 1 stream elindul és ezt 2 különbözö porton kéne "látni" ...
Akkor ki van kivel hogyan és miért ?
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
"Nekem eddig úgy tűnt, hogy 1 stream elindul és ezt 2 különbözö porton kéne "látni" ... "
Igy van, errol beszelek en is. Csakhogy ezeknek meg szinkronban is kel llennie. (meghozza min. tizedmasodpercre)
Nyilvanvalo, ha a csomagokat duplikalod/redirektalod valahogyan, akkor szinkronban lesznek, ugyanis ezt a multicast garantalja. Ha a sender-ekre (2 db) bizod a streamet, akkor sajna z egyik/masika sender pufferelesenek kulonbsege miatt a csomagok mas idoben kerulnek ki a ket multicast cimre...sajna...ezt teszteltem...
- A hozzászóláshoz be kell jelentkezni
Ok.
Viszont akkor az program ami 1 gépen fut 2 példányban, nem tudja ugyanarról az IP:port ról lejátszani, ahogy egy VLC teszi ? (mert most ha jól értem 1 gépen van 2 program és 2 külön porton akarja nézni ugyanazt, egyidőben)
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Hat persze hogy nem tudja, ugyanis a kliens oldalon a listening port mar foglalt. Egy kliens csak egy porton tud figyelni.
- A hozzászóláshoz be kell jelentkezni
Hát öö, egy kliens program pl egy lejátszó (VLC), attól hogy 1234 es portron bejövő zenét lejátsza még nem kell foglalnia, lejátszatja más is. Viszont akkor a lényeg, hogy nem lehet.
Szerintem maradj a remuxnál, rtmpdump helyett akár VLC vagy ffmpeg stb, duplicalja a streamet, én nagy elcsúszásra nem számítanék.
Fedora 42, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni