Error while bindin IBRDTN to my ethernet interface
Hello IBRDTN community,
I have found a very weird behaviour when using ibrdtn-0,10.2 with OpenWRT ATTITUDE ADJUSTMENT (12.09, r36088), the behaviour is the following, each time that I wan to start the dtnd daemon I get an error when binding it to my ethernet interface. I have looked into /tmp/ibrdtn.err and I get always the error *ERROR IPNDAgent: join failed on eth0; 22: setsockopt() *independently of the interface that I use
root@OpenWrt:~# tail -f /tmp/ibrdtn.err Thu Sep 8 15:49:37 2011 ERROR IPNDAgent: join failed on br-lan; 22: setsockopt() .1]:4550 Thu Sep 8 15:50:07 2011 ERROR TCPConvergenceLayer: bind failed (cannot bind socket with address [192.168.20.2]:4556) Thu Sep 8 15:50:07 2011 ERROR IPNDAgent: join failed on br-lan; 22: setsockopt() Thu Sep 8 15:52:09 2011 ERROR IPNDAgent: join failed on eth0; 22: setsockopt() .0.1]:4550 Thu Sep 8 15:53:54 2011 ERROR IPNDAgent: join failed on eth0; 22: setsockopt()
Has anyone experience the same?
Thanks in advance,
regards
My settings are >
My interfaces are the following ones
br-lan Link encap:Ethernet HWaddr 64:70:02:3E:A7:80 inet addr:192.168.20.2 Bcast:192.168.20.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7818 errors:0 dropped:385 overruns:0 frame:0 TX packets:6473 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:662620 (647.0 KiB) TX bytes:831077 (811.5 KiB)
eth0 Link encap:Ethernet HWaddr 64:70:02:3E:A7:80 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8142 errors:0 dropped:30 overruns:0 frame:0 TX packets:6840 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:869850 (849.4 KiB) TX bytes:999198 (975.7 KiB) Interrupt:4
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8560 errors:0 dropped:0 overruns:0 frame:0 TX packets:8560 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:583341 (569.6 KiB) TX bytes:583341 (569.6 KiB)
wlan0 Link encap:Ethernet HWaddr 64:70:02:3E:A7:81 inet addr:192.168.20.207 Bcast:192.168.255.255 Mask:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1978 errors:0 dropped:0 overruns:0 frame:0 TX packets:597 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:169824 (165.8 KiB) TX bytes:69530 (67.9 KiB)
wlan1 Link encap:Ethernet HWaddr 64:70:02:3E:A7:82 inet addr:192.168.20.208 Bcast:192.168.255.255 Mask:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:591 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:0 (0.0 B) TX bytes:68868 (67.2 KiB)
Current ibrdtn configuration
root@OpenWrt:~# cat /etc/config/ibrdtn ##################################### # IBR-DTN daemon # #####################################
config 'daemon' 'main' # The local eid of the dtn node. Default is the hostname. # option uri dtn://node.dtn
# timezone offset in hours # option timezone +1
# logfile for standard output option logfile /tmp/ibrdtn.log option errfile /tmp/ibrdtn.err
# debug level option debug 20
# block size limit # option blocksize 512M # option foreign_blocksize 128M
# # If something bad happened, the safe mode will be activated. # These are the restrictions for safe mode only. # config 'daemon' 'safemode' option forwarding no option storage 64M option maxblock 16M # option wait_mount /dev/sda1
##################################### # storage configuration # #####################################
config 'daemon' 'storage' # possible engines are: simple, sqlite option engine simple option blobs /tmp/ibrdtn/blobs option bundles /tmp/ibrdtn/bundles # option container /tmp/ibrdtn/container.img # option path /tmp/ibrdtn/container # option limit 1G
##################################### # routing configuration # #####################################
# # In the "default" the daemon only delivers bundles to neighbors and static # available nodes. The alternative module "epidemic" spread all bundles to # all available neighbors. # config 'daemon' 'main' # values: none | default | epidemic | flooding | prophet option routing epidemic#default option forwarding yes # option fragmentation yes
# # static routing rules # - a rule is a regex pattern # - format is <target-scheme> <routing-node> # #config 'static-route' # list pattern ^dtn://[[:alpha:]].moon.dtn/[[:alpha:]] # option destination dtn://router.dtn
##################################### # static connections #####################################
#config 'static-connection' # option uri dtn://node-five.dtn # option address 10.0.0.5 # option port 4556 # option protocol tcp # option immediately yes
#config 'static-connection' # option uri dtn://node-ten # option address 10.0.0.10 # option port 4556 # option protocol udp # option immediately no
##################################### # convergence layer configuration # #####################################
# # You can specify an multicast address to listen to for discovery announcements. # If no address is specified the multicast equivalent of broadcast is used. # config 'daemon' 'discovery' option address 192.168.20.255 # option timeout 5 option crosslayer yes
config 'daemon' 'tcptuning' # option 'idle_timeout' 120 # option 'nodelay' yes # option 'chunksize' 4096
config 'network' option type tcp option interface eth0 option port 4556
#config 'network' # option type tcp # option interface wlan0 # option port 4556
##################################### # bundle security protocol # #####################################
# # the level specifies the security constains # # 0 = no constrains (default) # 1 = accept only BAB authenticated bundles # 2 = accept only encrypted bundles # 3 = accept only BAB authenticated and encrypted bundles #
#config 'daemon' 'security' # option level 0 # option bab_key /path/to/default-bab-key.mac # option key_path /path/to/security-keys
#config 'daemon' 'tls' # option certificate /path/to/tls-cert.crt # option key /path/to/tls-key.key # option trustedpath /path/to/tls-ca # option required no # option noencryption no
##################################### # time synchronization # #####################################
#config 'daemon' 'timesync' # option reference yes # option synchronize yes # option discovery_announcement yes # option sigma 1.001 # option psi 0.9 # option sync_level 0.1
##################################### # DHT # #####################################
config 'daemon' 'dht' option 'enabled' 'no' # option 'id' '<enter your unique id here>' option 'bootstrap' 'yes' # option 'nodesfile' '/tmp/dht_nodes.dat' option 'port' '9999' option 'enable_ipv6' 'no' # option 'enable_ipv4' 'no' # option 'bind_ipv4' '127.0.0.1' # option 'bind_ipv6' '::1' option 'ignore_neighbour_informations' 'yes' option 'allow_neighbours_to_announce_me' 'no' option 'allow_neighbour_announcement' 'no'
Am 07.02.2014 17:16, schrieb Francisco Cuesta:
root@OpenWrt:~# tail -f /tmp/ibrdtn.err Thu Sep 8 15:49:37 2011 ERROR IPNDAgent: join failed on br-lan; 22: setsockopt() .1]:4550 Thu Sep 8 15:50:07 2011 ERROR TCPConvergenceLayer: bind failed (cannot bind socket with address [192.168.20.2]:4556) Thu Sep 8 15:50:07 2011 ERROR IPNDAgent: join failed on br-lan; 22: setsockopt() Thu Sep 8 15:52:09 2011 ERROR IPNDAgent: join failed on eth0; 22: setsockopt() .0.1]:4550 Thu Sep 8 15:53:54 2011 ERROR IPNDAgent: join failed on eth0; 22: setsockopt()
The last two error messages are the result of binding to eth0 which does not have any configured address. Replace eth0 with br-lan in the configuration to get it working.
The "bind failed" error may the result of multiple instances of the daemon. Be sure that all instances are stopped before starting again.
Kind regards, Johannes Morgenroth
The last two error messages are the result of binding to eth0 which does not have any configured address. Replace eth0 with br-lan in the configuration to get it working.
The "bind failed" error may the result of multiple instances of the daemon. Be sure that all instances are stopped before starting again.
Kind regards, Johannes Morgenroth
Hi Johannes,
I am afraid that the suggestion didn't work out, I have changed the interface to the br-lan and it stills refuses to work. As you can see below I have also changed to the wireless interface, and it happens the same issue. Any other suggestion? Perhaps some of the libs that I have installed are outdated?
Thanks in advance,
Bes regards
root@OpenWrt:~# tail -f /tmp/ibrdtn.err Sun Feb 9 18:44:43 2014 ERROR IPNDAgent: join failed on br-lan; 99: setsockopt() Sun Feb 9 18:44:43 2014 ERROR IPNDAgent: join failed on wlan0; 99: setsockopt() ^C root@OpenWrt:~# date Sun Feb 9 18:44:52 UTC 2014
root@OpenWrt:~# ifconfig br-lan Link encap:Ethernet HWaddr 64:70:02:3E:A7:80 inet addr:192.168.20.2 Bcast:192.168.20.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11626 errors:0 dropped:320 overruns:0 frame:0 TX packets:10683 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2336332 (2.2 MiB) TX bytes:2190293 (2.0 MiB)
wlan0 Link encap:Ethernet HWaddr 64:70:02:3E:A7:81 inet addr:192.168.20.207 Bcast:192.168.255.255 Mask:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1614 errors:0 dropped:0 overruns:0 frame:0 TX packets:1012 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:148045 (144.5 KiB) TX bytes:108272 (105.7 KiB)
Config file for ibrdtn
root@OpenWrt:~# cat /etc/config/ibrdtn ##################################### # IBR-DTN daemon # #####################################
config 'daemon' 'main' # The local eid of the dtn node. Default is the hostname. # option uri dtn://node.dtn
# timezone offset in hours # option timezone +1
# logfile for standard output option logfile /tmp/ibrdtn.log option errfile /tmp/ibrdtn.err
# debug level # option debug 20
# block size limit # option blocksize 512M # option foreign_blocksize 128M
# # If something bad happened, the safe mode will be activated. # These are the restrictions for safe mode only. # config 'daemon' 'safemode' option forwarding no option storage 64M option maxblock 16M # option wait_mount /dev/sda1
##################################### # storage configuration # #####################################
config 'daemon' 'storage' # possible engines are: simple, sqlite option engine simple option blobs /tmp/ibrdtn/blobs option bundles /tmp/ibrdtn/bundles # option container /tmp/ibrdtn/container.img # option path /tmp/ibrdtn/container # option limit 1G
##################################### # routing configuration # #####################################
# # In the "default" the daemon only delivers bundles to neighbors and static # available nodes. The alternative module "epidemic" spread all bundles to # all available neighbors. # config 'daemon' 'main' # values: none | default | epidemic | flooding | prophet option routing default # option forwarding no # option fragmentation yes
# # static routing rules # - a rule is a regex pattern # - format is <target-scheme> <routing-node> # #config 'static-route' # list pattern ^dtn://[[:alpha:]].moon.dtn/[[:alpha:]] # option destination dtn://router.dtn
##################################### # static connections #####################################
#config 'static-connection' # option uri dtn://node-five.dtn # option address 10.0.0.5 # option port 4556 # option protocol tcp # option immediately yes
#config 'static-connection' # option uri dtn://node-ten # option address 10.0.0.10 # option port 4556 # option protocol udp # option immediately no
##################################### # convergence layer configuration # #####################################
# # You can specify an multicast address to listen to for discovery announcements. # If no address is specified the multicast equivalent of broadcast is used. # config 'daemon' 'discovery' # option address 224.0.0.1 # option timeout 5 # option crosslayer yes
config 'daemon' 'tcptuning' # option 'idle_timeout' 120 # option 'nodelay' yes # option 'chunksize' 4096
config 'network' option type tcp option interface br-lan option port 4556
config 'network' option type tcp option interface wlan0 option port 4556
##################################### # bundle security protocol # #####################################
# # the level specifies the security constains # # 0 = no constrains (default) # 1 = accept only BAB authenticated bundles # 2 = accept only encrypted bundles # 3 = accept only BAB authenticated and encrypted bundles #
#config 'daemon' 'security' # option level 0 # option bab_key /path/to/default-bab-key.mac # option key_path /path/to/security-keys
#config 'daemon' 'tls' # option certificate /path/to/tls-cert.crt # option key /path/to/tls-key.key # option trustedpath /path/to/tls-ca # option required no # option noencryption no
##################################### # time synchronization # #####################################
#config 'daemon' 'timesync' # option reference yes # option synchronize yes # option discovery_announcement yes # option sigma 1.001 # option psi 0.9 # option sync_level 0.1
##################################### # DHT # #####################################
config 'daemon' 'dht' option 'enabled' 'no' # option 'id' '<enter your unique id here>' option 'bootstrap' 'yes' # option 'nodesfile' '/tmp/dht_nodes.dat' option 'port' '9999' option 'enable_ipv6' 'no' # option 'enable_ipv4' 'no' # option 'bind_ipv4' '127.0.0.1' # option 'bind_ipv6' '::1' option 'ignore_neighbour_informations' 'yes' option 'allow_neighbours_to_announce_me' 'no' option 'allow_neighbour_announcement' 'no'
Hello Francisco.
Am 09.02.2014 19:49, schrieb Francisco Cuesta:
# # You can specify an multicast address to listen to for discovery announcements. # If no address is specified the multicast equivalent of broadcast is used. # config 'daemon' 'discovery' # option address 224.0.0.1 # option timeout 5 # option crosslayer yes
The remaining error you see is related to the discovery mechanism. By default it tries to bind to an IPv6 address, but your system does not support this. You can safely ignore this error or configure the daemon to join IPv4 only via the address option.
config 'daemon' 'discovery' option address 224.0.0.142
Kind regards, Johannes Morgenroth
Hi Johannes,
I have set the discovery feature, but I still get the same error while binding
Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on br-lan; 99: setsockopt() Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on wlan0; 99: setsockopt()
What more can I do?I hadn't seen this error before when working with ibrdtn, so I don't know exactly how to face it.
Thanks in advance,
regards
2014-02-10 7:58 GMT+01:00 Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de:
Hello Francisco.
Am 09.02.2014 19:49, schrieb Francisco Cuesta:
# # You can specify an multicast address to listen to for discovery announcements. # If no address is specified the multicast equivalent of broadcast is used. # config 'daemon' 'discovery' # option address 224.0.0.1 # option timeout 5 # option crosslayer yes
The remaining error you see is related to the discovery mechanism. By default it tries to bind to an IPv6 address, but your system does not support this. You can safely ignore this error or configure the daemon to join IPv4 only via the address option.
config 'daemon' 'discovery' option address 224.0.0.142
Kind regards, Johannes Morgenroth
-- Johannes Morgenroth Institut fuer Betriebssysteme und Rechnerverbund Tel.: +49-531-391-3249 Muehlenpfordtstrasse 23 Fax.: +49-531-391-5936 TU Braunschweig D-38106 Braunschweig
Hello again Johannes,
Reading the mailing-list I found this post of yours https://mail.ibr.cs.tu-bs.de/pipermail/ibr-dtn/2014-February/000594.html , there you were telling the fact that OpenWRT has some flaw with the IPv6 get() function, how did you check this out? And what's more, is there any available solution or patch to be applicable? I ask it since I am suffering the same kind of error I was trying to figure it out; just mention that I don't have IPv6 package installed on my device and I do have the libnl-2.0 one.
Thanks again,
regards!
2014-02-17 14:52 GMT+01:00 Francisco Cuesta ndarkness@gmail.com:
Hi Johannes,
I have set the discovery feature, but I still get the same error while binding
Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on br-lan; 99: setsockopt() Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on wlan0; 99: setsockopt()
What more can I do?I hadn't seen this error before when working with ibrdtn, so I don't know exactly how to face it.
Thanks in advance,
regards
2014-02-10 7:58 GMT+01:00 Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de :
Hello Francisco.
Am 09.02.2014 19:49, schrieb Francisco Cuesta:
# # You can specify an multicast address to listen to for discovery announcements. # If no address is specified the multicast equivalent of broadcast is used. # config 'daemon' 'discovery' # option address 224.0.0.1 # option timeout 5 # option crosslayer yes
The remaining error you see is related to the discovery mechanism. By default it tries to bind to an IPv6 address, but your system does not support this. You can safely ignore this error or configure the daemon to join IPv4 only via the address option.
config 'daemon' 'discovery' option address 224.0.0.142
Kind regards, Johannes Morgenroth
-- Johannes Morgenroth Institut fuer Betriebssysteme und Rechnerverbund Tel.: +49-531-391-3249 Muehlenpfordtstrasse 23 Fax.: +49-531-391-5936 TU Braunschweig D-38106 Braunschweig
Am 17.02.2014 15:03, schrieb Francisco Cuesta:
Reading the mailing-list I found this post of yours https://mail.ibr.cs.tu-bs.de/pipermail/ibr-dtn/2014-February/000594.html , there you were telling the fact that OpenWRT has some flaw with the IPv6 get() function, how did you check this out? And what's more, is there any available solution or patch to be applicable? I ask it since I am suffering the same kind of error I was trying to figure it out; just mention that I don't have IPv6 package installed on my device and I do have the libnl-2.0 one.
If the IPv6 module is not loaded, you can just ignore this error. Please test if the daemon is working even with the error.
Kind regards, Johannes
Hello again Johannes,
Reading the mailing-list I found this post of yours https://mail.ibr.cs.tu-bs.de/pipermail/ibr-dtn/2014-February/000594.html , there you were telling the fact that OpenWRT has some flaw with the IPv6 get() function, how did you check this out? And what's more, is there any available solution or patch to be applicable? I ask it since I am suffering the same kind of error I was trying to figure it out; just mention that I don't have IPv6 package installed on my device and I do have the libnl-2.0 one.
Thanks again,
regards!
2014-02-17 14:52 GMT+01:00 Francisco Cuesta ndarkness@gmail.com:
Hi Johannes,
I have set the discovery feature, but I still get the same error while binding
Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on br-lan; 99: setsockopt() Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on wlan0; 99: setsockopt()
What more can I do?I hadn't seen this error before when working with ibrdtn, so I don't know exactly how to face it.
Thanks in advance,
regards
2014-02-10 7:58 GMT+01:00 Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de :
Hello Francisco.
Am 09.02.2014 19:49, schrieb Francisco Cuesta:
# # You can specify an multicast address to listen to for discovery announcements. # If no address is specified the multicast equivalent of broadcast is used. # config 'daemon' 'discovery' # option address 224.0.0.1 # option timeout 5 # option crosslayer yes
The remaining error you see is related to the discovery mechanism. By default it tries to bind to an IPv6 address, but your system does not support this. You can safely ignore this error or configure the daemon to join IPv4 only via the address option.
config 'daemon' 'discovery' option address 224.0.0.142
Kind regards, Johannes Morgenroth
-- Johannes Morgenroth Institut fuer Betriebssysteme und Rechnerverbund Tel.: +49-531-391-3249 Muehlenpfordtstrasse 23 Fax.: +49-531-391-5936 TU Braunschweig D-38106 Braunschweig
Hello again Johannes,
Reading the mailing-list I found this post of yours https://mail.ibr.cs.tu-bs.de/pipermail/ibr-dtn/2014-February/000594.html , there you were telling the fact that OpenWRT has some flaw with the IPv6 get() function, how did you check this out? And what's more, is there any available solution or patch to be applicable? I ask it since I am suffering the same kind of error I was trying to figure it out; just mention that I don't have IPv6 package installed on my device and I do have the libnl-2.0 one.
Thanks again,
regards!
2014-02-17 14:52 GMT+01:00 Francisco Cuesta ndarkness@gmail.com:
Hi Johannes,
I have set the discovery feature, but I still get the same error while binding
Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on br-lan; 99: setsockopt() Mon Feb 17 13:44:43 2014 ERROR IPNDAgent: join failed on wlan0; 99: setsockopt()
What more can I do?I hadn't seen this error before when working with ibrdtn, so I don't know exactly how to face it.
Thanks in advance,
regards
2014-02-10 7:58 GMT+01:00 Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de :
Hello Francisco.
Am 09.02.2014 19:49, schrieb Francisco Cuesta:
# # You can specify an multicast address to listen to for discovery announcements. # If no address is specified the multicast equivalent of broadcast is used. # config 'daemon' 'discovery' # option address 224.0.0.1 # option timeout 5 # option crosslayer yes
The remaining error you see is related to the discovery mechanism. By default it tries to bind to an IPv6 address, but your system does not support this. You can safely ignore this error or configure the daemon to join IPv4 only via the address option.
config 'daemon' 'discovery' option address 224.0.0.142
Kind regards, Johannes Morgenroth
-- Johannes Morgenroth Institut fuer Betriebssysteme und Rechnerverbund Tel.: +49-531-391-3249 Muehlenpfordtstrasse 23 Fax.: +49-531-391-5936 TU Braunschweig D-38106 Braunschweig
participants (2)
-
Francisco Cuesta
-
Johannes Morgenroth