A network engineer at a regional ISP is deciding whether to use discard or reject for a static route covering an aggregate summary block that includes some currently unassigned subscriber subnets. Silent discard risks packets vanishing without any diagnostic clue if a legitimate customer is accidentally caught in the summary. Which factor should most directly drive the choice between discard and reject here?
Select an answer to reveal the explanation.
Short Explanation
This decision really comes down to one question: do you want the sender to hear back, or do you want quiet? Reject trades a bit of extra ICMP chatter for clearer troubleshooting; discard trades that feedback away to keep things silent. Neither option is universally 'more correct' — it depends on what you're optimizing for.
Full Explanation
The choice between discard and reject hinges on a single tradeoff: whether generating an ICMP unreachable message back to the sender (reject) is worth the diagnostic value it provides, versus dropping silently with no extra traffic generated (discard). For a summary route that might briefly catch a legitimate subnet, reject's feedback can help someone notice and fix a misconfiguration faster, while discard would leave that traffic disappearing without any external clue. Whether the route appears in the routing table isn't in question — both discard and reject are static routes and both show up there identically; only their next-hop action differs. IPv4 versus IPv6 is irrelevant to this choice: both discard and reject exist for either address family, and the reasoning doesn't change based on protocol version. Whether the route is static or dynamically learned is also beside the point — discard and reject are specifically static-route next-hop options, not properties tied to how a route was learned versus configured elsewhere. A useful operational habit is documenting which choice was made and why, since the two produce very different symptoms during later troubleshooting: reject shows up as fast, explicit failures, while discard shows up as unexplained timeouts.