Network security
Core16
What is the difference between standard, extended and named ACLs?
Say this first
A standard ACL matches only the source IP address. An extended ACL matches the protocol, source and destination addresses, source and destination ports, and extras like TCP flags, ICMP type and DSCP. A named ACL is not a third kind: it is a standard or extended ACL with a name instead of a number, and it lets me insert and delete single lines by sequence number. On IOS the numbered ranges are 1 to 99 and 1300 to 1999 for standard, 100 to 199 and 2000 to 2699 for extended.
Go deeper
Numbering on IOS
Type Numbers Matches on Standard IPv4 1 to 99, 1300 to 1999 source address only Extended IPv4 100 to 199, 2000 to 2699 protocol, source, destination, ports, flags Named any name, standardorextendedkeywordsame as the type you pick The same intent in three styles
Cisco IOS ! Standard, numbered: only the source can be matched access-list 10 permit 10.1.20.0 0.0.0.255 ! ! Extended, numbered access-list 110 permit tcp 10.1.20.0 0.0.0.255 host 10.2.50.10 eq 443 ! ! Extended, named, with sequence numbers ip access-list extended WEB-TO-SRV 10 permit tcp 10.1.20.0 0.0.0.255 host 10.2.50.10 eq 443 20 deny ip 10.1.20.0 0.0.0.255 10.2.50.0 0.0.0.255 log 30 permit ip any any ! interface GigabitEthernet0/0/1 ip access-group WEB-TO-SRV inInterface filters are applied with
ip access-group NAME in|out. On VTY lines the command isaccess-class NAME in, usually with a standard ACL because only the source matters there.ACLs are also a matching tool
The same ACL syntax selects traffic for NAT, route maps and PBR, QoS class maps, CoPP, crypto maps and debug filters. In those uses
permitmeans "this matches" anddenymeans "this does not match", nothing is dropped by the ACL itself.They will ask next
Can you edit a numbered ACL without retyping it?
Yes on any modern IOS.
ip access-list extended 110opens the numbered list in named-style mode, whereno 20removes one line and15 permit ...inserts one. The old global form is dangerous:no access-list 110 permit tcp ...deletes the whole ACL 110, not the single line.How many ACLs can you put on one interface?
One per protocol per direction: one IPv4 ACL in, one IPv4 ACL out, and the same again for IPv6. Applying a second
ip access-groupin the same direction replaces the first.
Traps
- Saying a standard ACL can match a destination. It sees only the source address.
- Typing
no access-list 110 ...in global config to remove one line. It removes the entire numbered list.
How did you do?Book 8.5 Example SystemsOwn pageWhere do you place a standard ACL and where do you place an extended ACL, and why?
Say this first
Extended ACLs go close to the source. They can match the exact flow, so unwanted traffic is dropped at the first hop, before it uses WAN bandwidth, and nothing else is caught. Standard ACLs go close to the destination. They can only match the source address, so near the source they would block that host or subnet from everything behind the interface, not just the one destination I meant.
Go deeper
Worked example
Branch router R1 has users on 10.1.20.0/24. HQ router R2 has servers on 10.2.50.0/24 and printers on 10.2.60.0/24. Goal: users must not reach the servers, but must still reach the printers and the internet.
- Standard ACL on R1 inbound from the users:
deny 10.1.20.0 0.0.0.255blocks the users from the printers and the internet too. Wrong place. - Standard ACL on R2 outbound toward the server LAN: only traffic heading to the servers is checked. Correct, but the denied packets already crossed the WAN.
- Extended ACL on R1 inbound from the users:
deny ip 10.1.20.0 0.0.0.255 10.2.50.0 0.0.0.255thenpermit ip any any. Dropped at the first router, nothing else affected. Best.
The rule behind the rule
Filter as close to the source as the match criteria allow without collateral damage. Two more factors decide placement in practice:
- Administrative control. You can only filter on devices you own, which is why internet edge ACLs filter traffic arriving from sources you do not control.
- Direction. Inbound ACLs drop packets before the routing lookup. Outbound ACLs catch traffic arriving from every other interface toward one segment, but they do not filter traffic the router generates itself.
They will ask next
Does the rule still matter on modern hardware that filters at line rate?
Performance matters less because switches and routers evaluate ACLs in TCAM. Blast radius and clarity still matter: an extended ACL near the source affects only the flows you named, and the policy sits where the traffic enters, which makes it easier to reason about.
Where would you filter traffic between internal VLANs on a layer 3 switch?
Inbound on the source VLAN's SVI with an extended ACL, or with a VLAN ACL (VACL) when traffic inside the same VLAN must be filtered too. For real policy between zones, a firewall is better.
Traps
- Reciting "standard near destination, extended near source" without the reason. The reason is what the interviewer wants.
How did you do?Book 8.5 Example SystemsOwn page- Standard ACL on R1 inbound from the users:
How do wildcard masks work? Give me the wildcard for a few subnets.
Say this first
A wildcard mask tells the ACL which bits of the address to check. A 0 bit means "must match", a 1 bit means "ignore". For a normal subnet it is the inverse of the subnet mask, so I subtract each mask octet from 255. A /24 is 0.0.0.255, a /27 is 0.0.0.31, a /20 is 0.0.15.255.
host 10.1.1.5means wildcard 0.0.0.0 andanymeans 0.0.0.0 255.255.255.255.Go deeper
Worked examples
Match Subnet mask Wildcard ACL entry 192.168.10.0/24 255.255.255.0 0.0.0.255 192.168.10.0 0.0.0.25510.1.4.0/22 (10.1.4.0 to 10.1.7.255) 255.255.252.0 0.0.3.255 10.1.4.0 0.0.3.255172.16.16.0/20 255.255.240.0 0.0.15.255 172.16.16.0 0.0.15.25510.10.10.32/27 (.32 to .63) 255.255.255.224 0.0.0.31 10.10.10.32 0.0.0.3110.10.10.4/30 255.255.255.252 0.0.0.3 10.10.10.4 0.0.0.3one host 10.1.1.5 255.255.255.255 0.0.0.0 host 10.1.1.5Turning a range into a wildcard
"Match 10.1.4.0 to 10.1.7.255." Third octet 4 is
00000100, 7 is00000111. Only the last two bits change, so the third octet of the wildcard is00000011= 3:10.1.4.0 0.0.3.255.The range has to start on a boundary. 10.1.5.0 to 10.1.8.255 is not one block, so it takes three lines:
Cisco IOS ip access-list extended RANGE-5-TO-8 10 permit ip 10.1.5.0 0.0.0.255 any 20 permit ip 10.1.6.0 0.0.1.255 any 30 permit ip 10.1.8.0 0.0.0.255 anyWhere wildcards are used
IOS ACLs, and OSPF and EIGRP
networkstatements. Prefix lists use prefix lengths instead, Cisco ASA ACLs use normal subnet masks, and Junos firewall filters use prefix notation.They will ask next
What is the fastest way to do it under pressure?
255 minus each octet of the mask. A /21 has mask 255.255.248.0, so the wildcard is 0.0.7.255. Or count the block size and subtract one: a /21 is 8 in the third octet, wildcard 7.
Is a wildcard always the inverse of a subnet mask?
No. The 1 bits do not have to be contiguous, so one line can match patterns like every odd subnet. That is legal in IOS ACLs and impossible with a subnet mask or a prefix list.
Traps
- Writing a subnet mask where a wildcard belongs.
permit 10.1.1.0 255.255.255.0ignores the first three octets and checks only that the last one is 0, so it matches every address ending in .0.
How did you do?Book 3.3 Internet (IP)Own pageWhat is the implicit deny, and how do you see what it is dropping?
Say this first
Every ACL ends with an invisible line that denies everything:
deny ip any anyin an extended ACL,deny anyin a standard one. A packet that matches no line is dropped. That line has no hit counter, so to see what it drops I add an explicitdeny ip any any logas the last line. It matches the same traffic, but now I get a counter and syslog messages.Go deeper
Consequences people forget
- An ACL with only deny lines blocks everything. It needs permits, often a final
permit ip any any. - An inbound ACL on a routed interface also sees control traffic aimed at the router: OSPF (IP protocol 89), BGP (TCP 179), HSRP, DHCP. Forget to permit them and the adjacency drops when the dead timer expires.
- On IOS, applying an ACL name that does not exist yet filters nothing. Deleting an ACL that is still applied also leaves the interface permitting everything.
- Outbound ACLs do not filter packets the router itself originates.
Seeing the drops
Cisco IOS ip access-list extended WAN-IN 10 permit ospf host 10.0.12.2 any 20 permit tcp 10.1.0.0 0.0.255.255 10.2.50.0 0.0.0.255 eq 443 999 deny ip any any logOutput R2# show ip access-lists WAN-IN Extended IP access list WAN-IN 10 permit ospf host 10.0.12.2 any (1204 matches) 20 permit tcp 10.1.0.0 0.0.255.255 10.2.50.0 0.0.0.255 eq 443 (88512 matches) 999 deny ip any any log (57 matches) %SEC-6-IPACCESSLOGP: list WAN-IN denied tcp 10.1.20.30(50522) -> 10.2.50.10(22), 1 packetIOS logs the first match right away and then summarizes repeat matches periodically (every five minutes by default). Logged packets are handled by the CPU, so
logon a line with heavy traffic costs CPU.log-inputalso records the input interface and source MAC.They will ask next
Does the implicit deny catch traffic the router sends?
No. Outbound ACLs never see locally generated packets. Inbound ACLs do see traffic aimed at the router, which is why they can break routing protocols and SSH to the box.
Is it the same for IPv6 ACLs?
Almost. IPv6 ACLs on IOS have implicit permits for Neighbor Discovery NS and NA before the implicit
deny ipv6 any any. If you add your owndeny ipv6 any any log, those implicit permits are never reached and neighbors stop resolving, so add the ND permits back above it.
Traps
- Putting the explicit
deny ip any any loganywhere but last. Every line below it becomes dead. - Leaving
logon a high-volume permit line and then wondering why the CPU climbs.
How did you do?Book 8.5 Example SystemsOwn page- An ACL with only deny lines blocks everything. It needs permits, often a final
What is the difference between a stateful and a stateless firewall?
Say this first
A stateless filter, like a router ACL, judges every packet on its own against the rules, so I must write rules for both directions, including the return traffic. A stateful firewall keeps a connection table: when an allowed flow starts, it records the session (addresses, ports, protocol, TCP state) and automatically allows the replies that belong to it, while unsolicited packets from outside are dropped. Stateful goes at trust boundaries. Stateless ACLs are cheap and fast, good for infrastructure protection and edge cleanup.
Go deeper
Stateless return traffic is clumsy
Cisco IOS ip access-list extended INTERNET-IN 10 permit tcp any 10.1.0.0 0.0.255.255 established 20 permit udp any eq domain 10.1.0.0 0.0.255.255establishedonly checks for the ACK or RST flag in each packet, so a crafted ACK passes. Line 20 has to open every UDP port on every inside host to anything sourced from port 53. A stateful firewall instead allows only the reply to the exact DNS query that went out.What a stateful firewall tracks and checks
- The 5-tuple, state and idle timer for each session. TCP sessions also get sanity checks: a session must start with a SYN, and segments must fit the expected sequence window.
- Application inspection for protocols that open extra connections (FTP data channels, SIP media): the firewall reads the control channel and opens only the needed pinhole.
- Idle timeouts, typically long for TCP and short for UDP and ICMP. Values are vendor specific.
Same split in the cloud
AWS security groups are stateful, AWS network ACLs are stateless, and the classic interview follow-up is that a NACL needs an outbound rule for the ephemeral return ports.
They will ask next
Is NAT a security feature?
PAT keeps a translation table, so unsolicited inbound packets have nothing to match and are dropped, which looks like a firewall. It is a side effect, not a policy. It does not inspect, log or enforce anything about the traffic that is allowed.
What attacks target the state table itself?
SYN floods and connection floods fill it so new legitimate sessions cannot be created. Firewalls defend with embryonic connection limits, SYN cookies or SYN proxy, and per-source session limits.
Traps
- Saying the
establishedkeyword makes an ACL stateful. It only looks at flags in each packet.
How did you do?Book 8.5 Example SystemsOwn pageWhat is AAA, and how do you turn it on for device administration on a Cisco router?
Say this first
Authentication answers who you are, authorization decides what you may do, and accounting records what you did and when. On IOS I enable it with
aaa new-model, define the servers and a server group, then write method lists that say which group to ask first and what to fall back to, usually a local break-glass user. Central AAA gives every admin a personal login, instant revocation when someone leaves, and an audit trail of commands instead of a shared enable password.Go deeper
Configuration with TACACS+
Cisco IOS username breakglass privilege 15 algorithm-type scrypt secret Br3akGlass2026 ! aaa new-model ! tacacs server ISE1 address ipv4 10.10.50.11 key Tac4csKey2026 tacacs server ISE2 address ipv4 10.10.50.12 key Tac4csKey2026 ! aaa group server tacacs+ TAC-SERVERS server name ISE1 server name ISE2 ! ip tacacs source-interface Loopback0 ! aaa authentication login default group TAC-SERVERS local aaa authorization exec default group TAC-SERVERS local if-authenticated aaa authorization commands 15 default group TAC-SERVERS local if-authenticated aaa accounting exec default start-stop group TAC-SERVERS aaa accounting commands 15 default start-stop group TAC-SERVERSThe local user is created first, so the device is never left with AAA on and no way in.
How method lists work
defaultapplies to every line unless a line names its own list withlogin authentication NAME.- Methods are tried left to right. The next method is used only when the current one gives no answer (server down or unreachable). A reject is final.
execauthorization decides whether you get a shell and at what privilege level.commands 15sends every level 15 command to the server for a yes or no.- Accounting
start-stopsends a record when a session or command starts and when it ends.
Why a source interface
The server identifies network devices by IP. Pinning the source to a loopback means the request always comes from the address the server knows, whichever interface the packet leaves on.
They will ask next
What is the difference between exec and command authorization?
Exec authorization runs once at login: may this user start a shell, and at which privilege level. Command authorization runs for every command at the configured level, so the server can allow
showcommands but denyreloadfor a junior operator. That needs TACACS+.Why keep a local account if you have AAA servers?
For the day the servers or the path to them are down. Keep it to one break-glass account with a long secret stored in a vault, rotate it, and alert when it is used.
Traps
- Typing
aaa new-modelon a remote device before creating a local user and method lists. New sessions may have no working login method. - Saying the router falls back to local when the server rejects the password. It only falls back when the server does not answer.
How did you do?Book 8.4 Authentication ProtocolsOwn pageRADIUS or TACACS+: what is the difference, and when do you use each?
Say this first
RADIUS runs over UDP 1812 for authentication and 1813 for accounting (older devices use 1645 and 1646), combines authentication and authorization in one reply, and hides only the password attribute. TACACS+ runs over TCP 49, encrypts the whole packet body, and keeps authentication, authorization and accounting as separate exchanges, which is what makes per-command authorization possible. I use RADIUS for network access (802.1X, MAB, VPN, Wi-Fi) and TACACS+ for engineers logging in to network devices.
Go deeper
Side by side
RADIUS TACACS+ Transport UDP 1812 auth, 1813 accounting TCP 49 What is protected only the User-Password attribute the whole body (header in clear) AAA structure authentication and authorization in one Access-Accept three separate exchanges Per-command authorization no yes Standard IETF, RFC 2865 and RFC 2866 Cisco origin, documented in RFC 8907 Extensions vendor-specific attributes (attribute 26) attribute-value pairs Typical use network access: 802.1X, MAB, VPN, wireless device administration RADIUS message flow
Access-Request, then any number of Access-Challenge and Access-Request rounds (EAP runs here), then Access-Accept or Access-Reject. The Accept can carry policy: a VLAN, a downloadable ACL, a session timeout, a security group tag. Accounting-Request start, interim and stop records go to port 1813.
Why TACACS+ for administrators
Each command can be authorized and logged on its own, and the command text is encrypted on the wire. TCP also tells the device at once when a server is down, instead of waiting for UDP timeouts and retries.
They will ask next
How weak is RADIUS's protection?
Usernames and all other attributes travel in clear, and the password hiding is based on MD5 and the shared secret. The 2024 BlastRADIUS research showed an on-path attacker could forge an Access-Accept when the Message-Authenticator attribute is not required. Fixes: require Message-Authenticator on every packet, patch clients and servers, and carry RADIUS inside TLS (RadSec, TCP 2083) or IPsec across untrusted networks.
Can RADIUS be used for device administration?
Yes, and many vendors do it: the Access-Accept carries the privilege level, for example the Cisco AV pair
shell:priv-lvl=15. What you lose is per-command authorization.
Traps
- Saying TACACS+ is Cisco only. Juniper, Arista, Palo Alto and Fortinet all support it.
- Swapping which protocol encrypts what. RADIUS hides the password, TACACS+ encrypts the body.
How did you do?Book 8.4 Authentication ProtocolsOwn pageWalk me through 802.1X. What are the three roles, and what happens when a laptop plugs in?
Say this first
The supplicant is the client, the 802.1X software on the laptop. The authenticator is the switch or wireless controller. The authentication server is a RADIUS server such as Cisco ISE, Aruba ClearPass, FreeRADIUS or Microsoft NPS. The supplicant speaks EAP over LAN (EAPOL) to the switch, the switch carries the EAP messages inside RADIUS to the server, and until the server sends Access-Accept the port passes only EAPOL. After the accept the port opens, possibly with a VLAN or ACL the server chose.
Go deeper
Step by step on a wired port
- Link comes up. The port is unauthorized: only EAPOL (EtherType 0x888E, sent to 01:80:C2:00:00:03), plus link protocols like CDP, LLDP and STP, are allowed.
- The switch sends EAP-Request/Identity, or the client starts with EAPOL-Start. Cisco switches
resend the request every 30 seconds by default (
dot1x timeout tx-period). - The client answers with EAP-Response/Identity. In tunneled methods this outer identity can be anonymous.
- The switch builds a RADIUS Access-Request with the EAP message plus its own details: NAS IP, port, and the client MAC in Calling-Station-Id.
- The client and server run the EAP method (for example a TLS handshake for EAP-TLS) through several Access-Challenge rounds. The switch only relays and never sees the credentials.
- The server sends Access-Accept with optional policy: VLAN (Tunnel-Private-Group-ID with Tunnel-Type VLAN and Tunnel-Medium-Type 802), a downloadable ACL, a security group tag, a reauthentication timer. The switch sends EAP-Success to the client.
- The port is authorized for that MAC and accounting starts.
Minimum switch configuration
Cisco IOS aaa new-model aaa authentication dot1x default group ISE-RADIUS aaa authorization network default group ISE-RADIUS dot1x system-auth-control ! interface GigabitEthernet1/0/10 switchport mode access authentication port-control auto dot1x pae authenticatoraaa authorization networkis what lets the switch apply a VLAN or ACL from the server.They will ask next
What changes on wireless?
The AP or controller is the authenticator, and the EAP method produces keying material that the RADIUS server sends to the controller. The controller then runs the WPA 4-way handshake with the client to derive the encryption keys.
What if the device has no supplicant at all?
MAB, using its MAC address as the identity, or web authentication for guests. On older designs a guest VLAN catches devices that never answer EAPOL.
Traps
- Saying the switch checks the user's password. It relays EAP and never sees the credentials in tunneled methods.
- Forgetting
dot1x system-auth-control. Without it the port commands do nothing.
How did you do?Book 8.4 Authentication ProtocolsOwn pageWhat does port security do, and what are its three violation modes?
Say this first
Port security limits how many, and optionally which, source MAC addresses an access port accepts. The default maximum is one MAC and the default violation mode is shutdown. Protect silently drops frames from the extra MACs. Restrict drops them, increments the violation counter and sends a syslog message and SNMP trap. Shutdown puts the port into err-disabled, which stops all traffic until the port is recovered.
Go deeper
Configuration
Cisco IOS interface GigabitEthernet1/0/5 switchport mode access switchport access vlan 10 switchport port-security maximum 2 switchport port-security mac-address sticky switchport port-security violation restrict switchport port-securityThe port must be a static access or trunk port. On a port left in a dynamic DTP mode the command is rejected. Sticky learning writes learned MACs into the running config, so save it to keep them.
The modes
Mode Drops the frame Syslog and SNMP Violation counter Port protect yes no no stays up restrict yes yes yes stays up shutdown (default) yes yes yes err-disabled shutdown vlan yes yes yes only the offending VLAN disabled Output %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.5689.0bad on port GigabitEthernet1/0/5.Output ASW1# show port-security interface GigabitEthernet1/0/5 Port Security : Enabled Port Status : Secure-up Violation Mode : Restrict Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 2 Total MAC Addresses : 2 Configured MAC Addresses : 0 Sticky MAC Addresses : 2 Last Source Address:Vlan : 0050.5689.0bad:10 Security Violation Count : 3Recovering from shutdown
shutdownthenno shutdownon the port, or automatic recovery witherrdisable recovery cause psecure-violation(default interval 300 seconds).They will ask next
Why does a laptop sometimes trigger a violation when moved to another port?
A MAC that is secured on one port and then shows up on another secure port in the same VLAN is a violation. Clear the old entry, or use aging so dynamically learned entries expire.
Sticky versus static secure MACs?
Static ones you type by hand. Sticky ones are learned automatically and written into the running config as if typed. Both survive a reload only if the config is saved.
Traps
- Mixing up protect and restrict. Restrict logs and counts, protect is silent.
- Setting a maximum of 1 on a port with an IP phone and a PC behind it.
How did you do?Book 3.2 Switched EthernetOwn pageWhat is a MAC flooding attack, and how do you stop it?
Say this first
A switch learns source MACs into its MAC address table, which has a fixed size. The attacker sends a flood of frames with random source MACs until the table is full. New legitimate addresses can no longer be learned, so frames to them are unknown unicast and get flooded out of every port in the VLAN, where the attacker can capture them. The switch behaves like a hub for that traffic. Port security with a small MAC maximum stops it at the edge, and 802.1X keeps unknown devices off the port.
Go deeper
Mechanism in detail
- The table is shared by all VLANs on the switch, so once it is full, learning stops everywhere and unknown unicast flooding rises in every VLAN. The attacker sees only the floods in its own VLAN.
- Existing entries age out (300 seconds by default on Cisco) and cannot be relearned while the table stays full, so more and more traffic gets flooded.
- The switch does not crash. It keeps forwarding, just like a hub for anything it cannot learn.
Mitigation
Cisco IOS interface range GigabitEthernet1/0/1 - 46 switchport mode access switchport port-security maximum 3 switchport port-security violation restrict switchport port-securityAlso 802.1X so only authenticated devices get a port, and MAC table monitoring.
How you spot it
show mac address-table countshows the table near its platform limit, andshow mac address-table interface Gi1/0/7shows thousands of addresses on one access port where you expect one or two. With port security on, the violation log names the port directly.They will ask next
Why do the extra flooded frames matter if the attacker is in one VLAN?
Traffic between other hosts in the attacker's VLAN, including credentials in clear-text protocols, now reaches the attacker's port. Across the switch, flooding wastes bandwidth on every port.
Would this work against a router?
No. A router forwards on IP and does not flood unknown destinations. The attack is about the layer 2 learning table.
Traps
- Saying the switch crashes or fails closed. It fails open and floods.
How did you do?Book 3.2 Switched EthernetOwn pageHow does ARP spoofing work, and what are the defenses?
Say this first
ARP has no authentication, and hosts accept ARP replies they never asked for. The attacker sends forged replies, often gratuitous ARPs, telling victims "the gateway's IP is at my MAC" and telling the gateway "the victim's IP is at my MAC". Both caches are poisoned, so traffic flows through the attacker, who can read or change it (man in the middle) or drop it (denial of service). The switch defense is Dynamic ARP Inspection backed by DHCP snooping, which drops ARPs whose IP and MAC pair does not match the binding table. Encryption such as TLS, SSH and IPsec limits what a man in the middle can read.
Go deeper
What it looks like
- On a victim,
arp -ashows the gateway 10.10.10.1 mapped to a workstation's MAC, often the same MAC as another IP in the table. - Users see certificate warnings when the attacker tries to intercept TLS.
- DAI, if enabled, logs
%SW_DAI-4-DHCP_SNOOPING_DENYwith the attacker's MAC and the claimed IP.
Defenses, in order of value
- Dynamic ARP Inspection with DHCP snooping on access VLANs.
- 802.1X so only known devices get a port at all.
- Port isolation or private VLANs where hosts never need to talk to each other.
- Static ARP entries for a few critical devices. Does not scale.
- Encryption everywhere, so interception gains little.
- Detection: tools that alert on IP to MAC changes, and IDS signatures for gratuitous ARP storms.
They will ask next
What is the IPv6 version of this attack?
Forged Neighbor Advertisements and rogue Router Advertisements. The defenses are RA Guard, ND inspection and DHCPv6 Guard, which on Cisco are part of the switch's IPv6 first hop security.
Can ARP spoofing reach across a router?
No. ARP lives inside one layer 2 segment, so the attacker must be in the same VLAN as the victim or the gateway it impersonates.
Traps
- Saying port security stops ARP spoofing. The attacker uses its own real MAC; only the ARP contents lie.
How did you do?Book 3.3 Internet (IP)Own page- On a victim,
What makes a next-generation firewall different from a traditional stateful firewall?
Say this first
A traditional stateful firewall decides on addresses, ports and session state. A next-generation firewall adds identity and content. It identifies the application from the traffic itself, whatever port it uses, maps IP addresses to users and groups from the directory, and runs intrusion prevention, URL category filtering and malware inspection in the same pass. It can also decrypt TLS to look inside. A rule can then say "finance may use this SaaS application but not upload files to it" instead of "allow TCP 443".
Go deeper
Features and typical names
Feature What it does Examples Application identification names the app from payload and behavior, not port Palo Alto App-ID, FortiGate application control User identity maps IPs to users and groups PAN-OS User-ID, Fortinet FSSO, Cisco ISE integration Intrusion prevention signature and protocol-anomaly blocking built into all major NGFWs URL filtering allow or block by web category and reputation PAN-OS URL filtering, FortiGuard web filter TLS decryption forward proxy for outbound, inbound inspection for your servers all major NGFWs File and malware analysis blocks file types, sends unknown files to a sandbox WildFire, FortiSandbox DNS security and threat feeds blocks known bad domains and IPs, sinkholes vendor clouds, external feeds A rule in PAN-OS terms
Output set rulebase security rules Web-Out from trust to untrust source 10.10.0.0/16 destination any application [ ssl web-browsing ] service application-default action allowapplication-defaultmeans each app is allowed only on its standard ports, so SSH tunnelled over 443 is not allowed by this rule.TLS decryption limits
Forward proxy decryption re-signs server certificates with an internal CA that clients must trust. Applications with certificate pinning or mutual TLS break, and many companies exclude health, finance and privacy categories for legal reasons. With TLS 1.3 and forward secrecy, passive decryption with a server's private key no longer works; the firewall must sit inline as a proxy.
They will ask next
Why does the firewall need several packets before it knows the application?
It needs payload to identify most apps. The first packets are allowed while it decides, and the session's application can change as more is seen, for example from generic TLS to a specific SaaS app. Rules are re-evaluated when that happens.
What is the risk of turning everything on?
Throughput drops a lot with IPS, decryption and file inspection enabled. Size the firewall on vendor numbers measured with threat prevention and decryption on, not raw firewall throughput.
Traps
- Writing NGFW rules as "allow TCP 443" and ignoring the application, which throws away the main feature.
How did you do?Book 8.5 Example SystemsOwn pageWhat is the difference between an IDS and an IPS?
Say this first
An IDS watches a copy of the traffic, from a SPAN port or a network TAP, and raises alerts. It is out of band, adds no latency, and cannot stop the packet that triggered the alert. An IPS sits inline, so every packet passes through it and it can drop, reset or rate-limit malicious traffic before it arrives. The price is latency, a new failure point (so you choose fail-open or fail-closed), and the fact that a false positive blocks real users instead of creating a ticket.
Go deeper
Detection methods
- Signature: known patterns of exploits and malware. Precise for known threats, blind to new ones.
- Anomaly or behavior: deviation from a learned baseline. Finds new things, more false positives.
- Protocol analysis: traffic that breaks the protocol's rules.
- Reputation: known bad IPs, domains and certificates.
Deployment practice
- Start an IPS in detect-only mode, tune out the false positives for your environment, then block on high-confidence signatures first.
- Most IPS today lives inside the NGFW. Standalone sensors such as Snort, Suricata (both can run as IDS or IPS) and Zeek (network monitoring) are common for visibility.
- Encrypted traffic hides payloads. Inspect after TLS decryption, or rely on metadata such as TLS fingerprints, certificates and flow behavior.
- Host-based IDS and endpoint detection see what the network cannot, inside encrypted sessions.
They will ask next
Fail-open or fail-closed?
A business decision. Fail-open (hardware bypass) keeps traffic flowing if the IPS dies, choosing availability. Fail-closed stops traffic, choosing security, and fits high-security segments.
Can an IDS block anything?
Only indirectly: it can send TCP resets or ask a firewall to block the source. Both happen after the first packets have already arrived, and resets do nothing for UDP.
Traps
- Confusing false positives (good traffic flagged) with false negatives (attacks missed).
How did you do?Book 8.5 Example SystemsOwn pageWhat is a DMZ, and how would you design one for a public web application?
Say this first
A DMZ is a separate network segment for servers that must be reachable from the internet, so that compromising one of them does not put the attacker on the internal network. Internet users can reach only the published services in the DMZ, for example TCP 443 to a reverse proxy. DMZ hosts can reach the inside only on specific ports to specific servers, such as the application tier to the database port, and the inside never trusts the DMZ by default. It is built with one firewall and three legs, or with two firewalls back to back.
Go deeper
Rule pattern
From To Allowed Internet DMZ only published services: TCP 443 to the reverse proxy DMZ Inside only named flows: app servers to the database port, nothing else Inside DMZ administration from a jump host on the management network DMZ Internet deny by default; updates through a proxy or named repositories Anything Firewall itself management only from the management network Single firewall or two
- Three-legged: one firewall with inside, outside and DMZ interfaces. Cheaper and simpler, but one device and one policy hold everything.
- Back to back: an outer firewall between internet and DMZ, an inner firewall between DMZ and inside. Two layers to break through, sometimes from two vendors so one vulnerability does not open both. More cost and more rules to keep consistent.
Details that separate good from average
- Separate DMZ segments per service type (web, mail, partner), so one breach does not reach the others.
- Private VLANs or host firewalls inside a DMZ, because web servers rarely need to talk to each other.
- Keep application and data tiers on the inside or in their own zones; only the reverse proxy or load balancer sits in the DMZ.
- A WAF or CDN in front of public web apps.
- Logs from DMZ hosts and from the firewall go to a SIEM, since the DMZ is where attacks start. In the cloud the same idea is a public subnet holding only the load balancer, with the application in private subnets.
They will ask next
Why private VLANs in a DMZ?
If one web server is compromised, isolated ports stop it from attacking the others in the same subnet directly. Everything has to go through the firewall, where it is filtered and logged.
The app team says the DMZ web server needs to reach ten internal systems. What do you do?
Challenge the design first: move the logic to an application tier on the inside and let only the proxy call it. If flows are truly needed, allow each one by port and destination, and log them.
Traps
- Allowing broad DMZ to inside access "because the application needs it". That defeats the DMZ.
How did you do?Book 8.5 Example SystemsOwn pageWhat does defense in depth mean in a network?
Say this first
Layered controls, so that no single failure exposes the business. Each layer assumes the one before it can fail. In a network that means filtering and an NGFW at the edge, segmentation inside (VLANs, VRFs, internal firewalls), access control at the port with 802.1X, first hop protections like DHCP snooping and DAI, hardened network devices, endpoint protection, encryption in transit, and monitoring good enough to notice an attacker who got past all of it.
Go deeper
Walk an attack through the layers
A user receives a phishing email.
- The mail filter catches most of these.
- The user clicks anyway. Endpoint protection blocks the payload, or not.
- The malware calls home. DNS security and URL filtering on the NGFW block the domain, or not.
- The attacker tries to move sideways. Segmentation means the user VLAN can reach only the applications it needs, not server management ports or other users.
- The attacker steals an admin password. MFA, TACACS+ with command authorization, and management reachable only from jump hosts stop it from becoming network control.
- Something unusual happens anyway. NetFlow, IDS and the SIEM notice the odd flows.
Every step is a chance to stop or detect the attack. Without layers, step 2 is game over.
Not only technology
Patching, change control, backups that are tested and kept offline, least-privilege accounts, and training are layers too.
They will ask next
How does defense in depth relate to zero trust?
Zero trust is a stricter version of the same idea: do not trust the inside either, and verify every request on its own merits, not because of where it comes from.
What is the most common weak layer you see?
A flat internal network. Once something is inside, everything is reachable, so one infected laptop can scan and attack every server.
Traps
- Answering with a list of products. The interviewer wants the principle and an example of layers working together.
How did you do?Book 8.1 Trust and ThreatsOwn pageHow do you set up SSH on a Cisco router and lock down management access?
Say this first
Set a hostname and a domain name, generate an RSA key of at least 2048 bits, force SSH version 2, and create a local user with a strong type 9 (scrypt) secret. On the VTY lines allow only
transport input ssh, with an access-class that permits only the management subnet. Add an idle timeout, brute-force protection withlogin block-for, and turn off what I do not use, like Telnet and the HTTP server.Go deeper
Configuration
Cisco IOS hostname R1 ip domain name corp.example.com crypto key generate rsa general-keys modulus 2048 ip ssh version 2 ip ssh time-out 60 ip ssh authentication-retries 3 ! username netadmin privilege 15 algorithm-type scrypt secret Str0ng-Admin-2026 enable algorithm-type scrypt secret Str0ng-Enable-2026 ! ip access-list standard MGMT-ONLY 10 permit 10.99.0.0 0.0.0.255 20 deny any log ! line vty 0 15 access-class MGMT-ONLY in transport input ssh login local exec-timeout 10 0 ! login block-for 120 attempts 5 within 60 login on-failure log no ip http server no ip http secure-serverWith
aaa new-model, the VTY lines use AAA method lists instead oflogin local.Output R1# show ip ssh SSH Enabled - version 2.0 Authentication timeout: 60 secs; Authentication retries: 3Password types on IOS
Type Meaning Use 0 clear text never 7 reversible ( service password-encryption)only hides from shoulder surfing 5 salted MD5 legacy 8 PBKDF2 with SHA-256 good 9 scrypt good They will ask next
Why does the key size matter?
SSH version 2 on IOS needs a modulus of at least 768 bits, and anything under 2048 is considered weak today. Many IOS-XE releases also let you restrict the SSH ciphers, key exchange and MAC algorithms to modern ones.
Your management network is in a VRF and the access-class blocks everything. Why?
A VTY access-class without the
vrf-alsokeyword does not accept connections arriving in a VRF. Useaccess-class MGMT-ONLY in vrf-also.How would you move from passwords to keys?
Add users' public keys under
ip ssh pubkey-chain, or better, use AAA with central accounts and MFA at the jump host, so local secrets become break-glass only.
Traps
- Calling
service password-encryptionencryption. Type 7 can be reversed instantly. - Forgetting
transport input ssh, which leaves Telnet open on some releases.
How did you do?Book 8.5 Example SystemsOwn page
Working15
How does a router process an ACL, and how do you insert a line into one that is live in production?
Say this first
Top down, first match wins, and processing stops at that line. So specific lines go before general ones. To insert a line I use sequence numbers:
ip access-list extended NAME, then15 permit ...lands between 10 and 20. If I run out of gaps,ip access-list resequence NAME 10 10renumbers the list. For risky changes on a remote device I protect myself with a scheduled rollback first.Go deeper
Inserting a line
Cisco IOS R1# show ip access-lists BRANCH-IN Extended IP access list BRANCH-IN 10 permit tcp 10.1.20.0 0.0.0.255 host 10.2.50.10 eq 443 20 deny ip 10.1.20.0 0.0.0.255 10.2.50.0 0.0.0.255 30 permit ip any any R1# configure terminal R1(config)# ip access-list extended BRANCH-IN R1(config-ext-nacl)# 15 permit tcp host 10.1.20.5 10.2.50.0 0.0.0.255 eq 22 R1(config-ext-nacl)# end R1# show ip access-lists BRANCH-IN Extended IP access list BRANCH-IN 10 permit tcp 10.1.20.0 0.0.0.255 host 10.2.50.10 eq 443 15 permit tcp host 10.1.20.5 10.2.50.0 0.0.0.255 eq 22 20 deny ip 10.1.20.0 0.0.0.255 10.2.50.0 0.0.0.255 30 permit ip any anyA line added without a sequence number goes to the end, below any explicit deny, where it never matches.
Changing ACLs safely on a remote router
reload in 10before the change,reload cancelonce you know you can still reach the box.- Build the new policy as a new ACL name, then swap it with one
ip access-group NEW incommand, which replaces the old binding in one step. - Never delete and retype an ACL that is applied. Between the
noand the new lines, the interface either permits everything or, once the first line exists, denies everything else. - On Junos,
commit confirmed 5rolls back automatically unless you confirm.
Order of evaluation details
Switches evaluate ACLs in TCAM in parallel, but the result is the same as top down: the lowest sequence number that matches wins.
They will ask next
What does
establisheddo in an ACL line?It matches TCP segments with the ACK or RST flag set, which is a stateless way to allow return traffic for connections started from inside. It does not track sessions and does nothing for UDP.
How would you find which line is matching a flow?
Clear the counters with
clear ip access-list counters NAME, generate the traffic, and readshow ip access-lists NAME. Temporarylogon the suspected line confirms it.
Traps
- Putting
permit ip any anyabove a deny line. The deny never matches. - Adding a line without a sequence number and expecting it near the top.
How did you do?Book 8.5 Example SystemsOwn pageWhat is different about IPv6 ACLs on Cisco IOS?
Say this first
They are always named, use prefix lengths instead of wildcards, and are applied with
ipv6 traffic-filter NAME in|outinstead ofip access-group. The important difference is the end of the list: before the implicitdeny ipv6 any anythere are implicit permits for Neighbor Discovery neighbor solicitations and advertisements. If I add my owndeny ipv6 any any log, I block ND and neighbors stop resolving, so I add the ND permits explicitly above it.Go deeper
Example
Cisco IOS ipv6 access-list V6-SERVERS-IN permit tcp 2001:db8:10::/64 host 2001:db8:50::10 eq 443 permit icmp any any nd-ns permit icmp any any nd-na permit icmp any any packet-too-big deny ipv6 any any log ! interface GigabitEthernet0/0/1 ipv6 traffic-filter V6-SERVERS-IN in ! line vty 0 15 ipv6 access-class V6-MGMT inWhy ICMPv6 needs more care than ICMP in IPv4
- Neighbor Discovery replaces ARP and runs over ICMPv6.
- Packet Too Big drives path MTU discovery. Routers never fragment IPv6, so blocking it causes black holes for large packets.
- Router Advertisements carry the default gateway and prefixes for SLAAC. RFC 4890 gives recommendations for which ICMPv6 types to allow through firewalls.
The dual stack hole
An IPv4 ACL does not touch IPv6. A dual-stack interface with only
ip access-grouplets all IPv6 through. Every IPv4 policy needs an IPv6 twin.They will ask next
How do you see hits on an IPv6 ACL?
show ipv6 access-list V6-SERVERS-INshows each line with its match count and sequence number.Do hosts use IPv6 even if you never configured it?
Yes. Windows, macOS and Linux enable IPv6 by default and prefer it when they get a global address. An unfiltered segment can be reached over IPv6 link-local and by rogue router advertisements, which is why RA Guard exists.
Traps
- Adding an explicit
deny ipv6 any any logand breaking Neighbor Discovery. - Filtering IPv4 carefully and forgetting IPv6 on the same interface.
How did you do?Book 4.2 IP Version 6Own pageHow does the Cisco IOS zone-based firewall work?
Say this first
Interfaces are put into security zones. Traffic between two zones is dropped unless a zone-pair, which has a direction from a source zone to a destination zone, carries a policy. The policy is MQC with
type inspect: class maps pick the traffic, and the action isinspect(stateful, replies allowed automatically),pass(stateless, one direction only) ordrop. Traffic between interfaces in the same zone flows by default, and traffic to and from the router itself belongs to the built-in self zone, which is allowed until I configure zone-pairs for it.Go deeper
Default behavior
Traffic Result Between interfaces in the same zone allowed Between two zones with no zone-pair policy dropped Between a zoned interface and an interface in no zone dropped Between two interfaces in no zone allowed, normal routing To or from the router (self zone) allowed until a zone-pair with self is configured Minimal policy: inside users to the internet
Cisco IOS zone security INSIDE zone security OUTSIDE ! class-map type inspect match-any CM-WEB-DNS match protocol https match protocol http match protocol dns match protocol icmp ! policy-map type inspect PM-IN-TO-OUT class type inspect CM-WEB-DNS inspect class class-default drop log ! zone-pair security ZP-IN-OUT source INSIDE destination OUTSIDE service-policy type inspect PM-IN-TO-OUT ! interface GigabitEthernet0/0/1 zone-member security INSIDE interface GigabitEthernet0/0/0 zone-member security OUTSIDENo OUTSIDE to INSIDE zone-pair is needed for the replies:
inspectcreates the session and the return packets match it.class-defaultin an inspect policy drops by default;drop logmakes it visible.ZBF replaced the older CBAC (
ip inspect), and the two cannot be used on the same interface.They will ask next
Why would you configure a zone-pair with the self zone?
To protect the router. For example OUTSIDE to self allows only IKE and ESP for a VPN and ICMP replies, and drops the rest. Once a zone-pair from a zone to self exists, only what its policy allows from that zone reaches the router.
What happens when you add a new subinterface and forget to put it in a zone?
Traffic between it and every zoned interface is dropped. It is a common outage after adding a VLAN to a router running ZBF.
Traps
- Using
passand forgetting that the reply direction needs its own zone-pair andpass. - Expecting traffic between two interfaces in the same zone to be inspected. By default it is not.
How did you do?Book 8.5 Example SystemsOwn pageWhen does a router fall back from the TACACS+ servers to the local user database?
Say this first
Only when the servers do not answer: timeout, connection refused, no route. If a server answers and rejects the user, that is a final answer and the router does not try the local database. That is why the break-glass account works during a server outage, but not while the server is up. I also give the console its own method list that uses local only, so an AAA problem can never lock me out of the console.
Go deeper
Three results, not two
Each method returns pass, fail or error. Pass logs you in, fail stops the list, and only error moves on to the next method.
debug aaa authenticationshows which method was tried and what it returned.Console safety net
Cisco IOS aaa authentication login CONSOLE local line con 0 login authentication CONSOLELockouts and odd fallbacks seen in real life
aaa new-modelbefore a local user exists. New sessions have no working method.- Wrong source address. The server does not know the request's source IP, so it ignores it. The router sees no answer and falls back to local, which looks like "TACACS+ is not working, but local logins work".
- Shared secret mismatch. The server cannot validate the request, or the device cannot decrypt the reply. Check the server's logs, which usually name the problem directly.
- Command authorization with no fallback. With
aaa authorization commands 15 default group TAC-SERVERSand nothing after it, a server outage means you can log in but not run commands. Addlocalorif-authenticated.
Change discipline
Keep a second session open while changing AAA, test a new login before closing it, and on remote devices schedule
reload in 10first.They will ask next
What does
if-authenticateddo at the end of an authorization list?If every earlier method errors, authorization passes as long as the user authenticated successfully. It keeps admins working during a server outage.
How do you test the servers without logging out?
The
test aaa groupcommand sends a real request with a username and password from the device and reports pass or fail, andshow aaa serversshows each server's state, response times and counters.
Traps
- Expecting a rejected password to fall through to the local database.
- Applying the default login list to the console with no local-only alternative.
How did you do?Book 8.4 Authentication ProtocolsOwn pageWhich EAP methods do you know, and which would you pick for corporate laptops?
Say this first
EAP-TLS uses certificates on both sides, so it is mutual and there is no password to steal or phish: that is my pick for managed laptops. PEAP, usually with MSCHAPv2 inside, and EAP-TTLS build a TLS tunnel using only a server certificate and then send a password inside it. EAP-FAST is Cisco's tunnel method based on a protected access credential. TEAP is the newer standard tunnel method that can chain machine and user authentication. EAP-MD5 has no mutual authentication and no keys, so it should not be used.
Go deeper
Comparison
Method Client proves itself with Server certificate Notes EAP-TLS certificate yes strongest; needs PKI and enrollment PEAP (MSCHAPv2) password inside the tunnel yes easy; safe only if clients validate the server EAP-TTLS password or other inner method yes common on non-Windows clients EAP-FAST PAC, then inner method optional Cisco; supports chaining machine and user TEAP inner method, can chain several yes RFC 7170 EAP-MD5 password hash no no mutual auth, no keys, no wireless The PEAP risk in one sentence
If the supplicant does not validate the server certificate and name, an attacker's fake access point or port can terminate the tunnel and collect MSCHAPv2 exchanges, which can be cracked offline. Push the trusted CA and the expected server name to clients by policy.
What EAP-TLS needs in practice
An internal CA, automatic enrollment (AD Certificate Services autoenrollment, or SCEP from MDM), revocation checking on the RADIUS server, and monitoring of certificate expiry. Windows Credential Guard also blocks single sign-on with MSCHAPv2-based methods, another push toward certificates.
They will ask next
What is the difference between machine and user authentication?
Machine authentication uses the computer's credentials at boot, so the device is on the network for domain login, group policy and management before anyone signs in. User authentication runs after login. Chaining (EAP-FAST or TEAP) lets the server require both in one session.
Why is the outer identity often anonymous?
In tunneled methods the outer identity is sent before the tunnel exists, so it is visible to anyone on the path. The real username travels inside the tunnel.
Traps
- Saying EAP-TLS uses a username and password.
- Recommending PEAP without mentioning server certificate validation on the client.
What is MAB, and why is it considered weak?
Say this first
MAC Authentication Bypass is the fallback for devices that cannot run 802.1X: printers, cameras, badge readers, some phones and medical devices. The switch learns the device's source MAC from its first frames and sends it to RADIUS as the identity. The server looks it up in an endpoint list and returns accept with a policy. It is weak because a MAC address is not a secret: it is printed on the label and visible on the wire, so anyone can copy it. MAB devices should get narrow access, and profiling should confirm the device still looks like a printer.
Go deeper
Order and timing
Cisco IOS interface GigabitEthernet1/0/22 authentication order dot1x mab authentication priority dot1x mab authentication port-control auto mab dot1x pae authenticator dot1x timeout tx-period 10With the default
tx-periodof 30 seconds and two retries, a device with no supplicant waits about 90 seconds before MAB starts, long enough for DHCP on some devices to give up. Loweringtx-periodto 10 brings that to about 30 seconds. Another option isauthentication order mab dot1xwithpriority dot1x mab: MAB runs first, and an 802.1X client can still take over when it sends EAPOL.What the server sees
On Cisco switches a MAB request carries Service-Type Call-Check, and the MAC appears as the username and in Calling-Station-Id. The MAC format is configurable on the switch and normalized on most servers.
Making it less weak
- Narrow policy per device type: a printer gets a downloadable ACL that allows only the print servers, not the whole network.
- Profiling with DHCP options, LLDP or CDP, HTTP user agent and active scans, so a laptop presenting a printer's MAC gets flagged when its profile changes.
- Move devices to 802.1X with certificates whenever the device supports it.
They will ask next
How do you onboard hundreds of printers and cameras?
Import the MAC lists from the asset inventory into an endpoint identity group, and let profiling classify the rest. The authorization rule matches the group or profile and returns the policy.
How does MAB interact with multi-auth?
Each MAC on the port is its own session. One port can have an 802.1X laptop and a MAB-authorized device behind a small switch, each with its own policy.
Traps
- Calling MAB device authentication. It identifies a device by a value anyone can copy.
- Forgetting the 90 second delay with default timers, which makes MAB devices fail DHCP after rollout.
How did you do?Book 8.4 Authentication ProtocolsOwn pageHow does DHCP snooping work, and what do trusted and untrusted ports mean?
Say this first
DHCP snooping turns the switch into a DHCP filter. Every port is untrusted by default; I mark only the ports toward the real DHCP server or relay as trusted, usually the uplinks. On untrusted ports the switch drops DHCP server messages (OFFER, ACK, NAK), so a rogue server on an access port cannot hand out leases, and it can rate-limit DHCP to slow a starvation attack. From the ACKs it sees, it builds a binding table of MAC, IP, lease, VLAN and port. That table is what Dynamic ARP Inspection and IP Source Guard check against.
Go deeper
What it checks on untrusted ports
- Drops server-to-client messages: DHCPOFFER, DHCPACK, DHCPNAK.
- Drops DHCPRELEASE and DHCPDECLINE for a binding that lives on a different port, so one client cannot release another's lease.
- Checks that the frame's source MAC equals the client hardware address inside the DHCP packet
(
ip dhcp snooping verify mac-address, on by default). - Optional rate limit in packets per second. Exceeding it err-disables the port.
- Inserts DHCP option 82 by default on Catalyst switches, which can upset upstream relays (covered in the pitfalls question).
Configuration
Cisco IOS ip dhcp snooping vlan 10,20 ip dhcp snooping ip dhcp snooping database flash:dhcp-snooping.db ! interface GigabitEthernet1/0/48 description Uplink to DSW1 ip dhcp snooping trust ! interface range GigabitEthernet1/0/1 - 46 ip dhcp snooping limit rate 15Both the global command and the per-VLAN command are needed. For an EtherChannel uplink, put
truston the port-channel interface.The binding table
Output ASW1# show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface ------------------ --------------- ---------- ------------- ---- -------------------- 00:50:56:89:1A:2B 10.10.10.51 85740 dhcp-snooping 10 GigabitEthernet1/0/5 Total number of bindings: 1The database line stores the table in flash so it survives a reload.
They will ask next
Which port do you trust?
The one the server's replies arrive on: the uplink toward the distribution switch, relay or DHCP server. Never a user-facing port, and not a port toward a downstream switch you do not control.
Does DHCP snooping affect hosts with static IP addresses?
Not by itself, but those hosts have no binding, so DAI and IP Source Guard will drop them unless you add static entries.
Traps
- Enabling
ip dhcp snoopingglobally but not for any VLAN. Nothing is snooped. - Forgetting to trust the uplink. Every client in the VLAN stops getting leases.
How did you do?Book 3.3 Internet (IP)Own pageHow does Dynamic ARP Inspection stop ARP spoofing?
Say this first
DAI intercepts every ARP request and reply arriving on untrusted ports in the VLANs where it is enabled, and checks the sender MAC and IP against the DHCP snooping binding table and any static ARP ACLs. If a host on Gi1/0/7 claims the gateway's IP and that pairing is not in the table for that port, the ARP is dropped and logged. Uplinks are set as trusted so ARPs from the gateway and other switches pass. Untrusted ports are limited to 15 ARP packets per second by default; going over err-disables the port.
Go deeper
Configuration
Cisco IOS ip arp inspection vlan 10 ip arp inspection validate src-mac dst-mac ip ! arp access-list STATIC-HOSTS permit ip host 10.10.10.5 mac host 0050.5689.0005 ip arp inspection filter STATIC-HOSTS vlan 10 ! interface GigabitEthernet1/0/48 ip arp inspection trustExtra validation
src-mac: the Ethernet source MAC must equal the sender MAC inside the ARP packet.dst-mac: in replies, the Ethernet destination must equal the target MAC inside the ARP packet.ip: rejects nonsense addresses such as 0.0.0.0, 255.255.255.255 and multicast. Give all three in one command. Eachip arp inspection validateline replaces the previous one.
What a drop looks like
Output %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Gi1/0/7, vlan 10.([0050.5689.0bad/10.10.10.1/0050.5689.1a2b/10.10.10.51/09:12:44 UTC Tue Nov 10 2026])Reading the bracket: sender MAC, sender IP, target MAC, target IP, time. A host at 0050.5689.0bad told 10.10.10.51 that it owns the gateway address 10.10.10.1.
Static ARP ACLs
Hosts with fixed addresses have no DHCP binding. An ARP ACL lists their IP and MAC. With the
statickeyword on the filter, only the ACL is used and the binding table is not consulted for that VLAN.They will ask next
Why does DAI need DHCP snooping when you only care about ARP?
DAI has no knowledge of which IP belongs to which MAC on which port. The DHCP snooping binding table is that knowledge. Without snooping, only ARP ACL entries can be validated.
What do you do on a port with many legitimate hosts behind it, like a small switch or an AP?
Raise the limit on that port with
ip arp inspection limit rate, or trust it only if the device behind it runs its own ARP protection.
Traps
- Enabling DAI before the binding table is populated. Hosts that got their lease earlier are not in the table yet and are cut off.
- Forgetting to trust the uplink, which drops the gateway's own ARP replies.
How did you do?Book 3.3 Internet (IP)Own pageWhat does IP Source Guard add on top of DHCP snooping and DAI?
Say this first
IP Source Guard filters the data traffic itself, not only ARP. On an untrusted access port it installs a per-port filter that permits only packets sourced from the IP in that port's DHCP snooping binding, and optionally only from the bound MAC too. Everything else is dropped. A host that sets a static IP, or spoofs another host's address to hide an attack, cannot send. DAI stops lies inside ARP; IPSG stops spoofed source addresses in IP packets.
Go deeper
Configuration
Cisco IOS interface GigabitEthernet1/0/5 ip verify source ! ip source binding 0050.5689.0005 vlan 10 10.10.10.5 interface GigabitEthernet1/0/6ip verify sourcefilters on source IP. To filter on IP and MAC together, older Catalyst releases useip verify source port-security, which needs port security on the port, and Catalyst 9000 usesip verify source mac-check. Theip source bindingline adds a static entry for a fixed-address host.Output ASW1# show ip verify source Interface Filter-type Filter-mode IP-address Mac-address Vlan --------- ----------- ----------- --------------- ----------------- ---- Gi1/0/5 ip active 10.10.10.51 10Before the client has a lease, the port drops all IP traffic except DHCP.
Compared with uRPF
uRPF is a router feature that checks the source against the routing table per interface, so it stops spoofing of whole subnets at the edge. IPSG is per host, at the access port, against the lease. For IPv6 the equivalent is IPv6 Source Guard, part of the switch's device-tracking feature set.
They will ask next
Why might every host on a switch lose connectivity after a reload with IPSG on?
The binding table is empty after boot. Until clients renew their leases, their traffic is dropped. The DHCP snooping database agent, which saves the table to flash or a server, prevents it.
What does IPSG cost?
Hardware filter entries per port. On large access switches with many ports the ACL resources are finite, so check the platform's limits.
Traps
- Enabling IPSG on a VLAN where DHCP snooping is not enabled. There are no bindings, so everything is dropped.
How did you do?Book 3.3 Internet (IP)Own pageExplain the two VLAN hopping attacks and how you prevent each one.
Say this first
Switch spoofing: the attacker's device speaks DTP and talks a port left in dynamic auto or desirable into becoming a trunk, then sends and receives in every VLAN. Prevent it by hard-coding access ports with
switchport mode accessand turning off DTP withswitchport nonegotiateon trunks. Double tagging: an attacker in the trunk's native VLAN sends a frame with two 802.1Q tags. The first switch removes the outer tag because it matches the native VLAN and forwards the frame over the trunk, where the next switch reads the inner tag and delivers it into the victim VLAN. It only works one way. Prevent it by keeping users out of the native VLAN and tagging the native VLAN.Go deeper
Switch spoofing
Many Catalyst models default to
dynamic auto, which becomes a trunk if the other side asks. An attacker sends DTP frames asking for a trunk and gets one.Double tagging
Only possible when the attacker's access VLAN equals the trunk's native VLAN. The reply from the victim is tagged normally and never comes back to the attacker's VLAN, so it suits one-way attacks such as a flood or a crafted UDP packet.
Hardening template
Cisco IOS vlan dot1q tag native ! interface range GigabitEthernet1/0/1 - 46 switchport mode access switchport access vlan 10 switchport nonegotiate spanning-tree portfast spanning-tree bpduguard enable ! interface range GigabitEthernet1/0/47 - 48 switchport mode trunk switchport trunk native vlan 999 switchport trunk allowed vlan 10,20,30 switchport nonegotiateVLAN 999 has no access ports and is not in the allowed list. Unused ports are shut down and parked in an unused VLAN.
They will ask next
Why is double tagging one way?
The victim's reply leaves with one normal tag for its own VLAN. Nothing strips or adds tags to send it back into the attacker's native VLAN.
What does
vlan dot1q tag nativechange?The switch tags native VLAN frames on trunks too, so an outer tag is never stripped on the way out. Both ends of each trunk should agree, because untagged frames arriving on the trunk are then dropped.
Traps
- Thinking VLANs alone are a security boundary. Misconfigured trunks and native VLANs undo them.
- Believing double tagging gives two-way access.
How did you do?Book 3.2 Switched EthernetOwn pageWhat is DHCP starvation, and why is it usually paired with a rogue DHCP server?
Say this first
The attacker sends a flood of DHCPDISCOVERs, each with a different client hardware address, until the real server's pool is empty. Legitimate clients then get no lease. With the real server unable to answer, the attacker serves new clients from its own DHCP server and gives itself out as the default gateway or DNS server, which turns a denial of service into a man in the middle. DHCP snooping blocks the rogue server's offers on untrusted ports, and its rate limit and MAC check, together with port security, stop the starvation.
Go deeper
Which control stops which variant
Attack variant Control that stops it New source MAC for every request port security maximum One source MAC, random client hardware address inside DHCP snooping verify mac-address(on by default)High request rate from one port ip dhcp snooping limit rate, port err-disablesRogue server answering on an access port snooping trust boundary drops the OFFER and ACK Detection
- Pool utilization jumps to 100 percent in minutes. Alert on pool usage, not only on outages.
- The DHCP server shows hundreds of new leases with random-looking MACs from one relay or circuit ID.
- On the switch, the snooping rate limit err-disables the port and logs it, for example
%PM-4-ERR_DISABLE: dhcp-rate-limit error detected on Gi1/0/7, putting Gi1/0/7 in err-disable state.
For IPv6
Rogue Router Advertisements and DHCPv6 servers do the same job, and RA Guard and DHCPv6 Guard are the matching controls.
They will ask next
How do you find a rogue DHCP server quickly?
On an affected client,
ipconfig /allshows the DHCP server address. Resolve it to a MAC witharp -a, thenshow mac address-table address <mac>on the switches leads to the port.Does a rogue server need starvation to work?
No. It only needs to answer faster than the real server, and a local rogue usually beats a server reached through a relay. Starvation just guarantees it wins.
Traps
- Assuming port security alone stops starvation. Tools that vary only the address inside DHCP pass it.
How did you do?Book 3.3 Internet (IP)Own pageHow does a SYN flood work, and how do SYN cookies defend against it?
Say this first
The attacker sends a stream of TCP SYNs, usually from spoofed source addresses, and never completes the handshake. The server keeps a half-open entry for each SYN and sends a SYN-ACK that goes nowhere, so its queue of half-open connections fills and real clients are refused. With SYN cookies, once that queue is full the server stops storing anything for new SYNs. It encodes what it needs (a hash of the addresses, ports and a secret, a time counter and an MSS value) into the initial sequence number of its SYN-ACK. A real client's ACK carries that number plus one, the server verifies it, and only then creates the connection. Spoofed SYNs cost it no memory.
Go deeper
Server side
Shell $ sysctl net.ipv4.tcp_syncookies net.ipv4.tcp_syncookies = 1 $ ss -n state syn-recv | wc -lOn Linux the value 1 (the default) means cookies are used only when the SYN queue overflows. The cost: the cookie can only carry a few MSS values, and options such as window scaling and SACK survive only when TCP timestamps are on, because Linux hides them in the timestamp.
Network side
- SYN proxy or SYN cookies on the firewall: the firewall answers the SYN itself and only opens a connection to the server after the client completes the handshake. PAN-OS zone protection, FortiGate DoS policies and Cisco firewalls all offer a form of this, triggered at a SYN rate you set.
- Embryonic connection limits per server or per source.
- Upstream help when the flood is large enough to fill the link. SYN cookies protect state, not bandwidth.
Why spoofed sources
The attacker does not need the replies, spoofing hides it, and the SYN-ACKs land on innocent hosts as backscatter. Ingress filtering (BCP 38) at networks everywhere is what makes spoofing harder.
They will ask next
How can you tell a SYN flood from a busy server?
Many connections in SYN-RECV that never progress, mostly from addresses that never send anything else, and the kernel logging that it is sending cookies. A busy server has many ESTABLISHED connections instead.
What else attacks state besides SYN floods?
Full connection floods from real hosts (which pass SYN cookies), slow HTTP attacks that hold connections open, and floods aimed at a firewall's or load balancer's session table.
Traps
- Saying SYN cookies stop a DDoS. They protect the server's memory, not your internet link.
How did you do?Book 5.2 Reliable Byte Stream (TCP)Own pageHow would you protect a company's internet edge from a DDoS attack?
Say this first
First I classify the attack: volumetric floods, often reflection and amplification over UDP (DNS, NTP, CLDAP, memcached); state exhaustion attacks such as SYN floods aimed at firewalls and load balancers; or application-layer floods of HTTP requests. Anything bigger than my internet links must be stopped upstream, by the ISP or a cloud scrubbing service, with traffic diverted by BGP or DNS. Locally I protect state with SYN cookies and connection limits, protect the routers with CoPP, and drop reflection traffic that no service needs. As a last resort, remote triggered blackholing drops everything to the attacked address at the ISP to save the rest of the network.
Go deeper
Amplification in one paragraph
The attacker sends small requests with the victim's address as the source to open servers that send much larger replies. The victim receives the replies from thousands of legitimate servers. That is why open resolvers and exposed UDP services are a problem for everyone, not only their owners.
Upstream tools
- Scrubbing: always-on or on demand. On attack, the scrubbing provider announces your prefix (often a /24), cleans the traffic and returns it over a tunnel or direct link.
- RTBH: you tag the victim /32 to your ISP with the BLACKHOLE community 65535:666 (RFC 7999) or the ISP's own community, and the ISP drops it at its edge. The rest of your network survives; the victim address goes dark.
- BGP Flowspec (RFC 8955): pushes match and action rules, such as "drop UDP from source port 123 to 203.0.113.10", to routers that support it.
Local tools
- ACLs at the edge that drop well-known reflection source ports toward services that never need them.
- SYN cookies or SYN proxy, connection limits per source.
- CoPP so the routers keep their BGP sessions during the attack.
- CDN and anycast in front of public web services.
Do not be a source
BCP 38 (RFC 2827) ingress filtering so your customers and hosts cannot send spoofed sources, no open resolvers, no exposed amplifying services.
Runbook
Baseline traffic with NetFlow or sFlow, alert on deviations, keep ISP and scrubbing contacts and the agreed communities written down, and rehearse the diversion before you need it.
They will ask next
Why can't the firewall stop a 40 Gbps attack on a 10 Gbps link?
The link is full before packets reach the firewall. Whatever the firewall drops, legitimate traffic has already been lost upstream. Often the firewall's session table falls over first anyway.
What is BCP 38?
Ingress filtering: networks drop packets arriving from customers whose source address does not belong to that customer. Implemented with ACLs or uRPF at the customer edge. It stops spoofing at the source, which removes the fuel for reflection attacks.
Traps
- Answering "buy a bigger firewall". Volumetric attacks are solved upstream.
How did you do?Book 4.1 Global InternetOwn pageBeyond SSH, what do you harden on a router or switch?
Say this first
I think in planes. Management plane: AAA with TACACS+, management only from a dedicated network or VRF, SNMPv3 with authentication and privacy instead of community strings, authenticated NTP, remote syslog, a login banner, and unused services off (HTTP server, Telnet, CDP and LLDP on untrusted edges). Control plane: routing protocol authentication, CoPP, and limits like BGP maximum-prefix. Data plane: ACLs and uRPF at the edges, no proxy ARP or ICMP redirects where they are not needed. Plus verified software images and config backups with change tracking.
Go deeper
Example lines
Cisco IOS no ip http server no ip http secure-server no ip source-route service tcp-keepalives-in service timestamps log datetime msec localtime show-timezone ! interface GigabitEthernet0/0/0 description ISP1 no ip proxy-arp no ip redirects no cdp enable no lldp transmit no lldp receive ! snmp-server group NETOPS v3 priv snmp-server user nms1 NETOPS v3 auth sha Auth-Pass-2026 priv aes 128 Priv-Pass-2026 ! ntp authentication-key 1 md5 Ntp-Key-2026 ntp authenticate ntp trusted-key 1 ntp server 10.99.0.10 key 1 ! logging host 10.99.0.20 logging trap informationalNewer releases offer stronger NTP and SNMP hash options; use them where both ends support them.
Why each matters
- CDP or LLDP on an internet or untrusted edge leaks model, software version and addresses.
- Time must be right for logs, certificates and correlation, and unauthenticated NTP can be spoofed.
- SNMPv2c communities travel in clear and often give read access to the whole config.
- Proxy ARP hides addressing mistakes and helps an attacker reach things through the router.
- Remote syslog keeps evidence when a device is wiped or rebooted.
They will ask next
What is management plane protection on IOS?
Under
control-plane host,management-interface Gi0/0/1 allow ssh snmprestricts management protocols to the listed interfaces, so SSH arriving on any other interface is dropped.How do you know a device's image has not been tampered with?
Check the image hash against the vendor's published value (
verify /md5 flash:<image>or a SHA variant), and use platforms with secure boot that verify signed images at startup.
Traps
- Answering only "disable Telnet". Hardening is a checklist across management, control and data planes.
How did you do?Book 8.5 Example SystemsOwn pageWhat is zero trust, and how does it change network design?
Say this first
Zero trust drops the idea that being on the internal network makes you trusted. Every request to a resource is authenticated and authorized on its own, using user identity, device health and context, with least privilege, and the design assumes an attacker is already inside. In the network that means identity-based access (802.1X and NAC), microsegmentation so workloads reach only what they need, ZTNA brokers that give users access to one application instead of a full tunnel onto the LAN, encryption everywhere, and continuous monitoring. NIST SP 800-207 is the usual reference.
Go deeper
The parts, in NIST terms
- Policy engine: decides whether a request is allowed, using identity, device posture, threat data.
- Policy administrator: sets up or tears down the session based on that decision.
- Policy enforcement point: the gateway, proxy, agent or firewall that lets the traffic through.
VPN versus ZTNA
Classic remote access VPN ZTNA What the user gets an IP on the network, many subnets reachable access to named applications only Exposure VPN gateway listens on the internet apps are hidden; connectors dial out to a broker Decision once at login every session, with device posture Where to start
- Inventory users, devices, applications and flows.
- Strong identity: SSO with MFA everywhere.
- Device trust: managed devices, posture checks.
- Segment the crown jewels first, with group-based policy (TrustSec SGTs, cloud security groups, host firewalls) rather than IP-only rules.
- Replace broad VPN access for contractors and third parties with per-application access.
- Log every decision and watch for anomalies.
They will ask next
Is zero trust a product you can buy?
No. It is an architecture. Vendors sell parts of it, such as ZTNA brokers, NAC and segmentation tools, but the policy model and the inventory are work you have to do.
Does zero trust mean no more firewalls?
No. Firewalls become enforcement points among many, closer to the workloads. The change is that their rules are based on identity and context, not on "inside is trusted".
Traps
- Saying zero trust means "trust no one, block everything". It means verify explicitly, then allow the minimum.
How did you do?Book 8.1 Trust and ThreatsOwn page
Expert6
Write one ACL line that matches only the odd-numbered /24 subnets in 10.1.0.0/16. How does it work?
Say this first
10.1.1.0 0.0.254.255. The third octet of the wildcard is 254, which is11111110in binary, so only the lowest bit of the third octet is checked, and the base address says that bit must be 1. Every odd third octet (1, 3, 5 up to 255) matches and every even one fails. Wildcard bits do not have to be contiguous, which is what makes this possible in one line.Go deeper
The method
- Write the values you want to match in binary.
- Bits that are the same in all of them: wildcard 0, and copy that bit into the base address.
- Bits that differ: wildcard 1.
- Check the result: the line matches every combination of the "1" bits. If your set is not every combination, you will match extra subnets and need more than one line.
Worked examples
Goal Line Why Odd /24s in 10.1.0.0/16 10.1.1.0 0.0.254.255only bit value 1 of octet 3 checked, must be 1 Even hosts in 192.168.1.0/24 192.168.1.0 0.0.0.254last bit must be 0: .0, .2, up to .254 192.168.4.0/24 and 192.168.6.0/24 192.168.4.0 0.0.2.2554 = 00000100, 6 = 00000110, only bit value 2 differs 10.1.1.0, .3.0, .5.0, .7.0 (/24s) 10.1.1.0 0.0.6.2551, 3, 5, 7 = 00000xx1: bit values 2 and 4 vary VLAN 50 at every site, plan 10.site.vlan.0/24 10.0.50.0 0.255.0.255second octet ignored, third must be 50 The last one is the real-world use: when the addressing plan encodes site and function in fixed octets, one line matches "the voice subnet at every site" for QoS, PBR or a security policy.
Where it breaks
Subnets 1, 3 and 5 only cannot be one line, because the varying bits also produce 7. Non-contiguous wildcards are an IOS ACL feature: prefix lists, ASA ACLs and cloud security groups only take contiguous prefixes. Always add a
remarkline, because the next engineer will not decode0.0.6.255at a glance.They will ask next
Why can't a prefix list do this?
A prefix list matches a network and a prefix length, which is always a contiguous run of fixed leading bits. It cannot say "ignore the second octet but check the third".
Does IOS store the address exactly as you typed it?
IOS clears the bits that the wildcard ignores, so if you type a host address with a subnet wildcard, the line is shown with the network address. Check
show access-listsafter entering clever wildcards to see what was really stored.
Traps
- Assuming any set of subnets fits in one line. Test every combination of the wildcard's 1 bits.
How did you do?Book 3.3 Internet (IP)Own pageYour stateful firewalls drop traffic when routing becomes asymmetric. Why, and how do you design around it?
Say this first
A stateful firewall only accepts packets that belong to a session it saw being created. If the SYN leaves through FW1 and the SYN-ACK comes back through FW2, FW2 has no session and drops it as out of state. The fix is either symmetric routing, so both directions of a flow cross the same firewall, or a cluster that shares state and forwards asymmetric packets to the member that owns the session. Turning off state checks is a last resort for specific flows only.
Go deeper
How it happens
Two internet edges, each with its own firewall. Inside, the gateway (HSRP) is active on side A, so traffic leaves via FW1. On the outside, ISP B advertises your prefix with a better path, so replies come back via FW2.
What it looks like on a Cisco ASA or Secure Firewall:
Output %ASA-6-106015: Deny TCP (no connection) from 192.0.2.80/443 to 10.10.10.51/51544 flags SYN ACK on interface outsideOn PAN-OS the global counters show non-SYN TCP packets dropped for having no session, for example
flow_tcp_non_syn_drop.Design options
- Make routing symmetric. Align the inside gateway with the outbound path, steer inbound with BGP (AS path prepending, more specific prefixes on the preferred link), or run the pair active/standby so only one path is live.
- Share state. Clustered or active/active firewalls synchronize sessions and redirect a packet that arrives at the wrong member over a cluster link to the session owner. This needs low-latency links between members and adds complexity.
- Place the firewall where paths converge, for example behind both edge routers instead of one per edge.
- Bypass state checks for named flows, for example ASA TCP state bypass. You lose inspection for those flows, so keep it narrow and documented.
NAT makes symmetry even more important: the return packet must hit the same device that holds the translation.
They will ask next
How would you prove asymmetry is the cause?
Capture on both firewalls for one flow. FW1 shows the SYN going out and nothing coming back, FW2 logs a no-connection deny for the SYN-ACK. Then compare the routing tables and BGP paths in each direction, and run traceroutes from both ends.
Does asymmetric routing hurt networks without firewalls?
Plain routers do not care. Anything stateful does: NAT, IPS, load balancers, and strict uRPF, which drops packets that arrive on an interface that is not the best path back to the source.
Traps
- Disabling TCP state checking globally to "fix" the drops. That turns the firewall into a router with ACLs.
How did you do?Book 8.5 Example SystemsOwn pageHow would you roll out 802.1X across a large campus without causing an outage?
Say this first
In phases. First monitor mode: the port runs 802.1X and MAB but lets all traffic through whatever the result, so I collect who passes and who fails without hurting anyone. Then low-impact mode: still open, but a pre-authentication port ACL allows only DHCP, DNS and boot services until a downloadable ACL from the server opens the rest. Closed mode only for areas that need it. Along the way I pick the right host mode, plan for RADIUS being unreachable with a critical VLAN, and enable change of authorization so the server can change a session's policy at any time.
Go deeper
The three phases
Mode Before or without auth After success Use Monitor everything (open authentication) everything, now logged discovery, fix supplicants, build MAB lists Low impact only what the pre-auth ACL allows dACL from the server most of the campus Closed EAPOL only VLAN or dACL from the server high-security areas Cisco IOS interface GigabitEthernet1/0/10 ip access-group PRE-AUTH in authentication open authentication host-mode multi-auth authentication order dot1x mab authentication port-control auto mab dot1x pae authenticatorA downloadable ACL written with source
anygets the client's own IP substituted, which needs the switch's IP device tracking to know that IP.Host modes
- single-host: one MAC per port, a second MAC is a violation.
- multi-host: the first MAC authenticates and the port opens for everyone behind it. Weak.
- multi-domain: one data device plus one voice device, the phone identified by the Cisco AV pair
device-traffic-class=voice. - multi-auth: every MAC authenticates on its own; one voice device plus many data devices.
When RADIUS is unreachable
Cisco IOS interface GigabitEthernet1/0/10 authentication event server dead action authorize vlan 10 authentication event server alive action reinitializePlus
radius-server dead-criteriaanddeadtimeso the switch decides quickly that a server is down.Change of authorization
RADIUS CoA (RFC 5176) lets the server reauthenticate, bounce or end a session, which posture checks, profiling updates and quarantine all rely on. On the switch:
aaa server radius dynamic-authorwith the server as a client.On current IOS-XE the same features are expressed in the newer policy style (IBNS 2.0) with
access-sessioncommands and control policies, andauthentication convert-to new-stylemigrates.They will ask next
How do you keep Wake-on-LAN working on unauthorized ports?
authentication control-direction inblocks only traffic coming from the unauthorized client and still lets traffic out to it, so the magic packet reaches a sleeping PC.What do you watch during the monitor phase?
Failure reasons on the RADIUS server grouped by switch and by cause: missing supplicant settings, expired or untrusted certificates, unknown MACs. Do not move a closet to low impact until its failure list is empty or understood.
Traps
- Going straight to closed mode. The first failed printer becomes the whole project's reputation.
- Treating multi-host as secure. One authenticated device opens the port for everything behind it.
- Having no plan for a RADIUS outage, which turns a server problem into a campus outage.
How did you do?Book 8.4 Authentication ProtocolsOwn pageYou turn on DHCP snooping, DAI and IP Source Guard across a production access layer. What can go wrong, and how do you avoid it?
Say this first
Four classics. Clients stop getting leases because the access switch inserts option 82 with a zero gateway address and the upstream IOS relay or DHCP server drops it. Static-IP devices are cut off by DAI and IPSG because they have no binding. After a reload the binding table is empty and clients are blocked until they renew. And the 15 pps ARP limit err-disables ports that legitimately carry many hosts. The fixes are option 82 handling, static entries, the snooping database agent and rate tuning, rolled out in stages with snooping first and IPSG last.
Go deeper
Option 82
The access switch is a layer 2 device, not a relay, so when it adds option 82 (circuit ID with VLAN and port, remote ID with the switch MAC) the giaddr field stays 0.0.0.0. Cisco IOS relays and DHCP servers treat option 82 with a zero giaddr as invalid and drop it by default.
debug ip dhcp server packeton an IOS DHCP server showsDHCPD: inconsistent relay information.Three ways out:- Stop inserting it on the access switch:
no ip dhcp snooping information option. - Accept it on the IOS relay or server:
ip dhcp relay information trustedon the SVI, orip dhcp relay information trust-allglobally. - If an upstream switch also runs snooping and receives it on an untrusted port:
ip dhcp snooping information option allow-untrustedthere.
Static hosts
ARP ACLs for DAI (
arp access-listplusip arp inspection filter) andip source bindingfor IPSG. Keep the list in the source of truth, because a printer replaced with a new MAC breaks again.Persistence
Cisco IOS ip dhcp snooping database flash:dhcp-snooping.dbWithout it, a reload empties the table and DAI and IPSG block every client until it renews.
Rate limits
Raise
ip arp inspection limit rateon ports with many hosts, and seterrdisable recovery cause arp-inspectionanddhcp-rate-limitso one burst does not leave a port down until someone notices.Rollout order
- DHCP snooping only, uplinks trusted. Watch the binding table fill.
- Wait at least half a lease time so every active client has renewed through the switch.
- Add static entries for fixed-address hosts.
- DAI on a pilot VLAN, check the drop counters, then expand.
- IP Source Guard last.
They will ask next
How long until the binding table is complete?
Clients renew at half their lease time, and the unicast renewal ACK passes through the switch and creates the binding. So after half a lease period every active client is learned. With 8 day leases that is 4 days, which is why you shorten leases or force renewals before enabling DAI.
Is option 82 ever useful?
Yes. The DHCP server can see which switch and port a request came from, so it can apply per-port address policies, limit leases per port, and help locate devices.
Traps
- Enabling all three features across a campus in one night.
- Disabling snooping to fix option 82 drops, instead of fixing option 82 handling.
How did you do?Book 3.3 Internet (IP)Own page- Stop inserting it on the access switch:
What is unicast reverse path forwarding, and when do you use strict versus loose mode?
Say this first
uRPF drops packets whose source address fails a routing check, which stops spoofed traffic. Strict mode requires that the best route back to the source points out the same interface the packet arrived on. Loose mode only requires that some route to the source exists in the FIB, through any interface, and a route to Null0 counts as a failure. Strict fits single-homed edges, like customer or access links, where routing is symmetric. Loose fits multihomed and transit links, where asymmetric routing is normal, mainly to drop unroutable sources and to support source-based blackholing.
Go deeper
Configuration on IOS
Cisco IOS interface GigabitEthernet0/0/1 description Customer A, single-homed ip verify unicast source reachable-via rx ! interface GigabitEthernet0/0/0 description ISP1 transit ip verify unicast source reachable-via anyuRPF needs CEF. By default the default route does not count as a valid path;
allow-defaultchanges that. IPv6 usesipv6 verify unicast source reachable-via rx.Why strict breaks multihoming
With two ISPs, traffic from a given source can arrive on ISP2 while your best route back to that source is through ISP1. Strict mode drops it. Loose mode accepts it as long as any route exists.
Source-based RTBH
During an attack from known sources, a BGP trigger installs routes for those sources pointing to Null0 on every edge router. Loose uRPF then drops packets from those sources, because their only route is Null0. The same trick that blackholes destinations can blackhole sources.
Other platforms
Junos uses
rpf-checkon the logical interface (strict by default,mode looseavailable). Linux hasnet.ipv4.conf.<if>.rp_filter: 1 is strict, 2 is loose.They will ask next
How do you see uRPF drops on IOS?
show ip interface Gi0/0/1lists the uRPF mode and a count of verification drops, andshow ip traffichas a total for unicast RPF drops.Where else does uRPF logic appear?
Multicast routing uses the same RPF check on every packet to prevent loops, and Linux applies rp_filter to every interface, which surprises people running asymmetric routing on servers.
Traps
- Enabling strict uRPF on a transit or multihomed link and blackholing legitimate traffic.
How did you do?Book 4.1 Global InternetOwn pageWhat is control plane policing, and how would you build a CoPP policy?
Say this first
CoPP is a QoS policy applied to the traffic punted to the device's CPU: routing protocols, management, ARP, ICMP to the box, packets with IP options or an expiring TTL. Without it, a flood aimed at the router or a misbehaving neighbor can starve the CPU, and I lose routing adjacencies and management at the worst moment. I classify punted traffic into classes (critical routing, management, ICMP and monitoring, everything else), police each class to a rate that fits normal levels with headroom, and apply it with
service-policy inputundercontrol-plane.Go deeper
Example on an IOS-XE router
Cisco IOS ip access-list extended COPP-ROUTING permit tcp host 10.0.12.2 host 10.0.12.1 eq bgp permit tcp host 10.0.12.2 eq bgp host 10.0.12.1 permit ospf any any ip access-list extended COPP-MGMT permit tcp 10.99.0.0 0.0.0.255 any eq 22 permit udp 10.99.0.0 0.0.0.255 any eq snmp permit udp host 10.99.0.10 eq ntp any ip access-list extended COPP-ICMP permit icmp any any echo permit icmp any any echo-reply permit icmp any any ttl-exceeded permit icmp any any unreachable ! class-map match-all CM-COPP-ROUTING match access-group name COPP-ROUTING class-map match-all CM-COPP-MGMT match access-group name COPP-MGMT class-map match-all CM-COPP-ICMP match access-group name COPP-ICMP ! policy-map PM-COPP class CM-COPP-ROUTING police 2000000 conform-action transmit exceed-action transmit class CM-COPP-MGMT police 1000000 conform-action transmit exceed-action drop class CM-COPP-ICMP police 128000 conform-action transmit exceed-action drop class class-default police 256000 conform-action transmit exceed-action drop ! control-plane service-policy input PM-COPPThe routing class only measures (exceed is still transmitted), so a burst after a big BGP update is never dropped. Rates here are in bits per second.
Things that catch people
- In a CoPP class ACL,
permitmeans "belongs to this class" anddenymeans "try the next class". Nothing is dropped by the ACL itself. - ARP is not IP, so IP ACLs never match it. It falls into
class-defaultunless you add a class withmatch protocol arp. Police class-default too hard and ARP breaks. - Roll out with
exceed-action transmiteverywhere first, readshow policy-map control-plane, then set drops.
Platform notes
- Catalyst 9000 switches ship with a system CoPP policy (
system-cpp-policy) whose class rates you tune. - NX-OS applies a default CoPP profile (strict, moderate, lenient or dense) at setup.
- Junos does the same job with a firewall filter applied as input on the
lo0interface.
They will ask next
Does CoPP protect against a flood passing through the router?
No. Transit traffic is forwarded in hardware or CEF and never reaches the CPU. CoPP only sees what is punted. Transit floods need edge ACLs, uRPF or upstream mitigation.
How do you choose the rates?
Measure normal punt rates per class in monitor mode, then test the worst legitimate cases, like a full BGP table reload or an OSPF reconvergence, and set the policer above those peaks.
Traps
- Policing routing protocols so tightly that a reconvergence drops hellos and the network flaps.
- Reading deny lines in a CoPP ACL as "drop this traffic".
How did you do?Book 8.5 Example SystemsOwn page- In a CoPP class ACL,