First, the essential ideas
- Dual stack
- A dual-stack node uses IPv4 and IPv6. Each family has its own addresses, forwarding and relevant policy. Success with one family does not prove the other works.
- Access VLAN and trunk
- An access port places ordinary untagged endpoint traffic into one VLAN. A trunk carries multiple VLANs, commonly using 802.1Q tags. VLAN membership is a forwarding boundary, not encryption.
- Router subinterface
- A subinterface is a logical interface on a physical router port. Here each tagged VLAN maps to one subinterface with its own IPv4 and IPv6 gateway addresses.
- Connected route
- A connected route describes a network directly attached to an active router interface. It can remain installed even when a remote endpoint is on the wrong switch access VLAN.
- ACL and service test
- An access control list applies ordered permit/deny tests. A service test uses the actual application protocol, here HTTP on TCP 8080. Ping tests ICMP reachability, not HTTP content or authorization.
- Baseline and fault isolation
- A baseline records the intended topology, policy and working tests. Fault isolation compares evidence after one controlled change, separating observed symptoms from an unproved cause.
- Retest and rollback
- Retesting repeats the original success and denial cases after repair. Rollback restores the exact known change or saved baseline; it does not mean clearing every configuration.
Start with the intended journey: PC60 reaches its VLAN 10 gateway, the router selects VLAN 20, and SW60 delivers to Server60. The same physical switch is visited on two VLANs. A link can remain up while that logical path is broken by one wrong membership.
See the idea
One switch, two VLANs, one routed service path
The server must remain in VLAN 20; a correct router route cannot repair a wrong endpoint membership.
Reach the user gateway
PC60 enters SW60 VLAN 10 on Gi0/0. Tagged traffic crosses Gi0/2 to R60 Gi1.10, the user gateway.
What this model leaves out: This is the logical packet path, not five separate devices. Both SW60 boxes are VLAN views of one switch. IPv4 HTTP and IPv6 ping have separate evidence; encryption is not shown.
Full visual explanation and references
PC60 crosses SW60 VLAN 10 to R60, then returns through SW60 VLAN 20 to Server60. The two SW60 views represent one physical switch and one shared router trunk.
This is the logical packet path, not five separate devices. Both SW60 boxes are VLAN views of one switch. IPv4 HTTP and IPv6 ping have separate evidence; encryption is not shown.
- Reach the user gateway
PC60 enters SW60 VLAN 10 on Gi0/0. Tagged traffic crosses Gi0/2 to R60 Gi1.10, the user gateway.
www.cisco.com - Route to the service VLAN
R60 forwards through Gi1.20 over the same trunk into SW60 VLAN 20. Gi0/1 delivers to Server60 when its membership is correct.
www.cisco.com - Restore the missing leg
Moving Gi0/1 to VLAN 10 breaks this service-VLAN attachment. Restore VLAN 20, then repeat both pings, allowed HTTP and the denied-source HTTP test.
www.cisco.comwww.cisco.com
One idea at a time
Start with something familiar.
Keep a four-row test matrix: IPv4 ping, IPv6 ping, HTTP from the permitted .10 source and HTTP from a temporary denied .30 source. Record baseline, fault and recovery observations. Do not replace this matrix with one statement that the network works.
Why learn this?
A single green test can hide a broken address family, stopped service or overly permissive policy. Repeating the same matrix shows both restored access and preserved denial without guessing which layer caused the failure.
An everyday comparison
A parcel can reach the correct building but be placed in the wrong internal delivery area. The road and reception desk remain open, yet the intended recipient never gets it. Checking only the road would miss the local placement error.
What happens in a network
The trunk and router interfaces can remain up while Server60's access port is in VLAN 10 instead of VLAN 20. Routed traffic returns on VLAN 20, where the server's port is no longer a member.
Where the comparison stopsVLANs do not behave like labels that anyone can read and ignore; switching enforces forwarding membership. The analogy also does not explain IPv6 neighbor discovery, ACL processing or application responses.
Follow one worked example
- Verify each layer before faulting.
Check switch memberships and trunk, router addresses and routes, then the endpoint tests. Capture the unfiltered baseline before attaching the exercise ACL.
Why: A later failure is interpretable only after the complete path worked under known conditions.
- Change only the server's access VLAN.
SW60 Gi0/1 moves from VLAN 20 to VLAN 10. Cables, endpoint addresses, trunk and router configuration remain unchanged.
Why: The controlled defect demonstrates that physical link state and connected routes can look healthy despite a broken endpoint path.
- Repair membership and repeat the matrix.
Return Gi0/1 to VLAN 20. Verify both pings, the allowed HTTP content and the denied alternate-source HTTP test.
Why: A repair must restore the original behavior without broadening the intended IPv4 policy.
Your first small task
Before running the lab, predict where a packet for 10.60.20.20 goes when the server port is accidentally in VLAN 10. Identify why the router's connected 10.60.20.0/24 route can still exist.
Show a hint
A route identifies the outgoing network; it does not certify every downstream switch port's membership.
Check the expected result
The router forwards toward its VLAN 20 subinterface, but the server port is not in that VLAN. The router subinterface and trunk can remain active, so the connected route alone does not prove endpoint placement.
Pause and explain it in your own words
If IPv4 HTTP works, what remains unproved?
Show a hint
Compare the four test rows and the declared practical boundary.
Show the explanation
IPv6 reachability, the denied-source policy, other services and any production security claim remain unproved. The HTTP listener is IPv4-only, and the IPv4 ACL does not filter IPv6.
Short answer
What should you understand today?
Recover a network by comparing exact baseline evidence with the failure, making one justified repair and repeating the original tests. This capstone joins VLAN access, a trunk, dual-stack routing, an HTTP service and IPv4 filtering. A wrong server access VLAN breaks the path even while router routes and physical links appear healthy.
Before you begin
Learning targets
- Review VLANs, 802.1Q trunks, router subinterfaces, IPv4/IPv6 gateways and extended ACL direction.
- Use GNS3 2.2 with separately entitled IOSvL2 15.2 and CSR1000v IOS XE 17.3 images plus two Ubuntu 24.04 VMs.
- Prepare unmanaged ens3 lab adapters on the Ubuntu VMs, Python 3.12 on the server and curl 8.x on the client; no external adapters or automatic DHCP.
- Connect and configure a complete two-VLAN dual-stack path with exact ports and addresses.
- Establish separate reachability, HTTP-content and IPv4 policy evidence before a fault.
- Diagnose a server port placed in the wrong access VLAN without changing correct routes or weakening the ACL.
- Apply the narrow inverse and repeat positive and negative tests before writing a bounded recovery report.
Words you will meet
Open a word when you need its meaning. You do not need to memorize the whole list before reading.
Dual stack
A dual-stack node uses IPv4 and IPv6. Each family has its own addresses, forwarding and relevant policy. Success with one family does not prove the other works.
Access VLAN and trunk
An access port places ordinary untagged endpoint traffic into one VLAN. A trunk carries multiple VLANs, commonly using 802.1Q tags. VLAN membership is a forwarding boundary, not encryption.
Router subinterface
A subinterface is a logical interface on a physical router port. Here each tagged VLAN maps to one subinterface with its own IPv4 and IPv6 gateway addresses.
Connected route
A connected route describes a network directly attached to an active router interface. It can remain installed even when a remote endpoint is on the wrong switch access VLAN.
ACL and service test
An access control list applies ordered permit/deny tests. A service test uses the actual application protocol, here HTTP on TCP 8080. Ping tests ICMP reachability, not HTTP content or authorization.
Baseline and fault isolation
A baseline records the intended topology, policy and working tests. Fault isolation compares evidence after one controlled change, separating observed symptoms from an unproved cause.
Retest and rollback
Retesting repeats the original success and denial cases after repair. Rollback restores the exact known change or saved baseline; it does not mean clearing every configuration.
Build the intended path before diagnosing it
PC60 attaches to SW60 Gi0/0 in VLAN 10. Server60 attaches to Gi0/1 in VLAN 20. SW60 Gi0/2 carries tagged VLANs 10 and 20 to R60 GigabitEthernet1. Router subinterfaces .10 and .20 terminate those tags and provide gateways for both address families. No default route is needed on R60 because both lab networks are connected; each endpoint still needs a route to the other subnet through its local gateway.
- Match every declared cable to a real interface before configuration.
- Do not add an Internet or cloud node to make a disconnected lab appear more realistic.
Use two address families without merging their evidence
IPv4 and IPv6 are configured explicitly on endpoints and router subinterfaces. IPv6 forwarding requires ipv6 unicast-routing on R60. The Linux hosts use static addresses and explicit default routes; router-advertisement acceptance is disabled on their lab adapters to avoid an extra automatic route confusing the experiment. Wait for IPv6 duplicate-address detection before testing. Neighbor discovery and IPv4 ARP remain different mechanisms.
- Documentation IPv6 prefixes are confined to this isolated exercise.
- Do not infer IPv6 application service from an IPv6 ping.
Keep service and security checks specific
The server runs a temporary Python HTTP listener bound to its IPv4 .20 address on TCP 8080. The response contains a known synthetic line. The CAP60 IPv4 ACL on R60's VLAN 10 ingress permits ICMP and TCP 8080 only from PC60 .10 to Server60 .20, then denies other IPv4 traffic entering there. It is stateless and only attached in that one direction. It does not provide identity authentication or filter IPv6.
- This IPv4-only policy is a teaching boundary, not a recommended dual-stack production policy.
- Do not disable the ACL merely because a later VLAN fault also breaks HTTP.
Make the fault change one observable fact
The deliberate fault moves the server access port from VLAN 20 to VLAN 10. Its link can stay up and the router's connected routes can remain present. Both server IP families remain configured for VLAN 20 networks, so the correct routed requests no longer reach its attachment. Compare show interfaces switchport, show vlan brief and the original port plan. Do not repair this by renumbering the server to fit the wrong VLAN.
- Symptoms suggest hypotheses; the configuration comparison identifies the specific changed fact.
- Keep the server process and addresses unchanged throughout the fault.
Retest the policy as well as connectivity
After returning the server port to VLAN 20, repeat the same IPv4 ping, IPv6 ping and permitted HTTP request. Then repeat the denied .30 HTTP case and remove the temporary address. Inspect CAP60 attachment and counters on R60. This guards against a repair that restores access by unintentionally removing the security requirement. Record actual status and body, not just the curl process's existence.
- Verification must preserve the intended deny as well as the intended allow.
- Counters support a claim only when correlated with the exact flow and test time.
Explain recovery without claiming whole-course mastery
A final report should name the symptom, baseline, single changed setting, evidence supporting the cause, exact inverse, retest results and remaining limits. The curriculum's All domains label is an integration theme, not proof that every exam objective appears here. This capstone practices selected addressing, VLAN/trunk, connected-route interpretation, ACL and troubleshooting elements. It does not repeat all wireless, services, routing or automation labs.
- Authored instructions and deterministic checks are not observed execution or independent approval.
- Parent visual QA and independent instructor review remain separate gates.
Real-world walkthrough
The server moved logically without moving its cable
In a fictional small campus, a switchport template accidentally assigns the service host to the user VLAN. Links remain green and the router still lists both connected networks. Users report that the portal disappeared. The operator must recover service without changing correct gateway addresses or removing the existing access policy.
- Retrieve the approved cable, VLAN, address and test matrix instead of starting with a guessed command.
- Check endpoint addresses, server process and both address families, then compare the server port's actual access VLAN with the plan.
- Confirm the trunk still carries the intended VLANs and the router routes remain consistent with its interfaces.
- Change only the demonstrated wrong server-port VLAN back to its approved value.
- Repeat the positive and negative test matrix, inspect policy evidence and write a report that leaves untested services explicitly unclaimed.
Guided GNS3 lab
Recover the dual-stack portal path
Build all four nodes from a clean baseline, measure reachability and a bounded policy, fault one access VLAN, restore it and repeat the evidence matrix. Runtime is unmeasured during authoring; all outcomes below are predictions.
Addressing plan
| Device | Interface | Address | Purpose |
|---|---|---|---|
| PC60 | ens3; VLAN 10 | 10.60.10.10/24; 2001:db8:60:10::10/64 | Source; gateways 10.60.10.1 and 2001:db8:60:10::1. |
| R60 | GigabitEthernet1.10 | 10.60.10.1/24; 2001:db8:60:10::1/64 | VLAN 10 gateway and inbound IPv4 CAP60 attachment. |
| R60 | GigabitEthernet1.20 | 10.60.20.1/24; 2001:db8:60:20::1/64 | VLAN 20 gateway. |
| Server60 | ens3; VLAN 20 | 10.60.20.20/24; 2001:db8:60:20::20/64 | Destination; gateways 10.60.20.1 and 2001:db8:60:20::1; HTTP TCP 8080 IPv4. |
| PC60 secondary | ens3; temporary | 10.60.10.30/24 | Denied HTTP source, added and removed only during policy tests. |
Set up the lab
- Verify both Cisco image entitlements; CML reference images must not be exported merely because GNS3 can import them. A licensed CML alternative needs consistent interface mapping.
- Start with clean stopped-project and VM disk baselines. Record show version for both Cisco nodes and the Linux interface names before changing anything.
- Prepare unmanaged ens3 adapters with no preexisting addresses/default routes, DHCP client or external connection. Confirm host firewalls permit the lab ICMP and server TCP 8080; do not disable a shared firewall.
- Use only the isolated VMs for the HTTP fixture, with two Server60 terminal windows available. Wait for interface readiness and IPv6 address detection.
- If a platform cannot support the declared commands, stop and use a paper path/matrix alternative. Never report the unsupported function as executed.
Create the user VLAN and access port
In GNS3, right-click SW60 and choose Console before typing. Inspect the release, create both VLANs and place only PC60's port in VLAN 10. Use the exact cable map; do not configure an arbitrary range of ports.
enable
show version
configure terminal
vlan 10
name USERS
vlan 20
name SERVICES
interface GigabitEthernet0/0
switchport mode access
switchport access vlan 10
no shutdown
endWhat each command means
enable- Enter privileged EXEC on this authorized lab device; stop if access is not authorized.
show version- Record the switch image and release.
configure terminal- Enter global configuration from privileged EXEC; changes affect the active configuration.
vlan 10- Create the user VLAN.
name USERS- Give VLAN 10 a readable label.
vlan 20- Create the service VLAN.
name SERVICES- Give VLAN 20 a readable label.
interface GigabitEthernet0/0- Select the PC60 attachment.
switchport mode access- Make the endpoint port an access port.
switchport access vlan 10- Assign untagged PC60 traffic to VLAN 10.
no shutdown- Enable the mapped endpoint link.
end- Return to privileged EXEC without saving or undoing the accepted changes.
- What you should see
- Expect the VLAN definitions and PC60 access membership; this alone does not establish routing.
- Why this step matters
- The access membership is the first logical boundary in the complete path.
Connect the server and tagged router path
In GNS3, right-click SW60 and choose Console before typing. Place Server60 in VLAN 20 and configure the sole router trunk. IOSvL2 supports explicit dot1q encapsulation; do not add this command to platforms that lack that option without checking their guide.
configure terminal
interface GigabitEthernet0/1
switchport mode access
switchport access vlan 20
no shutdown
interface GigabitEthernet0/2
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10,20
no shutdown
end
show interfaces trunkWhat each command means
configure terminal- Enter global configuration from privileged EXEC; changes affect the active configuration.
interface GigabitEthernet0/1- Select the Server60 attachment.
switchport mode access- Keep the server endpoint untagged.
switchport access vlan 20- Assign the intended service VLAN.
no shutdown- Enable the server link.
interface GigabitEthernet0/2- Select the R60-facing trunk link.
switchport trunk encapsulation dot1q- Select 802.1Q tagging on this IOSvL2 platform.
switchport mode trunk- Make the link carry tagged VLAN traffic.
switchport trunk allowed vlan 10,20- Limit the exercise trunk to the two intended VLANs.
no shutdown- Enable the router-facing link.
end- Return to privileged EXEC without saving or undoing the accepted changes.
show interfaces trunk- Inspect actual trunk status and VLAN allowance.
- What you should see
- Expect Gi0/2 trunking with VLANs 10 and 20 available.
- Why this step matters
- A VLAN existing in the database does not guarantee it traverses the intended trunk.
Create the dual-stack user gateway
In GNS3, right-click R60 and choose Console before typing. Record the release and enable IPv6 forwarding. Leave the physical parent without an IP address; VLAN gateways belong to the tagged subinterfaces.
enable
show version
configure terminal
ipv6 unicast-routing
interface GigabitEthernet1
no shutdown
interface GigabitEthernet1.10
encapsulation dot1Q 10
ip address 10.60.10.1 255.255.255.0
ipv6 address 2001:db8:60:10::1/64
endWhat each command means
enable- Enter privileged EXEC on this authorized lab device; stop if access is not authorized.
show version- Record the actual router platform and release.
configure terminal- Enter global configuration from privileged EXEC; changes affect the active configuration.
ipv6 unicast-routing- Enable forwarding of IPv6 unicast traffic.
interface GigabitEthernet1- Select the sole physical trunk port.
no shutdown- Enable the parent link.
interface GigabitEthernet1.10- Create the logical VLAN 10 gateway interface.
encapsulation dot1Q 10- Associate this subinterface with tagged VLAN 10.
ip address 10.60.10.1 255.255.255.0- Assign the IPv4 user gateway.
ipv6 address 2001:db8:60:10::1/64- Assign the IPv6 user gateway.
end- Return to privileged EXEC without saving or undoing the accepted changes.
- What you should see
- Expect a configured VLAN 10 subinterface; verify link state after the peer trunk is ready.
- Why this step matters
- Both families need the intended logical attachment, not just a working parent port.
Create the service gateway and inspect routes
In GNS3, right-click R60 and choose Console before typing. Configure the second tagged network and inspect both route families. These connected routes require no dynamic routing protocol or router default route.
configure terminal
interface GigabitEthernet1.20
encapsulation dot1Q 20
ip address 10.60.20.1 255.255.255.0
ipv6 address 2001:db8:60:20::1/64
end
show ip interface brief
show ipv6 interface brief
show ip route connected
show ipv6 route connectedWhat each command means
configure terminal- Enter global configuration from privileged EXEC; changes affect the active configuration.
interface GigabitEthernet1.20- Create the VLAN 20 service subinterface.
encapsulation dot1Q 20- Associate it with tagged VLAN 20.
ip address 10.60.20.1 255.255.255.0- Assign the IPv4 service gateway.
ipv6 address 2001:db8:60:20::1/64- Assign the IPv6 service gateway.
end- Return to privileged EXEC without saving or undoing the accepted changes.
show ip interface brief- Read back IPv4 addresses and interface states.
show ipv6 interface brief- Read back IPv6 addresses and interface states.
show ip route connected- Inspect connected IPv4 networks.
show ipv6 route connected- Inspect connected IPv6 networks.
- What you should see
- Expect both /24 and both /64 networks when the subinterfaces are operational.
- Why this step matters
- Installed connected routes are necessary but cannot certify downstream endpoint VLAN placement.
Address the client explicitly
In GNS3 open PC60 Console and Terminal. Use its unmanaged ens3 adapter and no external connection. Set only the declared addresses and routes, disabling RA acceptance on this lab adapter to keep the route plan explicit.
sudo sysctl -w net.ipv6.conf.ens3.accept_ra=0
sudo ip link set ens3 up
sudo ip address add 10.60.10.10/24 dev ens3
sudo ip -6 address add 2001:db8:60:10::10/64 dev ens3
sudo ip route add default via 10.60.10.1 dev ens3
sudo ip -6 route add default via 2001:db8:60:10::1 dev ens3
ip -brief address show ens3What each command means
sudo sysctl -w net.ipv6.conf.ens3.accept_ra=0- Disable automatic RA-derived routes on this disposable lab adapter.
sudo ip link set ens3 up- Enable the client link.
sudo ip address add 10.60.10.10/24 dev ens3- Assign the permitted IPv4 source.
sudo ip -6 address add 2001:db8:60:10::10/64 dev ens3- Assign the client IPv6 address.
sudo ip route add default via 10.60.10.1 dev ens3- Route other IPv4 networks through the local gateway.
sudo ip -6 route add default via 2001:db8:60:10::1 dev ens3- Route other IPv6 networks through the local IPv6 gateway.
ip -brief address show ens3- Confirm both addresses and wait until IPv6 is no longer tentative.
- What you should see
- Expect the two static addresses and explicit gateways; stop if duplicate or preexisting-state errors appear.
- Why this step matters
- A repeatable endpoint plan avoids mistaking automatic addressing for the intended configuration.
Address the server and start the fixture
In GNS3 open Server60 Console and Terminal A. Configure its unmanaged ens3, create an empty temporary directory and serve only one synthetic page. The final command stays in the foreground; keep this terminal open.
sudo sysctl -w net.ipv6.conf.ens3.accept_ra=0
sudo ip link set ens3 up
sudo ip address add 10.60.20.20/24 dev ens3
sudo ip -6 address add 2001:db8:60:20::20/64 dev ens3
sudo ip route add default via 10.60.20.1 dev ens3
sudo ip -6 route add default via 2001:db8:60:20::1 dev ens3
LAB60=$(mktemp -d /tmp/ccna60.XXXXXX)
cd "$LAB60"
python3 -c 'from pathlib import Path; Path("index.html").write_text("CCNA60 HTTP baseline\n", encoding="utf-8")'
python3 -m http.server 8080 --bind 10.60.20.20What each command means
sudo sysctl -w net.ipv6.conf.ens3.accept_ra=0- Disable automatic RA route acceptance on the lab adapter.
sudo ip link set ens3 up- Enable the server link.
sudo ip address add 10.60.20.20/24 dev ens3- Assign the IPv4 service address.
sudo ip -6 address add 2001:db8:60:20::20/64 dev ens3- Assign the IPv6 ping destination.
sudo ip route add default via 10.60.20.1 dev ens3- Install the IPv4 return gateway.
sudo ip -6 route add default via 2001:db8:60:20::1 dev ens3- Install the IPv6 return gateway.
LAB60=$(mktemp -d /tmp/ccna60.XXXXXX)- Create a fresh directory containing no private files.
cd "$LAB60"- Enter the isolated fixture directory.
python3 -c 'from pathlib import Path; Path("index.html").write_text("CCNA60 HTTP baseline\n", encoding="utf-8")'- Create the exact synthetic body used for application verification.
python3 -m http.server 8080 --bind 10.60.20.20- Start the IPv4-only HTTP listener on the lab address.
- What you should see
- Expect the listener to start; check IPv6 readiness from Terminal B before tests.
- Why this step matters
- A known body proves more than a TCP listener alone, while the explicit bind avoids claiming IPv6 HTTP.
Capture the unfiltered end-to-end baseline
Open PC60 Console and Terminal. Wait for link and IPv6 address readiness, then test both address families and the actual service before attaching an ACL. Stop if any baseline test fails.
ping -c 3 -W 2 10.60.20.20
ping -6 -c 3 -W 2 2001:db8:60:20::20
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/What each command means
ping -c 3 -W 2 10.60.20.20- Test routed IPv4 reachability to Server60.
ping -6 -c 3 -W 2 2001:db8:60:20::20- Test the separate IPv6 path.
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/- Test the IPv4 HTTP status and exact synthetic response body.
- What you should see
- Expect both pings to reply and HTTP to return the fixture body; record actual results.
- Why this step matters
- Policy effects cannot be isolated until the unfiltered path and application are known to work.
Attach the bounded IPv4 policy
In GNS3, right-click R60 and choose Console before typing. Build CAP60 completely, then attach it inbound on the VLAN 10 subinterface. It permits only the declared source/destination ICMP and TCP 8080 tests; it does not filter IPv6.
configure terminal
ip access-list extended CAP60
10 permit icmp host 10.60.10.10 host 10.60.20.20
20 permit tcp host 10.60.10.10 host 10.60.20.20 eq 8080
30 deny ip any any
exit
interface GigabitEthernet1.10
ip access-group CAP60 in
end
show ip interface GigabitEthernet1.10
show access-lists CAP60What each command means
configure terminal- Enter global configuration from privileged EXEC; changes affect the active configuration.
ip access-list extended CAP60- Create the named extended IPv4 list.
10 permit icmp host 10.60.10.10 host 10.60.20.20- Allow the intended source's IPv4 ping to the service host.
20 permit tcp host 10.60.10.10 host 10.60.20.20 eq 8080- Allow the same source to the HTTP fixture port.
30 deny ip any any- Explicitly deny remaining IPv4 traffic entering this attachment.
exit- Leave ACL configuration.
interface GigabitEthernet1.10- Select the user VLAN ingress.
ip access-group CAP60 in- Attach the completed list in the intended direction.
end- Return to privileged EXEC without saving or undoing the accepted changes.
show ip interface GigabitEthernet1.10- Verify the inbound list identifier.
show access-lists CAP60- Inspect order and initial counters.
- What you should see
- Expect CAP60 inbound on Gi1.10 with the two exact permits before denial.
- Why this step matters
- Policy is a combination of entries, order and attachment; the IPv6 boundary remains explicit.
Record allowed and denied policy cases
Open PC60 Console and Terminal. Repeat the three positive tests, then add .30 as a secondary source while leaving .10 and its route intact. Bind only the negative HTTP test to .30 and remove it immediately afterward.
ping -c 3 -W 2 10.60.20.20
ping -6 -c 3 -W 2 2001:db8:60:20::20
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/
sudo ip address add 10.60.10.30/24 dev ens3
curl --noproxy '*' --max-time 5 --interface 10.60.10.30 -i http://10.60.20.20:8080/
sudo ip address del 10.60.10.30/24 dev ens3What each command means
ping -c 3 -W 2 10.60.20.20- Retest allowed IPv4 ICMP under the ACL.
ping -6 -c 3 -W 2 2001:db8:60:20::20- Retest IPv6 reachability independently of the IPv4 ACL.
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/- Confirm the permitted source still receives the fixture.
sudo ip address add 10.60.10.30/24 dev ens3- Add the temporary denied source without deleting .10.
curl --noproxy '*' --max-time 5 --interface 10.60.10.30 -i http://10.60.20.20:8080/- Send the same HTTP request using only the denied source address.
sudo ip address del 10.60.10.30/24 dev ens3- Remove only the temporary secondary address.
- What you should see
- Expect positive tests to pass and .30 HTTP to fail. Inspect R60 CAP60 counters via its console before faulting.
- Why this step matters
- The baseline includes preserved denial, so a later repair cannot be judged only by restored connectivity.
Introduce the single VLAN-placement fault
In GNS3, right-click SW60 and choose Console before typing. Record current server membership, then move only Gi0/1 to VLAN 10 in this isolated project. Keep the server addresses, process, trunk and router policy unchanged.
show interfaces GigabitEthernet0/1 switchport
configure terminal
interface GigabitEthernet0/1
switchport access vlan 10
end
show vlan brief
show interfaces trunkWhat each command means
show interfaces GigabitEthernet0/1 switchport- Record the intended access VLAN before the change.
configure terminal- Enter global configuration from privileged EXEC; changes affect the active configuration.
interface GigabitEthernet0/1- Select only the Server60 attachment.
switchport access vlan 10- Introduce the wrong membership while leaving the cable in place.
end- Return to privileged EXEC without saving or undoing the accepted changes.
show vlan brief- Record the server port now listed under the wrong VLAN.
show interfaces trunk- Verify the router trunk was not changed.
- What you should see
- Expect the link to remain connected but Server60's access membership to be VLAN 10.
- Why this step matters
- One changed variable creates a diagnosable defect without weakening the ACL or renumbering hosts.
Observe the same tests under fault
Open PC60 Console and Terminal. Repeat the original three positive tests with the same source and destinations. Preserve failures as observations; do not immediately edit routes or disable filtering.
ping -c 3 -W 2 10.60.20.20
ping -6 -c 3 -W 2 2001:db8:60:20::20
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/What each command means
ping -c 3 -W 2 10.60.20.20- Repeat the original IPv4 path test.
ping -6 -c 3 -W 2 2001:db8:60:20::20- Repeat the original IPv6 path test.
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/- Repeat the allowed HTTP request with bounded waiting.
- What you should see
- Expect the server tests to fail after its membership moves; record any deviation rather than claiming predicted output.
- Why this step matters
- Shared failure across families and service directs attention to the shared attachment, but switch evidence confirms the cause.
Apply the exact inverse and inspect placement
In GNS3, right-click SW60 and choose Console before typing. Compare the observed VLAN with the documented server plan. Restore only Gi0/1 to VLAN 20 and inspect both access and trunk state before testing again.
configure terminal
interface GigabitEthernet0/1
switchport access vlan 20
end
show interfaces GigabitEthernet0/1 switchport
show vlan brief
show interfaces trunkWhat each command means
configure terminal- Enter global configuration from privileged EXEC; changes affect the active configuration.
interface GigabitEthernet0/1- Select the demonstrated wrong server port.
switchport access vlan 20- Restore its approved service VLAN.
end- Return to privileged EXEC without saving or undoing the accepted changes.
show interfaces GigabitEthernet0/1 switchport- Verify operational access membership is VLAN 20.
show vlan brief- Confirm the server port is back in the intended VLAN.
show interfaces trunk- Confirm the unchanged trunk still carries VLANs 10 and 20.
- What you should see
- Expect the original membership with no router, endpoint or ACL edits.
- Why this step matters
- The narrow inverse repairs the demonstrated cause while preserving all other baseline assumptions.
Repeat the complete recovery matrix
Open PC60 Console and Terminal. Repeat both pings, allowed HTTP and denied alternate-source HTTP. Remove the temporary address even when a test fails and record actual status and content.
ping -c 3 -W 2 10.60.20.20
ping -6 -c 3 -W 2 2001:db8:60:20::20
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/
sudo ip address add 10.60.10.30/24 dev ens3
curl --noproxy '*' --max-time 5 --interface 10.60.10.30 -i http://10.60.20.20:8080/
sudo ip address del 10.60.10.30/24 dev ens3What each command means
ping -c 3 -W 2 10.60.20.20- Verify recovered IPv4 reachability.
ping -6 -c 3 -W 2 2001:db8:60:20::20- Verify recovered IPv6 reachability.
curl --noproxy '*' --max-time 5 -i http://10.60.20.20:8080/- Require the original allowed HTTP response and fixture body.
sudo ip address add 10.60.10.30/24 dev ens3- Recreate the same temporary denied source.
curl --noproxy '*' --max-time 5 --interface 10.60.10.30 -i http://10.60.20.20:8080/- Confirm the same source remains denied after repair.
sudo ip address del 10.60.10.30/24 dev ens3- Remove the temporary address and leave the original source intact.
- What you should see
- Expect the complete pre-fault matrix restored, including the intended denial.
- Why this step matters
- A recovered service is not enough if the repair accidentally broadened access.
Collect router evidence and close the lab
In GNS3, right-click R60 and choose Console before typing. Capture attachment, counters and connected routes. Then open Server60 Console Terminal A and press Ctrl+C to stop its foreground server. Stop all four nodes and restore the saved clean project and VM baselines after retaining your notes.
show ip interface GigabitEthernet1.10
show access-lists CAP60
show ip route connected
show ipv6 route connectedWhat each command means
show ip interface GigabitEthernet1.10- Confirm CAP60 remains the inbound IPv4 policy.
show access-lists CAP60- Record permit and denial counters correlated with the tests.
show ip route connected- Record the IPv4 connected networks after recovery.
show ipv6 route connected- Record the separate IPv6 connected networks.
- What you should see
- Expect the documented policy and routes retained. Server shutdown and baseline restoration remove temporary lab state, not the already-preserved evidence.
- Why this step matters
- The final report distinguishes measured recovery, preserved policy and untested services without a whole-course completion claim.
Verify
- Record software versions, all three cables, access VLANs and the tagged trunk before testing.
- Require the unfiltered IPv4, IPv6 and HTTP baseline before attaching CAP60.
- Under policy, preserve .10 HTTP success and .30 HTTP failure with attachment and counter evidence.
- During fault, record Gi0/1 in VLAN 10 and unchanged router/trunk/endpoint settings.
- After repair, repeat the identical four-case matrix and inspect CAP60 without weakening it.
- Label HTTP as IPv4-only, IPv6 as reachability-only and all authoring runtime as unmeasured.
Troubleshoot
- If the initial tests fail, inspect link mapping, VLAN creation, trunk allowance, subinterface tags, addresses and return gateways before adding the ACL.
- If IPv6 alone fails, inspect ipv6 unicast-routing, /64 prefixes, tentative/duplicate address state and IPv6 default routes.
- If ping works but HTTP fails, check Server60's foreground process, bind address, TCP 8080 host policy and CAP60 permit entry.
- If denied .30 succeeds, verify curl source binding, the secondary address and CAP60 attachment/order before claiming security recovery.
- If routes remain installed during the fault, inspect downstream membership; a connected route does not certify the server port's VLAN.
GNS3 does not provide Cisco images. A license or entitlement must permit the image in the selected environment; do not share or redistribute image files. Cisco Modeling Labs is an official alternative. Its supplied Cisco reference images are licensed for use within CML, not automatically for export to GNS3. An unlicensed learner must use the explicitly labeled paper alternative, not report simulated Cisco execution.
- Restore Server60's access port to VLAN 20 and remove the temporary .30 address before closing.
- Stop only the foreground Python server with Ctrl+C in Server60 Terminal A.
- Stop the four disposable nodes and restore the saved clean project plus VM disk baselines to remove addresses, routes, RA settings, fixture files and exercise configurations.
- Preserve actual before/fault/repair evidence without secrets or licensed image files.
Practice set
Answer before you reveal
01Why can the connected routes remain during the fault?
A route points to a connected network; it does not prove that every downstream endpoint is attached to that network.
02Why test both IPv4 and IPv6?
One family's success can hide a wrong prefix, gateway or forwarding setting in the other family.
03What does the HTTP body add to a ping result?
Ping cannot establish that TCP 8080 is listening or returning the expected content.
04Why keep .10 while temporarily adding .30?
Deleting the primary address could change route behavior and introduce an unrelated fault into the policy test.
05Does CAP60 protect IPv6?
IPv6 is deliberately tested for reachability without equivalent filtering here; this is not a complete production dual-stack policy.
06Which exact command repairs the introduced defect?
The proven fault is one server access membership. Renumbering the server or disabling ACLs changes unrelated correct state.
07Does completing the capstone cover every exam objective?
Wireless, dynamic routing, DHCP, DNS, NAT, full automation and many other topics are outside this practical's implemented scope.
Knowledge check
Quiz: prove the reasoning
Keep these
Technical takeaways
- A green physical link does not prove correct VLAN placement.
- Connected routes do not certify downstream endpoint membership.
- Test IPv4, IPv6 and application behavior separately.
- Preserve negative policy tests during recovery.
- Repair the demonstrated setting with its narrow inverse.
- A capstone integrates selected skills without proving every exam objective.
