In general I've found that it comes down to making the best of what you've got (unless you're Google and simply commission your own hardware and build your very own private internet - coming to home near you soon...)
Based on that I've noted the following observations during my studies:
- Divide and Conquer! - Large flat networks are generally a bad idea, they propagate all the broadcast/multicast traffic to all hosts, make poor use of available network resourse (bandwidth, increase work on routers/firewalls etc), are difficult to scale, increase the impact of a network event across the environment. Where possible segment it. For example:
- OSPF - Make use of backbone routers in Area 0 and then use different areas to limit the propagation of Link State Advertisiements. In doing this you reduce the amount bandwidth used up by the OSPF process, you reduce the about of processing load on the routers within each area and the LSA's are limited to each area (reducing the content of the Routing Table). Originate the Default Route from Area 0 and where possible make use of Stub, Totally Stubby and Not-So-Stubby-Areas to reduce LSA/Route propagation.
- Campus Design - Make good use of Hierarchical designs with a Core, Distribution/ Aggregation, Access Layers. These scale well, limits broadcast domains and make troubleshooting more logical
- IP Address Assignment - Use contiguous networks and avoid any discontiguous subnets. Contiguous subnets makes address assignment easier (more efficient allocation of address space), troubleshooting easier, you can trace through the network easier, allows for efficient route summarisation and redistribution.
- Summarise it! - Expanding on the previous point, when advertising routes, where possible advertise summary routes for destinations in a given area/zone. By advertising a summarised route you are reducing the size of routing tables on upstream routers and you then limit the impact of route flaps within the network. If a single link goes down then a route that is advertised as a /30 would need removing from all routers that have a route for this network. If the failed link falls under a /24 route then the upstream routers don't observe the link flap and do not have to re-calculate the shortest path which inturn means that resources on upstream routers are not utlised unneccesarily.
- Keep It Simple! - At the dead of night that on call network engineer will not thank you for building that convoluted network that makes use of lesser know commands just because it's fancy. Always consider how difficult troubleshooting the proposed solution will be and keep it simple. For example:
- Avoid OSPF virtual links - an network outage in the transit area could cut off the remote area to area 0
- Keep access lists consistent - Agree on a naming convention for access lists, object-groups, hosts. Agree on how an access list will be named and how it will be constructed and stick to it. Being consistent will make for a cleaner running-config and will make reading it easier which in turn should make troubleshooting easier
Now, the point of the rules above is to apply each rule as measure of how to approach exam questions. For any given question can the rules above be applied and the correct answer revealed? (Of course you should know your stuff when it comes to sitting an exam but sometimes you get blind sided by a badly worded question)
Remember to be methodical and ultimately consider What Would Cisco Do...?