Adhering to key principles that contribute to a successful network design can save value-added resellers (VARs) and systems integrators from making easily avoidable mistakes. This tip, reposted courtesy of SearchNetworking.com, outlines best practices for designing IP-based networks.
Many of the poorest network implementations that I've seen have ultimately arisen from the fact that fundamental network design principles were not observed. Here are some of those key principles:
- Application drives the design requirements. The network is the structure that facilitates the application. Without understanding the application characteristics and its requirements, the network cannot be designed.
- Network design requires experienced personnel. The network design engineer requires broad practical experience combined with a theoretical understanding of the technologies and how they relate to one another. Extensive practical experience should be thought of as a necessary prerequisite to a design role. You cannot design a network without a reasonable understanding of how its operates.
- Networks are designed in a lab rather than on paper. A lab is the single most important design tool. Given the complexity of the more advanced internetwork designs, a design is not valid until it has been verified in the lab. Network modeling software is also not to be trusted. Internetworking entails a multitude of complex technologies that must successfully interact with each other. The design of large or complex networks cannot be reliably modeled in my view. Such modeling is only appropriate for high-level design. When resolving specific technical detail, a lab is required.
- Network design usually involves a number of trade-offs. Cost versus performance and availability is usually the fundamental design trade-off.
- Don't try to mirror the corporate structure. The network design and topology can often mirror the corporate structure of the organization. While attempting to mirror this structure is not necessarily to be discouraged, the network designer should certainly never become enslaved by it. Such an approach can result in fundamentally flawed designs. Remember the design objectives are the only essential driving force behind the design.
- Vendor independence. Proprietary solutions are not to be encouraged but they should not be automatically avoided either. There are instances where dominant vendors can provide the best solution.
- Keep it simple. Unnecessary additional complexity is likely to increase the support cost and may make the network more difficult to manage. Also, each time a needlessly complex solution is employed it is possible that an additional piece of software is being used that may have bugs in it. The simplest viable solution should always be implemented. Increased complexity is only justifiable if there is a related benefit or requirement.
- Design every network on its own merits. Do not work to a set of rigid and possibly over-generalized design rules or templates. Consider every network on its own merits and avoid copying existing solutions simply because the networks appear similar.
- Avoid the bleeding edge. Only use mature and well-tested software and hardware for all devices on the network.
- The fundamental design plan must not be compromised. The design may have to show some degree of flexibility and evolve with the network. This relates to the requirement for a scalable design. However, it must not be compromised at a fundamental level. For example, if you are implementing a three-layered WAN hierarchy, do not compromise this by adding another layer. This comprises and invalidates the original design by either adding another layer or by 'mixing and matching' layers. If the original design is repeatedly compromised for the sake of 'quick fixes' then at some point the design becomes eroded into oblivion and there is no longer a network design in place. A network design is merely an academic exercise if it is not fully and precisely implemented as per the original design plan. No changes should be made to the original design without the endorsement of the engineers who formulated that design.
- Predictability is the hallmark of a good design. Predictability and consistency in performance, resilience and scalability are characteristics of a well-designed network.
- Design it once or design it a thousand times! If a network was not designed properly at the outset or if that design was compromised, then everyday tasks such as network troubleshooting and adding new devices to the network become design projects in themselves. This is because without a valid design that has been followed, basic network changes do not form part of any plan. Thus they must be treated as isolated projects. There is no predictability and the effect of any changes on the network must always be independently assessed if the design plan has been deviated from. This is what I call designing a network 'a thousand times'!
- Design requires a small capable team. No one person, no matter how skilled or experienced, should be the single and absolute authority in designing the network. Designing a network involves balancing priorities, performing trade-offs and addressing a broad range of technical issues at both a general and detailed level. People with different specialties and strengths are required in a design team. Some may focus on the general while others may be sticklers for the specific details.
IP network design: A learning guide
Learn more about the process of designing a predictable and consistent IP network with our Learning Guide.
About the author
Cormac Long is the author of IP Network Design and Cisco Internetworking and Troubleshooting.
This tip originally appeared on SearchNetworking.com.