From version 5.3 DNews includes modules for both sending and receiving news feeds via broadcast UDP protocol. This can be used in several ways, the main purpose is for sending newsfeeds via satellites to several destination systems, but it can also be used locally or over low band ip broadcast systems to distribute news to 'n' systems without using 'n' times the bandwidth. Remember this system is broadcast based, there is no 2 way link between the sending system and the receiving systems, think of it like a radio station, you can transmit even if no one is listening and you can't even tell if they are listening or not.
In DNews, this is implemented with the module 'dudp' which comes with DNews, you can run it stand alone initally to get an idea of how it works:
dudp -v -m 220.127.116.11 -p 1119 -t 127.0.0.1
-v = Verbose logging
-m 18.104.22.168 = The broadcast group to listen to, this can be a list of such groups
-p 1119 = The port to listen for news on, 1119 is usually used for this.
-t 127.0.0.1 = The address to send news to, 127.0.0.1 is the local host (dnews)
For ease of use DNews starts dudp for you, all you need to do is specify in dnews.conf the multicast groups that DNews should listen to:
Then DNews will start dudp, and restart it if it should shut down for any reason.
If you want you can also specify the full command line that DNews should run, minus the multicast list, you might want to do this to turn on debugging, e.g.
dudp_cmd dudp -p 1119 -t 127.0.0.1 -v
Dudp will write a log file in the DNews log directory 'dudp.log', to restart dudp with different command options you must create a file called 'dudp.exit' in the DNews workarea directory.
Here is the full list of command switches for DUDP
Usage: dudp [-a <num>] [-e <seconds>] [-h] [-i interface] [-l <address>] [-m group[,group...]] [-p <port>] [-q] [-r] [-t <address>] [-u <port>] [-v]
-a num Log every this many packets
-e seconds Time to keep parts of large articles
-h This help
-i interface Which interface to join the multicast groups on
-l address Which address to listen to
-m group(s) Multicast group(s) to join
-p port Port to listen on
-q Exit quietly if bind fails
-r Allow remote termination
-t address Which address to pass news to via NNTP
-u port Port to pass news to
This is implemented in 'dfeed', so to setup an outgoing satellite feed you would specify in newsfeeds.conf
site me groups *
site 22.214.171.124:1119 type DFeed udp_speed 200000 udp_ttl 5 groups *
The number 126.96.36.199 is not a random TCPIP number, the top ip numbers are reserved for MULTICAST addresses, the udp_speed setting is how DNews knows this is a multicast feed. This number also specifies the rate at which DNews should send packets, the number is in characters per second.
Thats about all there is to it. If you are testing this on a local network you have to be sure your systems and routers support multicast tcpip protocol and you must use ip numbers in the valid range.
We don't recommend you send normal feeds and multicast feeds with the same DFeed process for timing reasons DFeed must send the udp packtes at precise intervals and this could interfere with non udp feeds.
Groups can be used to send different types of news (e.g. binary / non binary / naughty etc) this allows people to receive any combination and not process news they don't want, e.g. this defines two groups, 188.8.131.52 for non binaries and 184.108.40.206 for binaries.
site 220.127.116.11:1119 type DFeed udp_speed 200000 udp_ttl 5 groups *,@*binaries*,@*warez* site 18.104.22.168:1119 type DFeed udp_speed 200000 udp_ttl 5 groups *binaries*,*warez*