2016-10-25 3 views
0

Я смог включить ipv6 на mongodb.подключение к mongodb с ipv6 через оболочку mongo

/etc/mongod.conf file has net.ipv6 set to true. 

Я могу видеть, что MongoDB прослушивает ipv6:

# netstat -anp | grep 27017 
tcp  0  0 0.0.0.0:27017   0.0.0.0:*    LISTEN  17967/mongod   
tcp6  0  0 :::27017    :::*     LISTEN  17967/mongod   
unix 2  [ ACC ]  STREAM  LISTENING  19750206 17967/mongod   /tmp/mongodb-27017.sock 
# 

ping6 на IPv6-адрес в порядке.

[[email protected] log]# ping6 -I eno33554952 tesla05-2-ipv6.ulticom.com 
PING tesla05-2-ipv6.ulticom.com(tesla05) from fe80::250:56ff:feb4:7c43 eno33554952: 56 data bytes 
64 bytes from tesla05: icmp_seq=1 ttl=64 time=0.101 ms 
64 bytes from tesla05: icmp_seq=2 ttl=64 time=0.093 ms 
64 bytes from tesla05: icmp_seq=3 ttl=64 time=0.091 ms 

Однако, оболочка mongo, похоже, не понимает адрес ipv6.

[[email protected] log]# mongo --ipv6 [fe80::250:56ff:feb4:7c43]:27017/admin 
MongoDB shell version: 3.2.4 
connecting to: [fe80::250:56ff:feb4:7c43]:27017/admin 
2016-10-25T12:04:50.401-0400 W NETWORK [thread1] Failed to connect to fe80::250:56ff:feb4:7c43:27017, reason: errno:22 Invalid argument 
2016-10-25T12:04:50.402-0400 E QUERY [thread1] Error: couldn't connect to server [fe80::250:56ff:feb4:7c43]:27017, connection attempt failed : 
[email protected]/mongo/shell/mongo.js:226:14 
@(connect):1:6 

exception: connect failed 

[[email protected] log]# mongo --ipv6 tesla05-2-ipv6.ulticom.com:27017/admin 
MongoDB shell version: 3.2.4 
connecting to: tesla05-2-ipv6.ulticom.com:27017/admin 
2016-10-25T12:15:17.861-0400 W NETWORK [thread1] Failed to connect to fe80::250:56ff:feb4:7c43:27017, reason: errno:22 Invalid argument 
2016-10-25T12:15:17.861-0400 E QUERY [thread1] Error: couldn't connect to server tesla05-2-ipv6.ulticom.com:27017, connection attempt failed : 
[email protected]/mongo/shell/mongo.js:226:14 
@(connect):1:6 

exception: connect failed 

ответ

2

Вы пытаетесь использовать локальный IPv6-адрес ссылки. Они недействительны без scope, но вы не предоставили его. Таким образом, вы получаете ошибку Invalid argument. По этой причине размещение локального адреса связи в DNS не имеет смысла, поскольку адрес действителен только для конкретной локальной сети, а область может отличаться для каждого хоста в этой локальной сети.

Чтобы использовать адрес, добавьте к нему область действия, например. fe80::250:56ff:feb4:7c43%eno33554952