Hi Sergey,
I'll try to answer your third question (like Sebastian has done already)
- Does Bittorrent DHT discovery and routing need (any) nodes to be connected to the Internet?
If yes, is it possible to setup a DHT server in the Intranet, which is isolated from the Internet, and make IBR-DTN use it?
The main idea of the DHT discovery is to find nodes across the internet. So, yes, if you want to use this feature, you should be in a large network. It doesn't have to be the internet, but the DHT only works with more than 7 nodes. And it tries to request for 30 nodes, until it will break up bootstrapping for more nodes.
So if you have got a large network with multiple subnets and routing between the subnets, but no multicast support between the subnets, then you could use the DHT. If you would like to setup such a system, this should be the setting of the DHT nodes:
dht_enabled = yes dht_bootstrapping = no dht_bootstrapping_ips = 10.0.0.1 9999;
The "10.0.0.1 9999" should be replaced by the IP and DHT Port of one available node. You could give a list of probably available nodes as well:
dht_bootstrapping_ips = 10.0.0.1 9999; 10.1.0.1 9999; 10.2.13.34 1234;
This should be all you need to build your own "private" DHT in a network, which is completely disconnected from the internet. If it is not disconnected from the internet. There is no mechanism to block this nodes! Only if one node connects to any node in the internet, this contact will be propagated across the whole "private" DHT!
If your nodes are all in the same LAN with IP broadcast/multicast support, then you don't need the DHT. So you can simply disable it and use the normal neighbour discovery instead. To disable the DHT, simply edit the line at ibrdtn.conf:
dht_enabled = no
If you have got one host, which is part of the DHT and connected to the internet and you would like to prevent this node to announce all of its neighbours to the internet, then you have got two possibilities:
Deactivating neighbour announcements completely on the node with the active DHT:
dht_allow_neighbour_announcement = no
Or a "private" node can publish, that he shouldn't be announced by anyone in the neighbourhood by setting:
dht_allow_neighbours_to_announce_me = false
_BUT_: This doesn't prevent from beeing connected from "outside". Like Sebastian already said, if any DHT node has got connection to you, they will communicate with each other and will try to exchange their DHT neighbour nodes.
I hope, this will help you with your setup!
Best regards, Till Lorentzen