{question}
How do I use IPv6 with SingleStoreDB?
{question}
{answer}
From the 8.0 release of SingleStoreDB, we have added initial support for IPv6 to the SingleStoreDB engine (memsqld) and SingleStoreDB Toolbox (1.14.4). Please note that this feature is a preview and should not be used in production!
New Engine Variables
Two new engine variables control IPv6:
allow_ipv6 - Determines whether IPv6 is enabled.
bind_address - Defines the IP address to use to listen for incoming connections.
Please review the full documentation for these variables in the List of Engine Variables.
Before You Begin
- Ensure that your SingleStoreDB hosts are registered by hostname and not by IP address. Use the following command to view your host registration details:
sdb-toolbox-config list-hosts
- Ensure that you have IPv6 addresses on each host and verify IPv6 connectivity between all nodes.
- Check your firewall settings to verify that IPv6 traffic is allowed for your SingleStoreDB cluster's configured port(s). Typically, nodes are configured with port 3306, but this can vary. Use the following command to identify which ports your nodes are using:
sdb-admin list-nodes
Steps to Enable IPv6
- Ensure you are running SingleStoreDB 8.0 or later. Run the following command to determine your SingleStoreDB version:
singlestore> select @@memsql_version;
- Change the aforementioned engine variables:
sdb-admin update-config --key=allow_ipv6 --value=true --all -y
sdb-admin update-config --key=bind_address --value=:: --all -y - Restart the cluster for the variable changes to take effect:
sdb-admin restart-node --all -y
Troubleshooting Tips
Verify basic host IPv6 communication:
ping6 <hostname>
Verify host IPv6 communication using a specific port:
telnet -6 <hostname> 3306
or
nc -6zv <hostname> 3306
Use the tcpdump to confirm network traffic is occurring on a specified port:
sudo tcpdump -i any -nn 'port 3306 or port 3307'
Use the tcpdump to check for IPv6 network traffic:
sudo tcpdump -i any ip6
{answer}