• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Multiple MN with different ips on one VM (Problem with 0.11.2.16)

aka5

New member
Foundation Member
Since the current version 0.11.2.16 i couldn't get started more then one Masternode per machine.
It seems to be a bind / port problem, but i use different ips, what has changed in current version?

Here is how i have done it (working with previous versions):

- VM has 3 Public IPs (1.2.3.1, 1.2.3.2, 1.2.3.3)
- created one user for each running MN on the VM
- .dash/dash.conf for mn02 (1.2.3.2) - (mn01 1.2.3.1 already running fine):
Code:
rpcuser=dxxxxxxx
rpcpassword=8xxxxxxx
externalip=1.2.3.2
bind=1.2.3.2
rpcport=9998
discover=0
rpcallowip=127.0.0.1
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=256
masternode=1
masternodeprivkey=7xxxxxxxx
addnode=23.23.186.131
each one has his own address in externalip and bind, also the rpcport is changed for every one.

before 0.11.2.16 this setup was running smoothly with 3 MNs on one VM.

But now i could only start one MN, if i try to start the second or third i get the following error:
Code:
mn02@xxx:~$ : Unable to bind to 1.2.3.2:9999 on this computer (bind returned error Cannot assign requested address (99))
: Failed to listen on any port. Use -listen=0 if you want this.

if i look for the opened ports, it seems to be ok, only the first masternode is running (1.2.3.1), and its only using his ip with port 9999, but it seems like the second masternode won't start because the address couldn't be assigned (already assigned? - netstat doesn't show this)
Code:
root@xxx:~# netstat -npl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 1.2.3.1:9999     0.0.0.0:*               LISTEN      31040/dashd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1074/sshd
tcp6       0      0 :::9998                 :::*                    LISTEN      31040/dashd
tcp6       0      0 :::22                   :::*                    LISTEN      1074/sshd
udp        0      0 0.0.0.0:47515           0.0.0.0:*                           602/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           602/dhclient
udp        0      0 1.2.3.1:123      0.0.0.0:*                           1333/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           1333/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1333/ntpd
udp6       0      0 :::18288                :::*                                602/dhclient
udp6       0      0 fexxxxxx                                1333/ntpd
udp6       0      0 ::1:123                 :::*                                1333/ntpd
udp6       0      0 :::123                  :::*                                1333/ntpd
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     SEQPACKET  LISTENING     7512     324/systemd-udevd   /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     7071     1/init              @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     8846     827/dbus-daemon     /var/run/dbus/system_bus_socket

is there by any chance any port hard coded in the current version and thats why it can't be run? or am i missing something else?

Where does that 99 come from in the error: "Cannot assign requested address (99)"

Thanks
 
Your netstat shows that bind :::9998 listens on all interfaces for masternode1. Perhaps thats the reason your second masternode wont start?
I think you need to specify a diffrent port/loopback IP for bind for the other masternodes.


This is how my remote dash.conf looks like on two masternodes on the same server:



Masternode 1
---------------------------------------
#----
rpcuser=xxxxx
rpcpassword=xxxxxx
rpcallowip=127.0.0.1
masternodeaddr=my external ip:9999
bind=127.0.0.2
bind=my external ip
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=200
#--------------------
# change ami_public_ip to public ip address which you connected by ssh
externalip=my external ip
#---------------------
#------------
masternode=1
addnode=23.23.186.131
#----------
masternodeprivkey=xxxxxxxxxxxxxxxxxxxxxxxxxx

---------------------------------------------------------------------------------

Masternode 2

#----
rpcuser=xxxxxxxxxxxxxx
rpcpassword=xxxxxxxxxx
rpcallowip=127.0.0.1
rpcport=8003
masternodeaddr=my external ip:9999
bind=127.0.0.4
bind=my external ip
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=200
#--------------------
# change ami_public_ip to public ip address which you connected by ssh
externalip=my external ip
#---------------------
#------------
masternode=1
addnode=23.23.186.131
#----------
masternodeprivkey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
Your netstat shows that bind :::9998 listens on all interfaces for masternode1. Perhaps thats the reason your second masternode wont start?
I think you need to specify a diffrent port/loopback IP for bind for the other masternodes.


This is how my remote dash.conf looks like on two masternodes on the same server:



Masternode 1
---------------------------------------
#----
rpcuser=xxxxx
rpcpassword=xxxxxx
rpcallowip=127.0.0.1
masternodeaddr=my external ip:9999
bind=127.0.0.2
bind=my external ip
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=200
#--------------------
# change ami_public_ip to public ip address which you connected by ssh
externalip=my external ip
#---------------------
#------------
masternode=1
addnode=23.23.186.131
#----------
masternodeprivkey=xxxxxxxxxxxxxxxxxxxxxxxxxx

---------------------------------------------------------------------------------

Masternode 2

#----
rpcuser=xxxxxxxxxxxxxx
rpcpassword=xxxxxxxxxx
rpcallowip=127.0.0.1
rpcport=8003
masternodeaddr=my external ip:9999
bind=127.0.0.4
bind=my external ip
listen=1
server=1
daemon=1
logtimestamps=1
maxconnections=200
#--------------------
# change ami_public_ip to public ip address which you connected by ssh
externalip=my external ip
#---------------------
#------------
masternode=1
addnode=23.23.186.131
#----------
masternodeprivkey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

that rpc port is set to another for each masternode ... so that should be fine, nothing touched there and setup worked fine before 0.11.2.16 :(

for the moment i have hosted all my nodes on individual machines to get them running again, but if that is not intended, i will put bit more work in it ...

but for now it seems like i don't get it working, on both of my "multi mn host vms" :(

anyone perhaps more insight of where that 99 comes from in the error "(bind returned error Cannot assign requested address (99))"

Thanks
 
that rpc port is set to another for each masternode ... so that should be fine, nothing touched there and setup worked fine before 0.11.2.16 :(

for the moment i have hosted all my nodes on individual machines to get them running again, but if that is not intended, i will put bit more work in it ...

but for now it seems like i don't get it working, on both of my "multi mn host vms" :(

anyone perhaps more insight of where that 99 comes from in the error "(bind returned error Cannot assign requested address (99))"

Thanks

error 99 = A nonexistent interface was requested or the requested address was not local.

Please make sure that the all the ip addresses is Up and working on your server.
 
an eventual 3rd MN what should have? Let me explain

rpcuser=xxxxxxxxxxxxxx
rpcpassword=xxxxxxxxxx
rpcallowip=127.0.0.1
rpcport=????
masternodeaddr=my external ip:9999
bind=????
bind=my external ip
 
I think I got it to work on my vps. I didn't take down one of my other masternodes to verify if it connects correctly, but it looks like it should. I see both instances running without any errors on startup. Looks like maybe the latest update is checking for conflict on the 9999 port now. Can anyone confirm the from? and to? are correct?

You need to specify two ports.
This should be forwarded from? 9998 on your external ip.
rpcport=xxxx

This should forward to? 9999 on your external ip.
port=xxxx
 
Back
Top