Wow, I should blog more often. I just was told that you can no longer post comments on my site which steems from the fact that I am using the no_old_comments plugin which makes sure, that there are no posts to old comments. Since I am not writing new entries that often nowadays, you cannot post at all. Well I fixed this for now, so if you were not able to post, well try again.
As for the RTSP patch, the latest one still works with a recent kernel, I have it running with 2.6.28.2 that's why there is no release of a new tarball.
Discussion
Thanks for re-enabling comments ! :-)
I had a bit of problems for compiling the two external modules. The Makefile seems misunderstood. Well, I did a simple patch to your Makefile in order to do it working properly, at least for my case...
diff -Naur rtsp.orig/Makefile rtsp/Makefile
--- rtsp.orig/Makefile 2008-11-01 00:40:31.000000000 +0100
+++ rtsp/Makefile 2009-02-07 19:00:33.000000000 +0100
@@ -1,11 +1,4 @@
-ifneq ($(KERNELRELEASE),)
-# kbuild part of makefile
-ifndef CONFIG_NF_CONNTRACK
-$(error ** You need to enable NF_CONNTRACK in your kernel **)
-endif
-
-obj-$(CONFIG_NF_CONNTRACK) := nf_conntrack_rtsp.o nf_nat_rtsp.o
-else
+obj-m += nf_conntrack_rtsp.o nf_nat_rtsp.o
# Normal Makefile
@@ -21,5 +14,3 @@
clean:
rm -rf *.o *.ko *.mod.c .*.cmd Module.symvers modules.order .tmp_versions
-
-endif
diff -Naur rtsp.orig/README rtsp/README
--- rtsp.orig/README 2008-11-03 15:44:39.000000000 +0100
+++ rtsp/README 2009-02-07 19:00:58.000000000 +0100
@@ -32,7 +32,7 @@
After that a:
* make
- * make install (as root)
+ * make modules_install (as root)
should be enough.
Then do a "modprobe nf_nat_rtsp" as root and try to connect to a RTSP
What problem did you have exactly, the part you deleted normally checks that NF_CONNTRACK is enabled in the kernel and does not compile if not, since you would get errors. So maybe you can send me the error log you got.
make -C /lib/modules/`uname -r`/build M=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.28.3'
Building modules, stage 2.
MODPOST 0 modules
make[1]: Leaving directory `/usr/src/linux-2.6.28.3'
Nothing is compiled, no objects are done.
I have:
GNU Make 3.81
gcc version 4.3.2 (Debian 4.3.2-1.1)
Still, the incoming RTP(UDP) traffic in the streaming session, does not get the the public address translated into the LAN-private address, hence couldn't get routed to the rtsp-client.
From the WAN interface, I could see the incoming RTP/UDP packets but not forwarded to LAN because of NAT failure.
what can be the problem?
I tried even with accepting all incoming connections at the firewall.
kernel: 2.6.21.1, all netfilter modules combiled into the kernel but nf_conntrack_rtsp as a module.
FTP connection tracking works fine.
rtsp_connection_tracking patch used: rtsp-2.6.20.patch
kernel rtsp_debug:
nf_conntrack_rtsp v0.6.21 loading
net/netfilter/nf_conntrack_rtsp.c: init: port #0: 554
net/netfilter/nf_conntrack_rtsp.c: help: conntrackinfo = 2
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help_out: found a setup message
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: tran='Transport: RTP/AVP;unicast;client_port=6970-6971
'
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: lo port found : 6970
net/netfilter/nf_conntrack_rtsp.c: help_out: udp transport found, ports=(1,6970,6971)
net/netfilter/nf_conntrack_rtsp.c: help_out: Changing expectation mask to handle multiple ports
net/netfilter/nf_conntrack_rtsp.c: help_out: expect_related 80.154.117.56:0-203.143.170.239:6970
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help_out: found a setup message
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: tran='Transport: RTP/AVP;unicast;client_port=6972-6973
'
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: lo port found : 6972
net/netfilter/nf_conntrack_rtsp.c: help_out: udp transport found, ports=(1,6972,6973)
net/netfilter/nf_conntrack_rtsp.c: help_out: Changing expectation mask to handle multiple ports
net/netfilter/nf_conntrack_rtsp.c: help_out: expect_related 80.154.117.56:0-203.143.170.239:6972
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: conntrackinfo = 2
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help_out: found a setup message
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: tran='Transport: RTP/AVP;unicast;client_port=6970-6971
'
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: lo port found : 6970
net/netfilter/nf_conntrack_rtsp.c: help_out: udp transport found, ports=(1,6970,6971)
net/netfilter/nf_conntrack_rtsp.c: help_out: Changing expectation mask to handle multiple ports
net/netfilter/nf_conntrack_rtsp.c: help_out: expect_related 80.154.117.67:0-203.143.170.239:6970
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help_out: found a setup message
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: tran='Transport: RTP/AVP;unicast;client_port=6972-6973
'
net/netfilter/nf_conntrack_rtsp.c: rtsp_parse_transport: lo port found : 6972
net/netfilter/nf_conntrack_rtsp.c: help_out: udp transport found, ports=(1,6972,6973)
net/netfilter/nf_conntrack_rtsp.c: help_out: Changing expectation mask to handle multiple ports
net/netfilter/nf_conntrack_rtsp.c: help_out: expect_related 80.154.117.67:0-203.143.170.239:6972
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
net/netfilter/nf_conntrack_rtsp.c: help: IP_CT_DIR_REPLY
First, I only loaded the nf_conntrack_rtsp module.
because of some posts and texts like :
- There is no nf_nat_rtsp module available from the
2006-09-14: Steven Van Acker <deepstar at singularity.be>
26 * - removed calls to NAT code from conntrack helper: NAT no longer needed to use rtsp-conntrack
Thanks Mike, now I loaded the nf_nat_rtsp module and now the streaming works, but with the poor quality, sometimes breaks and timeout. what can be the problem?
Another question is , how can I mark the RTSP udp traffic coming from the rtsp-client, ( I need to mark and route the streaming traffic via a different interface at the router)
the rule:
iptables -t mangle -A PREROUTING -i br0 -m udp -m helper --helper rtsp -j MARK --set-mark 0x8
does not work.
(I mark the tcp traffic using tcp port 554)
- Thava
Regarding the marking of the packages, apparently the code is only tracking inbound packages and not outbound ones. As a result you have to allow outbound traffic AND you apparently cannot mark outbound packages. I do not really know why this is happening though. Patches are welcome
This is the NW configuration:
VideoServer----Internet----Router----------RTSPClient
The Router has 2 WAN and 1 LAN interfaces. The RTSP Client is connected to the LAN interface.
Q1: The rtsp conntrack module tracks all RTSP connections (Incoming + Outgoing) of all the interfaces of the Router ? or Only Outgoing connections on all the interfaces are tracked?
Q2: If incoming connections are tracked, why not the RTSP connection traffi cincoming via the lAN interface not tracked ? ( stupid Q?)
ps: with nf_conntrack_ftp , this was possible, All the incoming TCP traffic on the LAN interface of the router belongs to the FTP session are correctly marked. ( Note: These FTP traffic really goes out of the WAN inetercae, similar to RTSP traffic).
These are just comments, if useful ..
Rgds
Thava
I try to use my mobile phone connected to a router with Wi-fi to visit youtube, but I fail to do so.My friend told me that the software in my phone use RTSP to interact with youtube, so I must add RTSP ALG into my router.
But I use Window Media Play, which also use RTSP protocol, to see video, and it is successful.
Now, I don't understand the difference between Window Media Player and the software of my phone.
Could you tell me why,please.
If you watch youtube you normally use the standard HTTP protocol no RTSP involved. That said I do not know what your phone does exactly. Are normal sites working on your phone?