Purpose: Document Contoso’s current state and propose a phased approach to transition internet-facing application delivery from F5 to Azure, followed by a modernization program for internal (LAN) access.
Based on discovery discussions, Contoso operates a hybrid application delivery model with multiple F5 form factors and two distinct access paths (LAN and Internet).
This indicates both legacy and newer deployments co-exist, likely with different lifecycles, ownership, and operational processes.
Contoso effectively maintains two separate access planes:
Contoso uses dedicated DNS deployments for name resolution based on user location/source:
This enables the same application to be accessed either via:
For external access, inbound traffic flows through Palo Alto Networks devices as part of the perimeter enforcement chain before reaching application infrastructure.
Contoso has a segmentation firewall between F5/publishing tiers and the web/app server tier for both:
This firewall enforces segmentation policy before requests reach the backend servers.
A subset of applications (and tools) are still hosted on‑prem and protected by on‑prem WAF policies (currently on F5 in at least one path).
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ CURRENT CONTOSO ARCHITECTURE (UPDATED) │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────┐ ┌────────────────────┐│
│ │ DEDICATED LAN DNS (INTERNAL) │ │ DEDICATED INTERNET ││
│ │ • Internal resolvers │ │ DNS (PUBLIC) ││
│ │ • app.contoso.internal │ │ • app.contoso.com ││
│ │ → Private VIP (10.x.x.x) │ │ → Public VIP/IP ││
│ └──────────────┬───────────────┘ └──────────┬─────────┘│
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────┐ ┌─────────────────────────┐│
│ │ INTERNAL PATH (LAN) │ │ EXTERNAL PATH (INTERNET)││
│ │ │ │ ││
│ │ Internal Users (Office Network) │ │ External Users (WFH / ││
│ │ │ │ │ Public Internet) ││
│ │ ▼ │ │ │ ││
│ │ LAN‑facing F5 │ │ ▼ ││
│ │ • F5 Virtual (On‑Prem) │ │ Palo Alto Networks ││
│ │ • F5 Hardware (On‑Prem) │ │ (Perimeter enforcement) ││
│ │ • LTM + (APM/WAF as applicable) │ │ │ ││
│ │ │ │ │ ▼ ││
│ │ ▼ │ │ Internet‑facing F5 ││
│ │ Segmentation Firewall │ │ • F5 Virtual (On‑Prem) ││
│ │ (between F5 and servers) │ │ • F5 Virtual (Azure) ││
│ │ │ │ │ • LTM+(APM/WAF as appl) ││
│ │ ▼ │ │ │ ││
│ │ On‑Prem Web/App Servers │ │ ▼ ││
│ │ (some apps behind on‑prem WAF) │ │ Segmentation Firewall ││
│ │ │ │ (between F5 and servers)││
│ │ │ │ │ ││
│ │ │ │ ▼ ││
│ │ │ │ On‑Prem Web/App Servers ││
│ │ │ │ (some apps behind WAF) ││
│ └──────────────────────────────────┘ └─────────────────────────┘│
│ │
│ Notes: │
│ • DNS is implemented as dedicated LAN DNS and dedicated Internet/Public DNS. │
│ • Segmentation firewall exists between the publishing tier and server tier on both paths │
│ • Exact device ordering in the external path can vary by application; validate per-app. │
└──────────────────────────────────────────────────────────────────────────────────────────┘
This approach is designed to:
Primary objective: Replace the internet-facing F5 as the external entry point by introducing Azure Front Door Premium + WAF.
Important: Phase 1 is intentionally focused only on external users. Internal (LAN) users are not changed in Phase 1.
Because there are some unknowns today (e.g., whether internet-facing F5 is providing app-critical APM/iRules/persistence and whether Palo Alto can publish apps directly end-to-end), Phase 1 is recommended as two sub-phases.
Phase 1a delivers the fastest measurable value with minimal disruption:
Key point: Phase 1a changes only the public entry point (public DNS → Azure Front Door). Everything behind the selected origin continues to operate as it does today.
Note: The “temporary origin” can be the existing internet-facing F5 (and its current downstream chain, including Palo Alto) to preserve the current publishing behavior. The exact device order will follow the current HCL ingress design and will be validated during discovery.
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ PHASE 1a (INTERNET PATH) – LOW-RISK CUTOVER │
├──────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ External Users (WFH / Internet) │
│ │ │
│ ▼ │
│ Public DNS (e.g., app.Contoso.com) │
│ │ resolves to │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Azure Front Door Premium (NEW Internet Entry Point) │ │
│ │ • Global L7 Load Balancing │ │
│ │ • TLS/SSL Termination at the edge │ │
│ │ • WAF Policy (OWASP + Custom Rules as required) │ │
│ │ • Bot / Geo-IP / Rate limiting (as required) │ │
│ │ • Health probes │ │
│ └───────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ │ forwards approved requests (HTTPS) │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Internet-facing F5 (TEMPORARY ORIGIN – Phase 1a) │ │
│ │ • Keeps current publishing behavior while Front Door is introduced │ │
│ │ • Preserves existing iRules / persistence / APM (if in use) during validation │ │
│ │ • Reduces change risk for applications │ │
│ └───────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Palo Alto Networks (Existing Perimeter) │ │
│ │ • Firewall policy enforcement │ │
│ │ • NAT / routing (as currently implemented) │ │
│ └───────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ On‑Prem Applications │
│ │
│ Phase 1a Goal: Azure Front Door becomes the public entry point quickly, while keeping │
│ the rest of the existing external publishing chain stable during validation. │
└──────────────────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ NETWORK FLOW (USER VIEW) – INTERNET USERS │
│ This shows how a user request flows in Phase 1a vs Phase 1b │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ 1) USER ACTION │
│ User (WFH / Internet) opens: https://app.Contoso.com │
│ │
│ 2) DNS RESOLUTION │
│ Public DNS resolves app.Contoso.com → Azure Front Door (anycast IP / edge endpoint) │
│ │
│ 3) TLS CONNECTION (EDGE) │
│ Browser establishes TLS session with Azure Front Door (certificate presented at edge) │
│ │
│ 4) SECURITY + ROUTING AT EDGE │
│ Azure Front Door applies WAF + routing rules and selects a healthy origin based on │
│ health probes: │
│ • WAF (OWASP protections + custom rules) │
│ • Bot / Geo-IP / Rate limiting (as configured) │
│ If allowed, the request is forwarded to the configured origin. │
│ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ PHASE 1a (TRANSITION / LOW-RISK) │ │
│ │ │ │
│ │ User → Public DNS → Azure Front Door (WAF) → Internet-facing F5 (TEMP ORIGIN) │ │
│ │ → Palo Alto (perimeter) → On‑prem App → Response returns same path │ │
│ │ │ │
│ │ WHY: Keeps existing app publishing behavior intact while validating Front Door. │ │
│ └───────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ PHASE 1b (STEADY STATE / TARGET END STATE) │ │
│ │ │ │
│ │ User → Public DNS → Azure Front Door (WAF) → Palo Alto │ │
│ │ (Origin target / Perimeter enforcement point) → On‑prem App → Response returns │ │
│ │ same path │ │
│ │ │ │
│ │ WHY: Retires Internet-facing F5 once dependencies are confirmed and routing is ready│ │
│ └───────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ 5) RESPONSE PATH (BOTH PHASES) │
│ On‑prem App → (Palo Alto) → (F5 only in Phase 1a) → Azure Front Door → User │
│ │
│ NOTES │
│ • Internal/LAN users are NOT changed in Phase 1 (handled separately in Phase 2). │
│ • In Phase 1b, Internet-facing F5 is bypassed/retired for external access. │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
After successful validation of Phase 1a (and confirmation of app dependencies), we will transition the origin away from the internet-facing F5:
Then:
┌─────────────────────────────────────────────────────────────────────────────────┐
│ OPTION 1: HYBRID APPROACH (RECOMMENDED) – PHASE 1b │
├─────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ │
│ │ SPLIT-HORIZON │ │
│ │ DNS │ │
│ └────────┬─────────┘ │
│ ┌─────────────────┼─────────────────┐ │
│ │ │ │ │
│ ▼ │ ▼ │
│ ┌──────────────────────────┐ │ ┌──────────────────────────────────┐ │
│ │ INTERNAL PATH (LAN) │ │ │ EXTERNAL PATH (INTERNET) │ │
│ │ │ │ │ │ │
│ │ ┌────────────────────┐ │ │ │ ┌────────────────────────────┐ │ │
│ │ │ Internal Users │ │ │ │ │ External Users │ │ │
│ │ │ (Office Network) │ │ │ │ │ (WFH / Internet) │ │ │
│ │ └─────────┬──────────┘ │ │ │ └─────────────┬──────────────┘ │ │
│ │ │ │ │ │ │ │ │
│ │ ▼ │ │ │ ▼ │ │
│ │ ┌────────────────────┐ │ │ │ ┌────────────────────────────┐ │ │
│ │ │ ON-PREM F5 │ │ │ │ │ AZURE FRONT DOOR PREMIUM │ │ │
│ │ │ (LAN-FACING) │ │ │ │ │ + WAF (OWASP/Bot/Geo/IP) │ │ │
│ │ │ • LTM / WAF / │ │ │ │ │ (Internet entry point) │ │ │
│ │ │ APM (as-is) │ │ │ │ └─────────────┬──────────────┘ │ │
│ │ │ KEEP AS-IS │ │ │ │ │ │ │
│ │ └─────────┬──────────┘ │ │ │ ▼ │ │
│ │ │ │ │ │ ┌────────────────────────────┐ │ │
│ │ ▼ │ │ │ │ PALO ALTO NETWORKS │ │ │
│ │ ┌────────────────────┐ │ │ │ │ (Perimeter / Origin tgt) │ │ │
│ │ │ ON-PREM APPS │ │ │ │ └─────────────┬──────────────┘ │ │
│ │ └────────────────────┘ │ │ │ │ │ │
│ └──────────────────────────┘ │ │ ▼ │ │
│ │ │ ┌────────────────────────────┐ │ │
│ │ │ │ ON-PREM APPS │ │ │
│ │ │ │ (Internet F5 bypassed) │ │ │
│ │ │ └────────────────────────────┘ │ │
│ │ └──────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────┤
│ │
│ BENEFITS: CONSIDERATIONS: │
│ • Lower risk: LAN unchanged • Two mgmt planes │
│ • Immediate security uplift for internet traffic • LAN F5 remains │
│ • No ExpressRoute required for Phase 1 • Licensing continues│
│ • Internet-facing F5 retired for external access • Phase 2 = │
│ modernization │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘
Answer: We will maintain the existing split-horizon DNS model and implement a hybrid multi-path routing approach:
This approach preserves existing internal routing and on‑prem dependencies (including on‑prem WAF policies), while enabling a controlled and reversible migration for the Internet-facing path.
┌──────────────────────────────────────────────────────────────────────────────┐
│ SCENARIO A: INTERNAL USER (OFFICE/LAN) → ON‑PREM APPLICATION │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ Internal User (Office/LAN) │
│ │ │
│ ▼ │
│ Internal DNS (Private / Split-horizon) │
│ │ resolves to Private VIP │
│ ▼ │
│ LAN-facing F5 (Existing – KEEP AS‑IS in Phase 1) │
│ • LTM / WAF / APM (as currently implemented) │
│ │ │
│ ▼ │
│ On‑Prem Applications (including apps behind on‑prem WAF policies) │
│ │
│ Note: No LAN routing changes are required in Phase 1. │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ SCENARIO A: INTERNAL USER (OFFICE/LAN) → ON‑PREM APPLICATION │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ Internal User (Office Network) │
│ │ │
│ ▼ │
│ Internal DNS (Split‑horizon / Private) │
│ • app.Contoso.internal → Private IP/VIP (10.x.x.x) │
│ │ │
│ ▼ │
│ On‑Prem F5 (LAN‑facing) — KEEP AS‑IS IN PHASE 1 │
│ • LTM (load balancing) │
│ • WAF (internal app protection, if used) │
│ • APM (SSO/auth policies, if used) │
│ │ │
│ ▼ │
│ On‑Prem Applications │
│ • Includes apps protected by existing on‑prem WAF policies │
│ │
│ Outcome: No routing changes for LAN users during Phase 1. │
└──────────────────────────────────────────────────────────────────────────────┘
In Phase 1b steady state, external users access on‑prem apps through:
┌──────────────────────────────────────────────────────────────────────────────┐
│ SCENARIO B: EXTERNAL USER (WFH/INTERNET) → ON‑PREM APPLICATION │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ External User (WFH / Internet) │
│ │ │
│ ▼ │
│ Public DNS (Split‑horizon / Public) │
│ • app.Contoso.com → Azure Front Door endpoint │
│ │ │
│ ▼ │
│ Azure Front Door Premium (Internet Entry Point) + WAF │
│ • Global L7 load balancing │
│ • TLS/SSL termination at the edge │
│ • WAF policy enforcement (OWASP, bot, geo, rate-limit as required) │
│ │ │
│ ▼ │
│ Palo Alto Networks (Perimeter / Origin target) │
│ • Firewall policy enforcement │
│ • NAT / routing to on‑prem networks │
│ │ │
│ ▼ │
│ On‑Prem Applications │
│ • Reached directly (internet-facing F5 bypassed/retired in Phase 1b) │
│ │
│ Outcome: External access uses Front Door + WAF, with Palo Alto enforcing │
│ perimeter controls before traffic reaches on‑prem applications. │
└──────────────────────────────────────────────────────────────────────────────┘
To safely move from Phase 1a to Phase 1b, validate:
Primary objective: Improve the internal access model and reduce long-term complexity through modernization, not simply replacing the LAN-facing F5 with another appliance/service.
Phase 2 is intentionally positioned as modernization because internal environments often include:
After Phase 1 is complete and stable:
The final Phase 2 approach should be chosen based on internal user experience requirements, application dependencies, and the results/telemetry from Phase 1.
[PLACEHOLDER – : WILL PUT THE PHASE 2 (LAN MODERNIZATION) DIAGRAM HERE, LATER]