|
| 1 | +# DNS Suffix Management |
| 2 | + |
| 3 | +The suffix commands allow you to manage DNS suffixes for Redis Enterprise database endpoints. DNS suffixes provide custom domain names for database endpoints, useful for multi-tenant deployments and organizing databases by environment or purpose. |
| 4 | + |
| 5 | +## Available Commands |
| 6 | + |
| 7 | +### List DNS Suffixes |
| 8 | + |
| 9 | +List all configured DNS suffixes in the cluster: |
| 10 | + |
| 11 | +```bash |
| 12 | +# List all DNS suffixes |
| 13 | +redisctl enterprise suffix list |
| 14 | + |
| 15 | +# List suffixes as a table |
| 16 | +redisctl enterprise suffix list -o table |
| 17 | + |
| 18 | +# Filter to active suffixes |
| 19 | +redisctl enterprise suffix list -q "[?status == 'active']" |
| 20 | + |
| 21 | +# Get suffix names only |
| 22 | +redisctl enterprise suffix list -q "[].name" |
| 23 | +``` |
| 24 | + |
| 25 | +### Get DNS Suffix Details |
| 26 | + |
| 27 | +Get detailed information about a specific DNS suffix: |
| 28 | + |
| 29 | +```bash |
| 30 | +# Get suffix details |
| 31 | +redisctl enterprise suffix get example.redis.local |
| 32 | + |
| 33 | +# Get suffix in YAML format |
| 34 | +redisctl enterprise suffix get example.redis.local -o yaml |
| 35 | + |
| 36 | +# Extract specific fields |
| 37 | +redisctl enterprise suffix get example.redis.local -q '{name: name, dns_servers: dns_servers}' |
| 38 | + |
| 39 | +# Check if suffix is in use |
| 40 | +redisctl enterprise suffix get example.redis.local -q 'in_use' |
| 41 | +``` |
| 42 | + |
| 43 | +## Output Examples |
| 44 | + |
| 45 | +### DNS Suffix List |
| 46 | +```json |
| 47 | +[ |
| 48 | + { |
| 49 | + "name": "prod.redis.local", |
| 50 | + "status": "active", |
| 51 | + "dns_servers": ["10.0.1.53", "10.0.2.53"], |
| 52 | + "databases": 5, |
| 53 | + "created": "2024-01-15T10:30:00Z" |
| 54 | + }, |
| 55 | + { |
| 56 | + "name": "dev.redis.local", |
| 57 | + "status": "active", |
| 58 | + "dns_servers": ["10.0.3.53"], |
| 59 | + "databases": 12, |
| 60 | + "created": "2024-02-20T14:15:00Z" |
| 61 | + } |
| 62 | +] |
| 63 | +``` |
| 64 | + |
| 65 | +### DNS Suffix Details |
| 66 | +```json |
| 67 | +{ |
| 68 | + "name": "prod.redis.local", |
| 69 | + "status": "active", |
| 70 | + "dns_servers": ["10.0.1.53", "10.0.2.53"], |
| 71 | + "dns_zone": "redis.local", |
| 72 | + "ttl": 60, |
| 73 | + "databases": [ |
| 74 | + { |
| 75 | + "bdb_uid": 1, |
| 76 | + "name": "cache-db", |
| 77 | + "endpoint": "cache-db.prod.redis.local:16379" |
| 78 | + }, |
| 79 | + { |
| 80 | + "bdb_uid": 2, |
| 81 | + "name": "session-db", |
| 82 | + "endpoint": "session-db.prod.redis.local:16380" |
| 83 | + } |
| 84 | + ], |
| 85 | + "in_use": true, |
| 86 | + "created": "2024-01-15T10:30:00Z", |
| 87 | + "modified": "2024-03-01T09:45:00Z" |
| 88 | +} |
| 89 | +``` |
| 90 | + |
| 91 | +## Common Use Cases |
| 92 | + |
| 93 | +### Environment-Based Suffixes |
| 94 | + |
| 95 | +Organize databases by environment using DNS suffixes: |
| 96 | + |
| 97 | +```bash |
| 98 | +# List production suffixes |
| 99 | +redisctl enterprise suffix list -q "[?contains(name, 'prod')]" |
| 100 | + |
| 101 | +# List development suffixes |
| 102 | +redisctl enterprise suffix list -q "[?contains(name, 'dev')]" |
| 103 | + |
| 104 | +# Check staging suffix configuration |
| 105 | +redisctl enterprise suffix get staging.redis.local |
| 106 | +``` |
| 107 | + |
| 108 | +### Multi-Tenant Deployments |
| 109 | + |
| 110 | +Manage suffixes for multi-tenant scenarios: |
| 111 | + |
| 112 | +```bash |
| 113 | +# List suffixes by tenant |
| 114 | +redisctl enterprise suffix list -q "[?contains(name, 'tenant')]" -o table |
| 115 | + |
| 116 | +# Get tenant-specific suffix |
| 117 | +redisctl enterprise suffix get tenant-a.redis.local |
| 118 | + |
| 119 | +# Count databases per suffix |
| 120 | +redisctl enterprise suffix list -q "[].{suffix: name, database_count: databases}" |
| 121 | +``` |
| 122 | + |
| 123 | +### DNS Configuration Verification |
| 124 | + |
| 125 | +Verify DNS suffix configurations: |
| 126 | + |
| 127 | +```bash |
| 128 | +# Check DNS servers for all suffixes |
| 129 | +redisctl enterprise suffix list -q "[].{name: name, servers: dns_servers}" |
| 130 | + |
| 131 | +# Find suffixes with specific DNS server |
| 132 | +redisctl enterprise suffix list -q "[?contains(dns_servers, '10.0.1.53')]" |
| 133 | + |
| 134 | +# Verify TTL settings |
| 135 | +redisctl enterprise suffix list -q "[].{name: name, ttl: ttl}" -o table |
| 136 | +``` |
| 137 | + |
| 138 | +## Integration Examples |
| 139 | + |
| 140 | +### Database Creation with Suffix |
| 141 | + |
| 142 | +When creating databases, specify the DNS suffix: |
| 143 | + |
| 144 | +```bash |
| 145 | +# Create database with specific suffix |
| 146 | +cat <<EOF | redisctl enterprise database create --data - |
| 147 | +{ |
| 148 | + "name": "app-cache", |
| 149 | + "memory_size": 1073741824, |
| 150 | + "dns_suffix_name": "prod.redis.local" |
| 151 | +} |
| 152 | +EOF |
| 153 | + |
| 154 | +# Verify database endpoint |
| 155 | +redisctl enterprise database get <bdb_uid> -q 'endpoint' |
| 156 | +``` |
| 157 | + |
| 158 | +### Monitoring Suffix Usage |
| 159 | + |
| 160 | +Monitor DNS suffix utilization: |
| 161 | + |
| 162 | +```bash |
| 163 | +# Check suffix usage |
| 164 | +for suffix in $(redisctl enterprise suffix list -q "[].name" -o json | jq -r '.[]'); do |
| 165 | + echo "Suffix: $suffix" |
| 166 | + redisctl enterprise suffix get "$suffix" -q 'databases' | jq length |
| 167 | +done |
| 168 | + |
| 169 | +# Find unused suffixes |
| 170 | +redisctl enterprise suffix list -q "[?databases == \`0\`].name" |
| 171 | + |
| 172 | +# Get suffix with most databases |
| 173 | +redisctl enterprise suffix list -q "max_by(@, &databases).{name: name, count: databases}" |
| 174 | +``` |
| 175 | + |
| 176 | +### DNS Server Management |
| 177 | + |
| 178 | +Manage DNS server configurations: |
| 179 | + |
| 180 | +```bash |
| 181 | +# List all unique DNS servers |
| 182 | +redisctl enterprise suffix list -q "[].dns_servers[]" | jq -s 'unique' |
| 183 | + |
| 184 | +# Find suffixes by DNS server count |
| 185 | +redisctl enterprise suffix list -q "[?length(dns_servers) > \`1\`]" |
| 186 | + |
| 187 | +# Check DNS server availability |
| 188 | +for server in $(redisctl enterprise suffix list -q "[].dns_servers[]" | jq -r 'unique[]'); do |
| 189 | + echo "Checking DNS server: $server" |
| 190 | + dig @$server test.redis.local +short |
| 191 | +done |
| 192 | +``` |
| 193 | + |
| 194 | +## Best Practices |
| 195 | + |
| 196 | +1. **Naming Convention**: Use consistent naming patterns for suffixes (e.g., `<environment>.<domain>`) |
| 197 | +2. **DNS Server Redundancy**: Configure multiple DNS servers for high availability |
| 198 | +3. **TTL Settings**: Set appropriate TTL values based on your DNS infrastructure |
| 199 | +4. **Environment Separation**: Use different suffixes for different environments |
| 200 | +5. **Documentation**: Maintain documentation of suffix assignments and purposes |
| 201 | + |
| 202 | +## Troubleshooting |
| 203 | + |
| 204 | +### Suffix Not Resolving |
| 205 | + |
| 206 | +If DNS suffixes are not resolving: |
| 207 | + |
| 208 | +```bash |
| 209 | +# Check suffix configuration |
| 210 | +redisctl enterprise suffix get <suffix_name> |
| 211 | + |
| 212 | +# Verify DNS servers |
| 213 | +redisctl enterprise suffix get <suffix_name> -q 'dns_servers' |
| 214 | + |
| 215 | +# Check database endpoints using the suffix |
| 216 | +redisctl enterprise database list -q "[?dns_suffix_name == '<suffix_name>']" |
| 217 | + |
| 218 | +# Test DNS resolution |
| 219 | +dig @<dns_server> <database>.<suffix_name> |
| 220 | +``` |
| 221 | + |
| 222 | +### Database Endpoint Issues |
| 223 | + |
| 224 | +When databases aren't accessible via suffix: |
| 225 | + |
| 226 | +```bash |
| 227 | +# Check database suffix assignment |
| 228 | +redisctl enterprise database get <bdb_uid> -q 'dns_suffix_name' |
| 229 | + |
| 230 | +# Verify suffix is active |
| 231 | +redisctl enterprise suffix get <suffix_name> -q 'status' |
| 232 | + |
| 233 | +# List all endpoints for suffix |
| 234 | +redisctl enterprise suffix get <suffix_name> -q 'databases[].endpoint' |
| 235 | +``` |
| 236 | + |
| 237 | +## Related Commands |
| 238 | + |
| 239 | +- `redisctl enterprise database` - Create and manage databases with DNS suffixes |
| 240 | +- `redisctl enterprise cluster` - View cluster-wide DNS configuration |
| 241 | +- `redisctl enterprise endpoint` - Monitor endpoint availability and statistics |
0 commit comments