Skip to content

Configure Cloud Routing and Internet Access

A subnet does not communicate with other networks simply because it exists. Routing determines where traffic goes, while security controls determine whether that traffic should be allowed.

Welcome to Lab 04 of the CompTIA Cloud+ practical lab sequence.

In the previous lab, you created a segmented cloud network containing:

Cloud Virtual Network
|
β”œβ”€β”€ Public Subnet
|
β”œβ”€β”€ Application Subnet
|
└── Database Subnet

Now you will make that network behave like a real cloud environment.

You will configure and understand:

  • route tables

  • local routes

  • default routes

  • public internet access

  • internet gateways or provider equivalents

  • private outbound connectivity

  • NAT

  • subnet associations

  • traffic paths

  • return routes

  • routing troubleshooting

The objective is not simply:

Make the VM reach the internet.

The objective is:

Understand exactly how traffic leaves a workload, which routing decisions are made, which gateway is used, and why public and private subnets require different designs.

Item Details
Lab 04 β€” Configure Cloud Routing and Internet Access
Difficulty Beginner β†’ Intermediate
Estimated Time 60–90 Minutes
Certification Alignment CompTIA Cloud+
Primary Focus Cloud Routing & Internet Connectivity
Previous Lab 03 β€” Build a Segmented Cloud Network
Career Alignment Cloud Administrator, Cloud Engineer, Cloud Security Engineer
Major Skills Route Tables, Default Routes, Internet Gateways, NAT, Troubleshooting
Deliverable Routed Cloud Network + Traffic Path Documentation

Your three-tier network is ready.

The application team now has additional requirements.

The web tier must:

  • receive controlled internet traffic

  • access external services when required

The application tier must:

  • communicate with the web tier

  • communicate with the database tier

  • obtain software updates

  • remain directly inaccessible from the internet

The database tier must:

  • communicate with the application tier

  • remain private

  • avoid unnecessary direct internet exposure

Your manager asks you to configure the routing design.

The target architecture is:

Internet
|
v
Internet Gateway
|
v
+------------------+
| Public Subnet |
| 10.10.10.0/24 |
+------------------+
|
v
+------------------+
| Application |
| 10.10.20.0/24 |
+------------------+
|
v
+------------------+
| Database |
| 10.10.30.0/24 |
+------------------+

For outbound private access, the application tier may use:

Application Subnet
↓
NAT / Outbound Gateway
↓
Internet

rather than receiving a public IP itself.

By completing this lab, you should be able to:

  • explain cloud route tables

  • understand destination and next-hop concepts

  • identify local routes

  • understand default routes

  • explain 0.0.0.0/0

  • understand internet-gateway concepts

  • identify what makes a subnet effectively public

  • understand private subnet routing

  • explain NAT

  • distinguish inbound and outbound internet access

  • configure subnet route associations

  • validate traffic paths

  • understand return routing

  • troubleshoot unreachable workloads

  • distinguish routing problems from security problems

  • document cloud routes professionally

A common beginner assumption is:

VM Has Public IP
↓
Internet Works

Cloud networking is more complex.

A working path may require:

Workload
↓
Network Interface
↓
Subnet
↓
Route Table
↓
Gateway
↓
Security Controls
↓
Internet

If any required component is missing, connectivity may fail.

This distinction is essential.

Where should the packet go?

Should the packet be permitted?

A route may exist while a firewall blocks traffic.

A firewall may allow traffic while no valid route exists.

Your current network should resemble:

10.10.0.0/16
|
β”œβ”€β”€ 10.10.10.0/24
β”‚ Public
|
β”œβ”€β”€ 10.10.20.0/24
β”‚ Application
|
└── 10.10.30.0/24
Database

Confirm that these resources still exist.

Resource Expected
Parent Network 10.10.0.0/16
Public Subnet 10.10.10.0/24
Application Subnet 10.10.20.0/24
Database Subnet 10.10.30.0/24

A route table contains rules that tell the cloud network where traffic should go.

Each route typically contains:

Destination
+
Next Hop / Target

Example:

10.10.0.0/16
↓
Local

This may mean:

traffic destined for another subnet inside the same cloud network can remain within the virtual network.

Suppose a workload wants to reach:

10.10.20.15

The routing system checks the route table for the most appropriate destination match.

Conceptually:

Destination IP
↓
Route Table
↓
Best Matching Route
↓
Next Hop

Routing generally prefers the most specific applicable route.

Example:

10.10.20.0/24

is more specific than:

10.10.0.0/16

This principle becomes important in more advanced routing designs.

Open the route table associated with your cloud network or subnet.

Look for a route similar to:

Destination:
10.10.0.0/16
Target:
Local / Virtual Network

Provider terminology may differ.

The route permits knowledge of destinations inside:

10.10.0.0/16

including:

  • 10.10.10.0/24

  • 10.10.20.0/24

  • 10.10.30.0/24

Security controls can still restrict actual traffic.

Create a route table for the public subnet.

Example name:

cloudplus-lab-rt-public-01

Apply your standard tags.

Associate:

cloudplus-lab-subnet-public-01

with:

cloudplus-lab-rt-public-01

Creating a route table is not enough.

The subnet must actually use it.

A default IPv4 route is commonly represented as:

0.0.0.0/0

This means:

destinations not matched by a more specific route.

Suppose your route table contains:

10.10.0.0/16 β†’ Local
0.0.0.0/0 β†’ Internet Gateway

Traffic destined for:

10.10.20.15

uses the local route.

Traffic destined for:

8.8.8.8

would use the default route.

Cloud providers commonly provide a gateway mechanism that connects a virtual network to the public internet.

Conceptually:

Cloud Network
↓
Internet Gateway
↓
Internet

Different providers use different product names.

For Cloud+, focus on the concept.

Where required by your provider:

  • create the internet gateway

  • attach it to the cloud network

Example name:

cloudplus-lab-igw-01
Gateway Name:
Network:
Region:
Status:

Add:

Destination:
0.0.0.0/0
Next Hop:
Internet Gateway

to the public route table.

The conceptual table becomes:

Destination Target
10.10.0.0/16 Local
0.0.0.0/0 Internet Gateway

This does not automatically make every workload publicly accessible.

A workload may also require:

  • public addressing

  • security rules

  • a listening service

  • appropriate OS configuration

A public subnet is generally one where workloads can have a direct route to/from the internet through an appropriate gateway and addressing model.

Conceptually:

Public Workload
↓
Public IP
↓
Public Subnet Route
↓
Internet Gateway
↓
Internet

Do not define public subnet as:

a subnet containing public IPs.

Routing architecture is a major part of the definition.

Use the VM from Lab 02 if appropriate, or deploy a small test VM in:

10.10.10.0/24

Follow your existing naming and cost controls.

Example:

cloudplus-lab-web-01

Record:

Private IP:
Public IP:
Subnet:
Route Table:

Connect to the VM using your approved management path.

Test outbound connectivity to an approved external destination.

For example:

Terminal window
curl https://example.com

or another approved connectivity test.

If the test fails, do not immediately blame routing.

Check:

Route
Security
DNS
Application

Test hostname resolution.

For example:

Terminal window
nslookup example.com

or:

Terminal window
dig example.com

depending on the system.

If:

IP Connectivity Works

but:

Hostname Resolution Fails

the likely problem is DNS, not routing.

Where appropriate and permitted, test a known external IP.

This helps distinguish:

Routing

from:

DNS

Inbound communication follows the opposite direction conceptually:

Internet User
↓
Public IP
↓
Internet Gateway
↓
Public Subnet
↓
Workload

But the path must also satisfy:

  • network security rules

  • host firewall

  • application listener

If SSH is used, confirm that access is restricted.

Prefer:

Trusted Administrator IP
↓
TCP 22
↓
Web / Admin VM

instead of:

Internet
↓
TCP 22
↓
VM

from everywhere.

Create:

cloudplus-lab-rt-app-01

Associate it with:

cloudplus-lab-subnet-app-01

Initially, it may contain only local cloud-network routes.

For example:

Destination Target
10.10.0.0/16 Local

This permits internal route awareness but provides no direct default internet path.

The application subnet is intended to remain private.

A workload there should not require:

Public IP
+
Direct Public Route

for normal inbound internet access.

Private workloads may still need:

  • software updates

  • external APIs

  • package repositories

This creates the need for controlled outbound connectivity.

Network Address Translation can allow private workloads to initiate outbound internet connections without requiring direct public inbound exposure.

Conceptually:

Private VM
10.10.20.10
↓
NAT
↓
Public Address
↓
Internet

NAT commonly allows:

Private β†’ Internet

for initiated outbound sessions.

It does not automatically allow:

Internet β†’ Private VM

as a directly initiated connection.

Cloud providers may offer managed outbound NAT services.

Conceptually:

Application Subnet
↓
Route Table
↓
NAT Gateway
↓
Public Network
↓
Internet

Provider terminology may differ.

Ask:

Does the application subnet require outbound internet access?

If the answer is no:

do not create NAT unnecessarily.

If yes, continue.

Managed NAT services may create charges.

Review pricing before deployment.

Use only when appropriate for your lab.

Where appropriate and affordable in your lab environment:

  • create a NAT gateway or provider equivalent

  • place/configure it according to provider requirements

Example name:

cloudplus-lab-nat-01

If a managed NAT service would create unwanted charges, you may complete the architecture and routing analysis without leaving the resource deployed.

The learning objective is understanding:

private outbound connectivity.

Configure the application route table conceptually as:

0.0.0.0/0
↓
NAT Gateway

The full table may resemble:

Destination Target
10.10.0.0/16 Local
0.0.0.0/0 NAT Gateway

Create or place a small VM in:

10.10.20.0/24

Example:

cloudplus-lab-app-01

Do not assign a public IP unless your provider or lab design specifically requires one.

Record:

Private IP:
Public IP:
None / Not Assigned
Subnet:
Application
Route Table:
Application

Because the VM has no public IP, direct SSH from the internet should not be expected.

Possible enterprise administration models include:

  • bastion/jump host

  • VPN

  • private management service

  • provider-managed session service

Private workload administration should use:

a controlled management path.

Not:

assign a public IP temporarily every time.

A bastion or jump host provides a controlled administrative path.

Conceptually:

Administrator
↓
Approved Public / Management Host
↓
Private Application VM

A bastion itself must be:

  • hardened

  • restricted

  • monitored

From the private application VM, use your approved management path.

Test outbound connectivity.

If NAT is configured properly:

Private VM
↓
NAT
↓
Internet

should work.

32 β€” Validate the VM Has No Direct Inbound Public Path

Section titled β€œ32 β€” Validate the VM Has No Direct Inbound Public Path”

Confirm:

  • no public IP

  • no direct internet gateway route assigned as a public workload

  • no unnecessary inbound exposure

This reduces:

direct internet attack surface.

Create:

cloudplus-lab-rt-db-01

Associate it with:

cloudplus-lab-subnet-db-01

34 β€” Decide Whether the Database Needs Internet Access

Section titled β€œ34 β€” Decide Whether the Database Needs Internet Access”

Ask:

Does the database actually require outbound internet connectivity?

Possible answer:

No.

If no requirement exists, keep the route table simple.

Example:

Destination Target
10.10.0.0/16 Local

Do not provide network access simply because:

it might be useful later.

Provide it because:

there is a documented requirement.

The intended application path is:

Application VM
10.10.20.x
↓
Local Cloud Routing
↓
Database VM
10.10.30.x

No internet gateway is required for that communication.

Traffic between:

10.10.20.0/24

and:

10.10.30.0/24

is east-west traffic.

This remains inside the cloud network.

Traffic between:

Cloud Workload

and:

Internet

is generally north-south traffic.

Your routing now separates:

Internal Communication

from:

External Communication

Your target design may now resemble:

Internet
|
+------------+-------------+
| |
v ^
Internet Gateway |
| |
v |
+--------------------+ |
| Public Subnet | |
| 10.10.10.0/24 | |
+--------------------+ |
| |
| |
v |
+--------------------+ |
| Application Subnet |------> NAT ---+
| 10.10.20.0/24 |
+--------------------+
|
v
+--------------------+
| Database Subnet |
| 10.10.30.0/24 |
+--------------------+
Destination Target Purpose
10.10.0.0/16 Local Internal Traffic
0.0.0.0/0 Internet Gateway Internet
Destination Target Purpose
10.10.0.0/16 Local Internal Traffic
0.0.0.0/0 NAT Outbound Internet
Destination Target Purpose
10.10.0.0/16 Local Internal Traffic

Document:

Subnet Route Table
Public cloudplus-lab-rt-public-01
Application cloudplus-lab-rt-app-01
Database cloudplus-lab-rt-db-01

A correctly configured route table associated with:

the wrong subnet

can still cause outages or exposure.

Always verify associations.

For the public workload check:

Public IP
+
0.0.0.0/0 β†’ Internet Gateway
+
Required Security Rule

For the application workload check:

Private IP
+
0.0.0.0/0 β†’ NAT

where outbound internet access is required.

For the database tier verify:

Private IP
+
Internal Routes
+
No Unnecessary Public Path

Communication requires a valid return path.

Example:

Client
↓
Request
↓
Server
↓
Response
↓
Client

If the return path is incorrect, communication can fail even when the forward path looks valid.

Always ask:

How does the response get back?

45 β€” Troubleshooting Scenario β€” Public VM Cannot Reach Internet

Section titled β€œ45 β€” Troubleshooting Scenario β€” Public VM Cannot Reach Internet”

Use:

VM Running?
↓
Private/Public IP?
↓
Subnet?
↓
Route Table?
↓
0.0.0.0/0?
↓
Internet Gateway?
↓
Security?
↓
DNS?

46 β€” Troubleshooting Scenario β€” Private VM Cannot Reach Internet

Section titled β€œ46 β€” Troubleshooting Scenario β€” Private VM Cannot Reach Internet”

Use:

Private VM
↓
Application Subnet
↓
Route Table
↓
Default Route
↓
NAT
↓
Public Connectivity

47 β€” Troubleshooting Scenario β€” Database Has Internet Access

Section titled β€œ47 β€” Troubleshooting Scenario β€” Database Has Internet Access”

Suppose the database unexpectedly reaches the internet.

Review:

  • route-table association

  • default route

  • public IP

  • NAT path

  • security policy

Ask:

Is this connectivity actually required?

If not, remove it.

48 β€” Troubleshooting Scenario β€” App Cannot Reach DB

Section titled β€œ48 β€” Troubleshooting Scenario β€” App Cannot Reach DB”

Do not immediately modify internet routing.

The communication is internal.

Check:

App IP
↓
App Subnet
↓
Internal Route
↓
Security Controls
↓
DB Service
↓
Return Path

49 β€” Troubleshooting Scenario β€” Hostname Fails, IP Works

Section titled β€œ49 β€” Troubleshooting Scenario β€” Hostname Fails, IP Works”

This is most likely a:

DNS-related issue.

Do not modify the route table without evidence.

50 β€” Troubleshooting Scenario β€” Everything Looks Correct but Traffic Is Blocked

Section titled β€œ50 β€” Troubleshooting Scenario β€” Everything Looks Correct but Traffic Is Blocked”

Remember:

Route Exists
β‰ 
Traffic Allowed

Review security controls.

Detailed security-group work comes in the next lab.

Use:

Routing
+
Network Security
+
Host Firewall
+
Application

In your isolated lab, remove or disable the public default route.

Do not modify production systems.

Attempt outbound connectivity.

Expected result:

external connectivity should fail.

Use your route table to identify the missing path.

Document:

Symptom:
Expected Route:
Observed Route:
Root Cause:
Corrective Action:

Restore:

0.0.0.0/0
↓
Internet Gateway

Validate connectivity.

Breaking something deliberately teaches:

why the configuration exists.

If safe in your lab, temporarily associate the application subnet with a route table that lacks its expected outbound route.

Observe the result.

Then restore the correct association.

Use:

Problem:
Affected Workload:
Expected Path:
Observed Path:
Root Cause:
Resolution:
Validation:
Lesson Learned:

For public internet access:

Web VM
↓
Public Subnet
↓
Public Route Table
↓
Internet Gateway
↓
Internet

For private outbound access:

App VM
↓
Application Subnet
↓
Application Route Table
↓
NAT
↓
Internet

For internal traffic:

App VM
↓
Local Route
↓
Database VM
[ ] Correct subnet
[ ] Correct route table association
[ ] Internal route exists
[ ] Default route exists where required
[ ] Correct next hop
[ ] Gateway attached
[ ] NAT present where required
[ ] Public IP only where required
[ ] Return path considered
[ ] Security controls reviewed

Identify which routing components may create charges.

Potential examples include:

  • NAT services

  • gateways

  • data transfer

  • public IPs

Ask:

Do we need this network component running continuously for the lab?

Add resources such as:

Resource Type Purpose Cost Risk Status
cloudplus-lab-rt-public-01 Route Table Public Routing Low Active
cloudplus-lab-rt-app-01 Route Table Application Routing Low Active
cloudplus-lab-rt-db-01 Route Table Database Routing Low Active
cloudplus-lab-igw-01 Internet Gateway Public Internet Review Active
cloudplus-lab-nat-01 NAT Private Outbound Higher Review

Your design should now aim for:

Public Tier
↓
Direct Internet Route
Application Tier
↓
Private
↓
Controlled Outbound
Database Tier
↓
Private
↓
Internal Access Only

Do not solve every connectivity requirement by:

adding a public IP.

Use architecture.

Record:

Cloud Network:
10.10.0.0/16
Public Subnet:
10.10.10.0/24
Public Default Route:
0.0.0.0/0 β†’ Internet Gateway
Application Subnet:
10.10.20.0/24
Application Default Route:
0.0.0.0/0 β†’ NAT
Database Subnet:
10.10.30.0/24
Database Default Route:
None unless required
Internal Route:
10.10.0.0/16 β†’ Local

Verify:

Public VM
↓
Internet Access Works
Application VM
↓
Outbound Access Works if Required
↓
No Direct Public Exposure
Database
↓
Internal Only
Validation Status
Public route table created
Public subnet associated
Internet gateway configured
Public default route created
Public VM connectivity validated
Application route table created
Application subnet associated
NAT understood/configured where required
Private outbound path validated
Database route table created
Database subnet associated
No unnecessary DB internet route
Internal route reviewed
Return path understood
Broken route tested
Troubleshooting documented
Resource inventory updated

Keep the network architecture if you are continuing the Cloud+ lab sequence.

You will need it for the next labs.

Retain:

Virtual Network
Public Subnet
Application Subnet
Database Subnet
Route Tables
Internet Gateway

If your NAT service is billable and is not required between labs:

delete it after documenting the configuration.

You can recreate it when required.

A common Cloud+ scenario might say:

A private VM cannot download operating-system updates.

Think:

Private IP
↓
Subnet
↓
Route Table
↓
Default Route
↓
NAT
↓
Internet

Another question might say:

A public VM has a public IP but is unreachable.

Do not assume the public IP alone is enough.

Review:

Public IP
+
Route
+
Gateway
+
Security
+
Service

Practice answering without notes.

10. Does NAT automatically allow inbound internet access?

Section titled β€œ10. Does NAT automatically allow inbound internet access?”

14. Why might a database subnet have no internet route?

Section titled β€œ14. Why might a database subnet have no internet route?”

15. How would you troubleshoot a public VM that cannot reach the internet?

Section titled β€œ15. How would you troubleshoot a public VM that cannot reach the internet?”

16. How would you troubleshoot a private VM that cannot reach the internet?

Section titled β€œ16. How would you troubleshoot a private VM that cannot reach the internet?”

17. Why shouldn’t every cloud VM have a public IP?

Section titled β€œ17. Why shouldn’t every cloud VM have a public IP?”

A VM has a public IP but cannot reach the internet.

Investigate:

VM
↓
Subnet
↓
Route Table
↓
Default Route
↓
Internet Gateway
↓
Security
↓
DNS

A private application server needs access to software repositories.

Do not automatically assign a public IP.

Consider:

Private VM
↓
NAT
↓
Internet

A database server has 0.0.0.0/0 pointing to an internet gateway.

Ask:

Does the database actually need this route?

Review:

  • workload requirement

  • public addressing

  • security controls

  • attack surface

App and database servers are in the same virtual network but cannot communicate.

Do not assume an internet gateway problem.

Check:

Internal Route
↓
Security Rules
↓
Host Firewall
↓
Database Service
↓
Return Path

The network team created a NAT gateway, but the private VM still cannot reach the internet.

Check:

  • correct route table

  • 0.0.0.0/0 target

  • subnet association

  • NAT placement/configuration

  • upstream internet path

  • DNS/security controls

A web VM can reach an external IP but cannot resolve domain names.

Likely focus:

DNS.

Do not modify routing without evidence.

A route table was correctly configured, but the subnet still uses a different route table.

The likely issue is:

route-table association.

Use:

Source
↓
Subnet
↓
Route Table
↓
Destination Match
↓
Next Hop
↓
Gateway
↓
Security
↓
Destination
↓
Return Path

Avoid:

β€œIf the VM cannot reach the internet, I would add 0.0.0.0/0.”

A stronger answer is:

β€œI would first determine whether the workload is intended to be public or private, verify the subnet and route-table association, review the destination route and next hop, confirm the required gateway or NAT path exists, and then validate security controls, DNS, and the return path before making any routing changes.”

That demonstrates Cloud Engineer thinking.

Keep sanitized versions of the following.

Show:

Public β†’ Internet Gateway
Private β†’ NAT
Database β†’ Internal Only

Document every route table and association.

Explain why different tiers use different routes.

Document one deliberately broken route and your resolution process.

Explain which components may create ongoing cost.

Instead of:

Configured cloud routing.

Use:

Designed and validated cloud routing across public, application, and database subnets using local routes, default routes, internet-gateway connectivity, and controlled private outbound access through NAT.

Or:

Troubleshot cloud connectivity by validating subnet placement, route-table associations, destination routes, gateway configuration, security controls, DNS, and return paths.

You should now be able to:

  • explain route tables

  • identify route destinations

  • explain next hops

  • understand local routes

  • explain default routes

  • understand 0.0.0.0/0

  • explain internet gateways

  • distinguish public and private subnets

  • explain NAT

  • design private outbound internet access

  • associate route tables with subnets

  • understand return routing

  • troubleshoot missing routes

  • distinguish DNS from routing issues

  • distinguish routing from security-control problems

  • document a cloud traffic path clearly

You have now progressed from:

Cloud Network

to:

Routed Cloud Architecture
↓
Public Internet Access
↓
Private Outbound Access
↓
Internal Tier Communication

The key lesson from this lab is:

Routing provides the path. Security determines whether that path should be used.

A professional cloud engineer understands both.

Your traffic now has valid network paths.

The next question is:

Which traffic should actually be permitted?

The next lab moves into cloud network security.

You will work with:

  • security groups

  • virtual firewalls

  • inbound rules

  • outbound rules

  • source restrictions

  • destination restrictions

  • service and port controls

  • least-privilege network access

  • public exposure

  • security-rule validation

  • broken-rule troubleshooting

You will move from:

Can Traffic Get There?

to:

Should Traffic Be Allowed?

➑️ Next: Lab 05 β€” Cloud Security Groups and Network Access Controls