← Back to Projects

Connecting 5M+ Users: Seamless IPv6 Migration for Finance

Enabled 5M+ mobile users to access a major banking app via IPv6 without touching the legacy IPv4 backend, utilizing A10 Thunder ADCs and SLB-PT.

β€œThe client faced a regulatory mandate to support IPv6 mobile clients, but their core banking backend was hardcoded to IPv4. β€˜Just enable Dual Stack’ was an operational impossibility.”

Executive Summary

In late 2015, the Indian telecommunications landscape transformed overnight with the rollout of Reliance Jio, an IPv6-only mobile network.

A major Financial Services Client faced an emergency: millions of customers on IPv6 mobile connections were failing to reach their core banking API endpoints. I architected a transparent protocol translation layer using A10 Thunder Application Delivery Controllers (ADCs), bridging IPv6 mobile clients to legacy IPv4 backends with zero backend code modifications.


The Challenge

Modifying the legacy banking core was ruled out due to strict compliance freeze mandates.

  • Legacy Technical Debt: Mainframe applications and Oracle DB clusters were hardcoded to IPv4 literals (192.168.x.x).
  • Zero Downtime Constraint: Transactional APIs processing millions of daily financial requests could not sustain maintenance windows.
  • Payload IP Embedding: Protocols like FTP and SIP embedded IP addresses inside data payloads, which standard NAT destroys.

[!IMPORTANT] Simple Network Address Translation (NAT) fails when application payloads contain embedded IP addresses. Without deep packet inspection, banking transactions broke silently.


The Solution

We deployed a NAT64/DNS64 architecture powered by Server Load Balancing - Protocol Translation (SLB-PT) on hardware ADCs.

Technology Stack

  • Hardware ADCs: A10 Networks Thunder 3030S (Dual High-Availability Pair)
  • Legacy Load Balancers: Cisco ACE 4710 (Decommissioned during migration)
  • Protocols: IPv6, BGP, SLB-PT, NAT64, DNS64
  • Validation Scripts: Python (Scapy / Paramiko) for automated payload validation

Technical Architecture

1. Translation Request Flow

  1. Mobile Client (IPv6-Only): Queries DNS for api.bank.com.
  2. DNS64 Gateway: Synthesizes an AAAA record containing a 64:ff9b:: prefix pointing to the A10 ADC Virtual IP (VIP).
  3. A10 Thunder ADC (SLB-PT): Terminates the IPv6 TCP connection, rewrites headers, and initiates an IPv4 connection to internal servers using a Source NAT pool (10.50.x.x).
  4. Core Banking Server (IPv4-Only): Receives standard IPv4 traffic from the A10 ADC and processes transactions seamlessly.

[!NOTE] Application Layer Gateways (ALGs): We enabled custom ALGs on the A10 ADCs to perform deep packet inspection, actively rewriting IP strings embedded within payload data streams.

Protocol Translation Diagram

graph LR
    Client[Mobile User <br> IPv6: 2001:db8::100] -- "TCP SYN <br> Dst: 64:ff9b::a10" --> A10[A10 Thunder ADC]
    
    subgraph "Hardware Translation Engine (SLB-PT)"
    A10 -- "Header Rewrite <br> ALG Payload Fix" --> Engine[NAT64 Core]
    end
    
    Engine -- "TCP SYN <br> Src: 10.50.1.20 (SNAT) <br> Dst: 192.168.10.50" --> Server[Legacy Banking Core <br> IPv4 Only]
    
    Server -- "TCP SYN-ACK" --> Engine
    Engine -- "TCP SYN-ACK" --> Client

Business Impact

  • Service Continuity: Restored mobile banking access for 5 Million+ IPv6 mobile subscribers.
  • Offloading Performance: Reduced core backend server CPU load by 30% by offloading SSL/TLS termination to the A10 hardware acceleration chips.
  • Regulatory Compliance: Met Reserve Bank of India (RBI) IPv6 compliance guidelines 6 months ahead of deadline.

The Verdict

Key Takeaway

Abstract Protocol Differences at the Edge.

Never force legacy backends to change if you can abstract the protocol layer at the edge. NAT64/DNS64 and SLB-PT allow legacy IPv4 infrastructure to serve modern IPv6 clients securely without application rewrites.

⚑ Theme Adaptive Shift
Switching layouts matching domain reading affinity...