1. SCAN Overview and Architecture
Single Client Access Name (SCAN) is a critical component of Oracle Real Application Clusters (RAC) that provides a single network name for clients to access any Oracle database running in a cluster. SCAN eliminates the need for clients to change connection strings when nodes are added to or removed from the cluster.
What is SCAN?
SCAN is a fully qualified domain name (FQDN) registered in DNS that resolves to multiple IP addresses. By default, Oracle recommends configuring three SCAN IP addresses to provide high availability and load balancing for client connections.
Key Benefits
- Simplified Client Configuration: Single name for all database connections regardless of cluster size
- High Availability: Multiple IP addresses provide redundancy and failover capability
- Load Balancing: Automatic distribution of client connections across SCAN listeners
- Scalability: Add or remove nodes without updating client connection strings
- Location Transparency: Clients remain unaware of cluster topology changes
SCAN Architecture
SCAN Architecture Diagram
Client Applications → DNS Server → SCAN Name (3 IPs) → SCAN Listeners → RAC Nodes
| Component | Description | Quantity |
|---|
| SCAN Name | Fully qualified domain name (FQDN) | 1 per cluster |
| SCAN IP Addresses | Virtual IP addresses assigned to SCAN | 3 (recommended) |
| SCAN Listeners | Oracle listeners running on SCAN IPs | 3 (one per SCAN IP) |
| DNS Server | Resolves SCAN name to multiple IPs | 1 or more (HA) |
SCAN Resolution Process
- Client application requests connection to database using SCAN name
- DNS server resolves SCAN name to 3 IP addresses (round-robin)
- Client attempts connection to first IP address returned by DNS
- SCAN listener accepts connection and redirects to appropriate node listener
- Node listener establishes database connection on local instance
- If SCAN listener unavailable, client tries next IP address automatically
2. Prerequisites and Requirements
Network Requirements
- Public network configured and operational on all cluster nodes
- Three available IP addresses in the same subnet as public network
- IP addresses must not be in use or reserved by other systems
- Network switches and routers configured to allow SCAN traffic
- Firewall rules permitting traffic on port 1521 (or custom listener port)
DNS Requirements
Critical Requirement:
DNS server must support round-robin resolution for multiple A records with the same hostname. This is essential for SCAN functionality.
- DNS server installed and operational (BIND, Microsoft DNS, or other)
- Forward lookup zone configured for domain
- Reverse lookup zones configured for IP subnets (recommended)
- Appropriate permissions to create/modify DNS records
- DNS server configured in
/etc/resolv.conf on all nodes
Oracle Grid Infrastructure Requirements
- Oracle Grid Infrastructure 11.2.0.1 or higher
- Three SCAN VIP resources will be created during installation
- Three SCAN listener resources will be created automatically
- Cluster nodes must have DNS resolution working properly
Pre-Configuration Checklist
| Item | Requirement | Verification Command |
|---|
| DNS Resolution | Working DNS on all nodes | nslookup google.com |
| Domain Name | FQDN decided for SCAN | Example: rac-scan.example.com |
| IP Addresses | 3 IPs allocated and available | ping <ip_address> (should fail) |
| Subnet Match | Same subnet as public network | ifconfig or ip addr show |
| DNS Server Access | Admin credentials | Login to DNS management console |
3. DNS Server Configuration
Supported DNS Servers
Oracle SCAN supports any DNS implementation that follows standard DNS protocols. Common implementations include:
- BIND (Berkeley Internet Name Domain): Most common on Linux/Unix systems
- Microsoft DNS: Integrated with Windows Active Directory
- dnsmasq: Lightweight DNS forwarder for smaller deployments
- PowerDNS: High-performance authoritative DNS server
BIND DNS Server Configuration
Install BIND (if not already installed)
# RHEL/Oracle Linux/CentOS
sudo yum install bind bind-utils -y
# Ubuntu/Debian
sudo apt-get install bind9 bind9utils -y
# Verify installation
named -v
Configure BIND Main Configuration File
Edit /etc/named.conf to define zones:
# Edit named.conf
sudo vi /etc/named.conf
# Add or verify these options
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
# Listen on all interfaces
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
# Forward requests for external domains
forwarders {
8.8.8.8;
8.8.4.4;
};
};
# Define forward lookup zone
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
# Define reverse lookup zone (for 192.168.1.0/24)
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.rev";
allow-update { none; };
};
Set Proper Ownership and Permissions
# Set ownership
sudo chown named:named /etc/named.conf
# Set permissions
sudo chmod 640 /etc/named.conf
# Verify configuration syntax
sudo named-checkconf /etc/named.conf
Microsoft DNS Server Configuration
Access DNS Manager
- Open Server Manager on Windows Server
- Navigate to Tools → DNS
- Connect to your DNS server
- Expand Forward Lookup Zones
Configure Zone
- Right-click Forward Lookup Zones and select New Zone
- Select Primary Zone and click Next
- Enter zone name (e.g.,
example.com) and click Next - Create new zone file and click Next
- Allow dynamic updates if required or select Do not allow dynamic updates
- Click Finish
Round-Robin Configuration: Microsoft DNS enables round-robin by default. Verify this setting in DNS server properties under the Advanced tab. Ensure Enable round robin is checked.
4. Creating DNS Records
Planning SCAN Configuration
| Parameter | Example Value | Description |
|---|
| SCAN Name | rac-scan | Hostname portion of FQDN |
| Domain | example.com | DNS domain name |
| FQDN | rac-scan.example.com | Complete SCAN name |
| SCAN IP 1 | 192.168.1.201 | First SCAN IP address |
| SCAN IP 2 | 192.168.1.202 | Second SCAN IP address |
| SCAN IP 3 | 192.168.1.203 | Third SCAN IP address |
BIND DNS – Forward Zone Configuration
Create Forward Zone File
# Create zone file
sudo vi /var/named/example.com.zone
# Add the following content
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2024011101 ; Serial (YYYYMMDDNN)
3600 ; Refresh (1 hour)
1800 ; Retry (30 minutes)
604800 ; Expire (1 week)
86400 ) ; Minimum TTL (1 day)
; Name server records
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.10
; SCAN records (critical for Oracle RAC)
rac-scan IN A 192.168.1.201
rac-scan IN A 192.168.1.202
rac-scan IN A 192.168.1.203
; Individual node records
rac1 IN A 192.168.1.101
rac2 IN A 192.168.1.102
rac3 IN A 192.168.1.103
; VIP records
rac1-vip IN A 192.168.1.111
rac2-vip IN A 192.168.1.112
rac3-vip IN A 192.168.1.113
Important: The three rac-scan A records must have the same hostname but different IP addresses. This is what enables round-robin DNS resolution.
Set Permissions and Verify Zone File
# Set ownership
sudo chown named:named /var/named/example.com.zone
# Set permissions
sudo chmod 640 /var/named/example.com.zone
# Verify zone file syntax
sudo named-checkzone example.com /var/named/example.com.zone
# Expected output
zone example.com/IN: loaded serial 2024011101
OK
BIND DNS – Reverse Zone Configuration
Create Reverse Zone File
# Create reverse zone file
sudo vi /var/named/192.168.1.rev
# Add the following content
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2024011101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; Name server
@ IN NS ns1.example.com.
; PTR records for SCAN IPs
201 IN PTR rac-scan.example.com.
202 IN PTR rac-scan.example.com.
203 IN PTR rac-scan.example.com.
; PTR records for nodes
101 IN PTR rac1.example.com.
102 IN PTR rac2.example.com.
103 IN PTR rac3.example.com.
; PTR records for VIPs
111 IN PTR rac1-vip.example.com.
112 IN PTR rac2-vip.example.com.
113 IN PTR rac3-vip.example.com.
Verify Reverse Zone File
# Verify reverse zone syntax
sudo named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev
# Expected output
zone 1.168.192.in-addr.arpa/IN: loaded serial 2024011101
OK
Microsoft DNS – Creating Records
Add Forward (A) Records for SCAN
- Open DNS Manager
- Expand Forward Lookup Zones
- Right-click your zone (e.g.,
example.com) and select New Host (A or AAAA) - Enter the following for each SCAN IP:
- Name: rac-scan
- IP address: 192.168.1.201 (then 202, 203 for second and third records)
- Uncheck Create associated pointer (PTR) record (we’ll create separately)
- Click Add Host
- Repeat for all three SCAN IP addresses
Add Reverse (PTR) Records
- Right-click Reverse Lookup Zones and select New Zone
- Create reverse lookup zone for your subnet (e.g.,
192.168.1.x) - Right-click the reverse zone and select New Pointer (PTR)
- Enter IP address and FQDN for each SCAN IP
Restart DNS Service
BIND on Linux
# Restart named service
sudo systemctl restart named
# Enable automatic start on boot
sudo systemctl enable named
# Check service status
sudo systemctl status named
# Verify DNS is listening on port 53
sudo netstat -tulpn | grep :53
sudo ss -tulpn | grep :53
Microsoft DNS
# Restart DNS service via PowerShell
Restart-Service DNS
# Or via Command Prompt
net stop DNS
net start DNS
# Verify service is running
Get-Service DNS
5. Verification and Testing
Test DNS Resolution from Cluster Nodes
Verify /etc/resolv.conf Configuration
# Check DNS configuration on each node
cat /etc/resolv.conf
# Expected content
search example.com
nameserver 192.168.1.10
nameserver 192.168.1.11
Best Practice: Configure at least two nameservers for redundancy. The search domain should match your DNS zone.
Test Forward Resolution
# Test SCAN name resolution using nslookup
nslookup rac-scan.example.com
# Expected output showing 3 IP addresses
Server: 192.168.1.10
Address: 192.168.1.10#53
Name: rac-scan.example.com
Address: 192.168.1.201
Name: rac-scan.example.com
Address: 192.168.1.202
Name: rac-scan.example.com
Address: 192.168.1.203
Sample nslookup Output:
$ nslookup rac-scan.example.com
Server: 192.168.1.10
Address: 192.168.1.10#53Name: rac-scan.example.com
Address: 192.168.1.201
Name: rac-scan.example.com
Address: 192.168.1.202
Name: rac-scan.example.com
Address: 192.168.1.203
Test Round-Robin Behavior
# Test multiple times to verify round-robin
for i in {1..6}; do
echo "=== Lookup $i ==="
nslookup rac-scan.example.com | grep -A 1 "Name:"
sleep 1
done
Expected Behavior: DNS should return all three IP addresses on each query, but the order may vary due to round-robin rotation. This ensures load distribution across SCAN listeners.
Test Using dig Command
# Test with dig (more detailed output)
dig rac-scan.example.com
# Short answer format
dig +short rac-scan.example.com
# Expected output
192.168.1.201
192.168.1.202
192.168.1.203
Test Reverse Resolution
# Test reverse DNS lookup
nslookup 192.168.1.201
# Expected output
Server: 192.168.1.10
Address: 192.168.1.10#53
201.1.168.192.in-addr.arpa name = rac-scan.example.com
# Test all three SCAN IPs
nslookup 192.168.1.202
nslookup 192.168.1.203
Verify Network Connectivity
Test IP Availability
# SCAN IPs should NOT respond to ping (not yet assigned)
ping -c 3 192.168.1.201
ping -c 3 192.168.1.202
ping -c 3 192.168.1.203
# If any IP responds, it's already in use - choose different IPs
Critical Check: Before Grid Infrastructure installation, SCAN IP addresses must NOT be assigned to any system. If ping succeeds, the IP is in use and cannot be used for SCAN.
Test Name Resolution from All Nodes
# Execute on each cluster node
ssh rac1 "nslookup rac-scan.example.com"
ssh rac2 "nslookup rac-scan.example.com"
ssh rac3 "nslookup rac-scan.example.com"
# All nodes should return the same three IP addresses
Verification Checklist
| Test | Command | Expected Result |
|---|
| DNS Service Running | systemctl status named | Active (running) |
| Forward Resolution | nslookup rac-scan.example.com | Returns 3 IP addresses |
| Reverse Resolution | nslookup 192.168.1.201 | Returns rac-scan.example.com |
| SCAN IPs Available | ping 192.168.1.201 | Destination Host Unreachable |
| All Nodes Resolve | ssh node "nslookup ..." | Consistent results across nodes |
| resolv.conf Correct | cat /etc/resolv.conf | DNS server IP present |
6. Grid Infrastructure Integration
SCAN Configuration During Grid Installation
When installing Oracle Grid Infrastructure, you’ll be prompted to specify the SCAN configuration:
Grid Installation Wizard – SCAN Settings
- Launch Grid Infrastructure installer:
./gridSetup.sh - Proceed through installation wizard to Cluster Configuration page
- Enter SCAN Name:
rac-scan.example.com - Installer will verify DNS resolution automatically
- Installer creates three SCAN VIP resources
- Installer creates three SCAN listener resources
Automatic Verification: Grid Infrastructure installer performs DNS resolution check and validates that SCAN name resolves to exactly three IP addresses. Installation will fail if DNS is not configured correctly.
Post-Installation SCAN Verification
Check SCAN VIP Status
# Check SCAN VIP resources
srvctl config scan
# Expected output
SCAN name: rac-scan.example.com, Network: 1
Subnet IPv4: 192.168.1.0/255.255.255.0/eth0
SCAN 1 IPv4 VIP: 192.168.1.201
SCAN VIP is enabled.
SCAN 2 IPv4 VIP: 192.168.1.202
SCAN VIP is enabled.
SCAN 3 IPv4 VIP: 192.168.1.203
SCAN VIP is enabled.
Check SCAN VIP Runtime Status
# Check if SCAN VIPs are online
srvctl status scan
# Expected output
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac1
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node rac2
SCAN VIP scan3 is enabled
SCAN VIP scan3 is running on node rac3
Check SCAN Listener Status
# Check SCAN listener configuration
srvctl config scan_listener
# Expected output
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
Registration invited nodes:
Registration invited subnets:
SCAN Listener is enabled.
SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521
Registration invited nodes:
Registration invited subnets:
SCAN Listener is enabled.
SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521
Registration invited nodes:
Registration invited subnets:
SCAN Listener is enabled.
# Check runtime status
srvctl status scan_listener
# Expected output
SCAN Listener LISTENER_SCAN1 is enabled
SCAN Listener LISTENER_SCAN1 is running on node rac1
SCAN Listener LISTENER_SCAN2 is enabled
SCAN Listener LISTENER_SCAN2 is running on node rac2
SCAN Listener LISTENER_SCAN3 is enabled
SCAN Listener LISTENER_SCAN3 is running on node rac3
Verify SCAN Listeners Are Accepting Connections
# Test connectivity to SCAN listeners
tnsping rac-scan.example.com
# Expected output
TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 11-JAN-2026 10:30:00
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.201)(PORT=1521)))
OK (10 msec)
Client Connection Configuration
TNS Connection String Using SCAN
# tnsnames.ora entry using SCAN
RACDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdb.example.com)
)
)
JDBC Connection String Using SCAN
jdbc:oracle:thin:@//rac-scan.example.com:1521/racdb.example.com
Connection Benefits: With SCAN, clients only need to know one name. Even if cluster topology changes (nodes added/removed), connection string remains unchanged.
7. Troubleshooting
Common Issues and Solutions
Issue 1: DNS Not Resolving SCAN Name
Symptom: nslookup rac-scan.example.com returns “server can’t find” error
Diagnosis:
# Check DNS server is reachable
ping 192.168.1.10
# Verify resolv.conf
cat /etc/resolv.conf
# Check zone file exists
sudo ls -l /var/named/example.com.zone
# Check DNS logs
sudo tail -50 /var/log/messages | grep named
Solutions:
- Verify DNS server IP in
/etc/resolv.conf - Ensure DNS service is running:
systemctl status named - Check zone file syntax:
named-checkzone example.com /var/named/example.com.zone - Restart DNS service:
systemctl restart named - Verify firewall allows DNS traffic:
firewall-cmd --list-all
Issue 2: Only One or Two IPs Returned
Symptom: nslookup returns fewer than 3 IP addresses for SCAN
Diagnosis:
# Check all A records exist in zone file
sudo grep rac-scan /var/named/example.com.zone
# Should show 3 lines with same hostname
rac-scan IN A 192.168.1.201
rac-scan IN A 192.168.1.202
rac-scan IN A 192.168.1.203
# Verify zone serial number was incremented after changes
sudo grep -i serial /var/named/example.com.zone
Solutions:
- Ensure all three A records are present in zone file
- Increment zone serial number after any changes
- Reload zone:
rndc reload example.com - Clear DNS cache on client:
systemd-resolve --flush-caches
Issue 3: SCAN IPs Already in Use
Symptom: Grid installation fails with message that SCAN IPs are already assigned
Diagnosis:
# Check if IPs respond to ping
ping -c 3 192.168.1.201
# Check ARP table for MAC address
arp -a | grep 192.168.1.201
# Scan network for device using IP
nmap -sP 192.168.1.201
Solutions:
- Choose different IP addresses not in use
- Update DNS records with new IP addresses
- Coordinate with network team to reserve IPs
- Document SCAN IP allocation to prevent future conflicts
Issue 4: Reverse DNS Not Working
Symptom: nslookup <ip_address> fails or returns wrong name
Diagnosis:
# Test reverse lookup
nslookup 192.168.1.201
# Check reverse zone file exists
sudo ls -l /var/named/192.168.1.rev
# Verify PTR records
sudo grep "201\|202\|203" /var/named/192.168.1.rev
Solutions:
- Create reverse zone if missing
- Add PTR records for all three SCAN IPs
- Verify reverse zone name matches subnet correctly
- Increment serial number and reload zone
Issue 5: Grid Installation Cannot Validate SCAN
Symptom: Grid installer shows “SCAN name resolution failed” error
Diagnosis:
# Test from grid installation user
su - grid
nslookup rac-scan.example.com
# Verify hostname resolution
hostname
hostname -f
# Check /etc/hosts for SCAN (should NOT be there)
grep rac-scan /etc/hosts
Solutions:
- Remove any SCAN entries from
/etc/hosts on all nodes - Ensure DNS returns exactly 3 IP addresses
- Verify all cluster nodes can resolve SCAN
- Check network connectivity between nodes and DNS server
- Use fully qualified domain name (FQDN) for SCAN
Diagnostic Commands Reference
| Command | Purpose |
|---|
nslookup <hostname> | Test DNS forward resolution |
dig <hostname> | Detailed DNS query information |
host <hostname> | Simple DNS lookup utility |
named-checkconf | Verify named.conf syntax |
named-checkzone | Verify zone file syntax |
rndc reload | Reload DNS zones without restart |
srvctl config scan | Display SCAN configuration |
srvctl status scan | Check SCAN VIP runtime status |
8. Best Practices
DNS Server Configuration
High Availability
- Deploy at least two DNS servers for redundancy
- Configure DNS servers as primary and secondary in
/etc/resolv.conf - Use DNS server replication or zone transfers for synchronization
- Monitor DNS server health and performance regularly
Security
- Restrict zone transfers to authorized servers only
- Use TSIG (Transaction Signature) for authenticated zone transfers
- Limit recursive queries to internal networks
- Regularly update DNS software to patch security vulnerabilities
- Enable DNS query logging for audit purposes
Performance
- Set appropriate TTL (Time To Live) values (recommended: 3600 seconds)
- Enable DNS caching on client systems
- Monitor DNS query response times
- Place DNS servers on same network segment as cluster for low latency
SCAN Configuration
IP Address Planning
- Reserve SCAN IP addresses in IPAM (IP Address Management) system
- Document SCAN IP allocation in network documentation
- Choose IP addresses from same subnet as public network
- Avoid using DHCP for SCAN IP addresses
- Use consecutive IP addresses for easier management (optional)
Naming Conventions
- Use descriptive SCAN names:
<cluster_name>-scan.<domain> - Keep SCAN names short and meaningful
- Follow organizational naming standards
- Document SCAN name in cluster configuration records
Testing
- Test DNS resolution from all cluster nodes before Grid installation
- Verify round-robin behavior by querying multiple times
- Test both forward and reverse DNS resolution
- Document DNS test results in installation checklist
- Perform periodic DNS health checks post-installation
Maintenance Procedures
Adding New SCAN IPs
If you need to change SCAN configuration after Grid installation:
# Add new A records to DNS zone file
sudo vi /var/named/example.com.zone
# Increment serial number
# Add or modify rac-scan A records
# Reload DNS zone
sudo rndc reload example.com
# Modify SCAN configuration in Grid
srvctl modify scan -n rac-scan.example.com
# Restart SCAN resources
srvctl stop scan
srvctl start scan
# Verify new configuration
srvctl config scan
srvctl status scan
DNS Zone File Updates
Follow this workflow for any zone file changes:
- Backup current zone file:
cp /var/named/example.com.zone /var/named/example.com.zone.bak - Edit zone file with required changes
- Increment serial number (critical!)
- Verify syntax:
named-checkzone example.com /var/named/example.com.zone - Reload zone:
rndc reload example.com - Test changes:
nslookup rac-scan.example.com - Document changes in change management system
Monitoring
- Monitor DNS server availability using monitoring tools (Nagios, Zabbix, etc.)
- Set up alerts for DNS resolution failures
- Monitor SCAN VIP and listener status regularly
- Review DNS logs periodically for errors or unusual activity
- Perform quarterly DNS resolution tests from all cluster nodes
Documentation
Maintain comprehensive documentation including:
- DNS server IP addresses and hostnames
- SCAN name and associated IP addresses
- DNS zone file locations and backup procedures
- Contact information for DNS administrators
- Troubleshooting procedures and known issues
- Change history for SCAN configuration
Common Pitfalls to Avoid
Critical Mistakes to Avoid:
- Adding SCAN entries to
/etc/hosts (use DNS only) - Using single IP address for SCAN (always use 3)
- Forgetting to increment DNS zone serial number after changes
- Using SCAN IP addresses from different subnet than public network
- Not testing DNS resolution before Grid installation
- Disabling DNS round-robin feature
- Using DHCP-assigned IP addresses for SCAN
- Not configuring reverse DNS (PTR records)
Pre-Installation Validation Script
Use this script to validate DNS configuration before Grid installation:
#!/bin/bash
# SCAN DNS Validation Script
SCAN_NAME="rac-scan.example.com"
EXPECTED_IPS=("192.168.1.201" "192.168.1.202" "192.168.1.203")
echo "=== SCAN DNS Configuration Validation ==="
echo
# Test 1: Check DNS resolution
echo "Test 1: DNS Forward Resolution"
IPS=$(nslookup $SCAN_NAME | grep -A 10 "Name:" | grep "Address:" | awk '{print $2}' | sort)
COUNT=$(echo "$IPS" | wc -l)
if [ $COUNT -eq 3 ]; then
echo "✓ PASS: SCAN resolves to 3 IP addresses"
else
echo "✗ FAIL: SCAN resolves to $COUNT IP addresses (expected 3)"
fi
echo
# Test 2: Check IP availability
echo "Test 2: SCAN IP Availability"
for ip in "${EXPECTED_IPS[@]}"; do
ping -c 1 -W 1 $ip &>/dev/null
if [ $? -ne 0 ]; then
echo "✓ PASS: $ip is not in use"
else
echo "✗ FAIL: $ip is already in use"
fi
done
echo
# Test 3: Check reverse DNS
echo "Test 3: Reverse DNS Resolution"
for ip in "${EXPECTED_IPS[@]}"; do
REVERSE=$(nslookup $ip | grep "name =" | awk '{print $4}')
if [[ $REVERSE == $SCAN_NAME* ]]; then
echo "✓ PASS: $ip resolves to $REVERSE"
else
echo "✗ FAIL: $ip does not resolve correctly"
fi
done
echo
# Test 4: Check /etc/hosts
echo "Test 4: Verify SCAN not in /etc/hosts"
grep -q "rac-scan" /etc/hosts
if [ $? -ne 0 ]; then
echo "✓ PASS: SCAN not found in /etc/hosts"
else
echo "✗ FAIL: SCAN found in /etc/hosts (remove it!)"
fi
echo
echo "=== Validation Complete ==="
Implementation Checklist:
- ✓ DNS server installed and configured
- ✓ Forward and reverse zones created
- ✓ Three A records created for SCAN name
- ✓ PTR records created for SCAN IPs
- ✓ DNS service running and enabled
- ✓ All nodes configured to use DNS server
- ✓ SCAN resolves to exactly 3 IP addresses
- ✓ SCAN IPs not responding to ping
- ✓ Reverse DNS working for all SCAN IPs
- ✓ No SCAN entries in /etc/hosts
- ✓ Documentation updated
- ✓ Ready for Grid Infrastructure installation