Cannot connect to redis over IPv6 #10276

Closed
opened 2025-12-29 21:29:18 +01:00 by adam · 10 comments
Owner

Originally created by @skwerlman on GitHub (Sep 22, 2024).

Deployment Type

Self-hosted

NetBox Version

v4.1.1

Python Version

3.12

Steps to Reproduce

  1. Install redis with on a server with an IPv6 address
  2. Install netbox on another server
  3. configure netbox to connect to redis by ip address
  4. start netbox

Expected Behavior

netbox should connect to redis without issue

Observed Behavior

netbox returns an http 400 error with this message

<class 'ValueError'>

Port could not be cast to integer value as '0:0:1:0:0:1:2121:6379'

Python version: 3.12.6
NetBox version: 4.1.1
Plugins: 
  netbox_dns: 1.1.1
  netbox_topology_views: 4.1.0

The REDIS section of my configuration.py looks like this:

REDIS = {
    'tasks': {
        'HOST': 'fc00:0:0:1:0:0:1:2121',
        'PORT': 6379,
        'USERNAME': '',
        'PASSWORD': '<redacted>',
        'DATABASE': 5,
        'SSL': False,
    },
        'caching': {
        'HOST': 'fc00:0:0:1:0:0:1:2121',
        'PORT': 6379,
        'USERNAME': '',
        'PASSWORD': '<redacted>',
        'DATABASE': 6,
        'SSL': False,
    }
}
Originally created by @skwerlman on GitHub (Sep 22, 2024). ### Deployment Type Self-hosted ### NetBox Version v4.1.1 ### Python Version 3.12 ### Steps to Reproduce 1. Install redis with on a server with an IPv6 address 2. Install netbox on another server 3. configure netbox to connect to redis by ip address 4. start netbox ### Expected Behavior netbox should connect to redis without issue ### Observed Behavior netbox returns an http 400 error with this message ``` <class 'ValueError'> Port could not be cast to integer value as '0:0:1:0:0:1:2121:6379' Python version: 3.12.6 NetBox version: 4.1.1 Plugins: netbox_dns: 1.1.1 netbox_topology_views: 4.1.0 ``` The REDIS section of my configuration.py looks like this: ``` REDIS = { 'tasks': { 'HOST': 'fc00:0:0:1:0:0:1:2121', 'PORT': 6379, 'USERNAME': '', 'PASSWORD': '<redacted>', 'DATABASE': 5, 'SSL': False, }, 'caching': { 'HOST': 'fc00:0:0:1:0:0:1:2121', 'PORT': 6379, 'USERNAME': '', 'PASSWORD': '<redacted>', 'DATABASE': 6, 'SSL': False, } } ```
adam closed this issue 2025-12-29 21:29:18 +01:00
Author
Owner

@marsteel commented on GitHub (Sep 23, 2024):

@skwerlman, can you try to add brackets?
'HOST': '[fc00:0:0:1:0:0:1]:2121',

@marsteel commented on GitHub (Sep 23, 2024): @skwerlman, can you try to add brackets? ` 'HOST': '[fc00:0:0:1:0:0:1]:2121',`
Author
Owner

@jeremystretch commented on GitHub (Sep 23, 2024):

As @marsteel points out above, IPv6 addresses must be enclosed by brackets when appending a port number. This is a convention of IPv6 addressing and not specific to NetBox.

@jeremystretch commented on GitHub (Sep 23, 2024): As @marsteel points out above, IPv6 addresses must be enclosed by brackets when appending a port number. This is a convention of IPv6 addressing and not specific to NetBox.
Author
Owner

@skwerlman commented on GitHub (Sep 23, 2024):

that is not a port number at the end; the port number is the default for redis (6379)

adding brackets to the host in the way suggested by @marsteel would result in an invalid 7-part IPv6 address and 2 conflicting port numbers.

adding brackets around the entire address instead ('HOST': '[fc00:0:0:1:0:0:1:2121]') results in netbox-rq.service failing to start with this error:

Sep 22 19:55:39 netbox systemd[1]: Started NetBox Request Queue Worker.
Sep 22 19:55:47 netbox python3[4014]: Error -2 connecting to [fc00:0:0:1:0:0:1:2121]:6379. Name or service not known.
Sep 22 19:55:48 netbox systemd[1]: netbox-rq.service: Main process exited, code=exited, status=1/FAILURE
Sep 22 19:55:48 netbox systemd[1]: netbox-rq.service: Failed with result 'exit-code'.
Sep 22 19:55:48 netbox systemd[1]: netbox-rq.service: Consumed 4.806s CPU time, 191.5M memory peak, 1.8M memory swap peak.
@skwerlman commented on GitHub (Sep 23, 2024): that is not a port number at the end; the port number is the default for redis (6379) adding brackets to the host in the way suggested by @marsteel would result in an invalid 7-part IPv6 address and 2 conflicting port numbers. adding brackets around the entire address instead (`'HOST': '[fc00:0:0:1:0:0:1:2121]'`) results in netbox-rq.service failing to start with this error: ``` Sep 22 19:55:39 netbox systemd[1]: Started NetBox Request Queue Worker. Sep 22 19:55:47 netbox python3[4014]: Error -2 connecting to [fc00:0:0:1:0:0:1:2121]:6379. Name or service not known. Sep 22 19:55:48 netbox systemd[1]: netbox-rq.service: Main process exited, code=exited, status=1/FAILURE Sep 22 19:55:48 netbox systemd[1]: netbox-rq.service: Failed with result 'exit-code'. Sep 22 19:55:48 netbox systemd[1]: netbox-rq.service: Consumed 4.806s CPU time, 191.5M memory peak, 1.8M memory swap peak. ```
Author
Owner

@marsteel commented on GitHub (Sep 24, 2024):

@skwerlman what is the output if you use native redis cli to connect to redis server over IPv6 on the host where Netbox runs? https://redis.io/docs/latest/develop/connect/cli/ Just to make sure IPv6 can work or IPv6 is indeed enabled on Netbox host.

Or try create DNS name with AAAA record for redis server IPv6 address.

@marsteel commented on GitHub (Sep 24, 2024): @skwerlman what is the output if you use native redis cli to connect to redis server over IPv6 on the host where Netbox runs? https://redis.io/docs/latest/develop/connect/cli/ Just to make sure IPv6 can work or IPv6 is indeed enabled on Netbox host. Or try create DNS name with AAAA record for redis server IPv6 address.
Author
Owner

@skwerlman commented on GitHub (Sep 24, 2024):

i am able to connect successfully to the redis server using redis-cli -h fc00:0:0:1:0:0:1:2121:

[root@netbox ~]# redis-cli -h fc00:0:0:1:0:0:1:2121
[fc00:0:0:1:0:0:1:2121]:6379> auth <redacted>
OK
[fc00:0:0:1:0:0:1:2121]:6379> SET github_issue_17567 'test'
OK
[fc00:0:0:1:0:0:1:2121]:6379> GET github_issue_17567
"test"
@skwerlman commented on GitHub (Sep 24, 2024): i am able to connect successfully to the redis server using `redis-cli -h fc00:0:0:1:0:0:1:2121`: ``` [root@netbox ~]# redis-cli -h fc00:0:0:1:0:0:1:2121 [fc00:0:0:1:0:0:1:2121]:6379> auth <redacted> OK [fc00:0:0:1:0:0:1:2121]:6379> SET github_issue_17567 'test' OK [fc00:0:0:1:0:0:1:2121]:6379> GET github_issue_17567 "test" ```
Author
Owner

@marsteel commented on GitHub (Sep 25, 2024):

@skwerlman please try create DNS name with AAAA record for redis server IPv6 address.
see https://stackoverflow.com/questions/77739970/cant-connect-on-remote-redis-with-hostname-when-bind-on-ipv6

@marsteel commented on GitHub (Sep 25, 2024): @skwerlman please try create DNS name with AAAA record for redis server IPv6 address. see https://stackoverflow.com/questions/77739970/cant-connect-on-remote-redis-with-hostname-when-bind-on-ipv6
Author
Owner

@marsteel commented on GitHub (Sep 25, 2024):

@skwerlman DNS AAAA record can work. v6.magang.name is a DNS name with only AAAA record
`
'HOST': 'v6.magang.name',

ping v6.magang.name
PING v6.magang.name(ip6-localhost (::1)) 56 data bytes
64 bytes from ip6-localhost (::1): icmp_seq=1 ttl=64 time=0.033 ms

    'HOST': 'v6.magang.name',

● netbox-rq.service - NetBox Request Queue Worker
Loaded: loaded (/etc/systemd/system/netbox-rq.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-09-25 10:53:56 UTC; 58s ago
Docs: https://docs.netbox.dev/
Main PID: 1484788 (python3)
Tasks: 3 (limit: 28681)
Memory: 144.6M
CPU: 6.438s
CGroup: /system.slice/netbox-rq.service
├─1484788 /opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker high default low
└─1484857 /opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker high default low

Sep 25 10:53:56 linux-machine systemd[1]: Started NetBox Request Queue Worker.
Sep 25 10:53:57 linux-machine python3[1484788]: redis://v6.magang.name:6379/1
Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Worker rq:worker:730d22f93d20469db4ac758dea818614 started with PID 1484788, version 1.15.1
Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Subscribing to channel rq:pubsub:730d22f93d20469db4ac758dea818614
Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 *** Listening on high, default, low...
Sep 25 10:54:09 linux-machine python3[1484857]: 10:54:09 Scheduler for default, low, high started with PID 1484857
Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Cleaning registries for queue: high
Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Cleaning registries for queue: default
Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Cleaning registries for queue: low
`

You can try skwerlman.magang.name

    'HOST': skwerlman.magang.name ',

Non-authoritative answer:
Name: skwerlman.magang.name
Address: fc00::1:0:0:1:2121

@marsteel commented on GitHub (Sep 25, 2024): @skwerlman DNS AAAA record can work. v6.magang.name is a DNS name with only AAAA record ` 'HOST': 'v6.magang.name', ping v6.magang.name PING v6.magang.name(ip6-localhost (::1)) 56 data bytes 64 bytes from ip6-localhost (::1): icmp_seq=1 ttl=64 time=0.033 ms 'HOST': 'v6.magang.name', ● netbox-rq.service - NetBox Request Queue Worker Loaded: loaded (/etc/systemd/system/netbox-rq.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2024-09-25 10:53:56 UTC; 58s ago Docs: https://docs.netbox.dev/ Main PID: 1484788 (python3) Tasks: 3 (limit: 28681) Memory: 144.6M CPU: 6.438s CGroup: /system.slice/netbox-rq.service ├─1484788 /opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker high default low └─1484857 /opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker high default low Sep 25 10:53:56 linux-machine systemd[1]: Started NetBox Request Queue Worker. Sep 25 10:53:57 linux-machine python3[1484788]: redis://v6.magang.name:6379/1 Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Worker rq:worker:730d22f93d20469db4ac758dea818614 started with PID 1484788, version 1.15.1 Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Subscribing to channel rq:pubsub:730d22f93d20469db4ac758dea818614 Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 *** Listening on high, default, low... Sep 25 10:54:09 linux-machine python3[1484857]: 10:54:09 Scheduler for default, low, high started with PID 1484857 Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Cleaning registries for queue: high Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Cleaning registries for queue: default Sep 25 10:54:09 linux-machine python3[1484788]: 10:54:09 Cleaning registries for queue: low ` You can try skwerlman.magang.name 'HOST': skwerlman.magang.name ', Non-authoritative answer: Name: skwerlman.magang.name Address: fc00::1:0:0:1:2121
Author
Owner

@skwerlman commented on GitHub (Sep 25, 2024):

yes, AAAA does work. in my case i have worked around this by setting an entry in /etc/hosts:

fc00:0:0:1:0:0:1:2121 redis.pve.lan

however, i believe using ipv6 addresses directly should still be supported, or be documented to not work as expected

@skwerlman commented on GitHub (Sep 25, 2024): yes, AAAA does work. in my case i have worked around this by setting an entry in /etc/hosts: ``` fc00:0:0:1:0:0:1:2121 redis.pve.lan ``` however, i believe using ipv6 addresses directly should still be supported, or be documented to not work as expected
Author
Owner

@skwerlman commented on GitHub (Sep 25, 2024):

@jeremystretch can this issue be reopened? it still exists for me, and i would like to see it get fixed, even though there is a workaround

@skwerlman commented on GitHub (Sep 25, 2024): @jeremystretch can this issue be reopened? it still exists for me, and i would like to see it get fixed, even though there is a workaround
Author
Owner

@marsteel commented on GitHub (Sep 26, 2024):

@skwerlman @jeremystretch It could be a bug in django-redis or redis-py. But it can be documented in Netbox docs.

@marsteel commented on GitHub (Sep 26, 2024): @skwerlman @jeremystretch It could be a bug in django-redis or redis-py. But it can be documented in Netbox docs.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#10276