Abstract Network design involves making decisions within constraints, balancing factors like cost, reliability, scalability, and simplicity. This document reviews essential design principles with a practical engineering focus, using a “Hierarchy of Needs” to ensure foundational aspects such as connectivity and integrity (reliability and security) are addressed before higher-level features like… Read more »
1. BGP Process & AS Number You to enable BGP and define your Autonomous System (AS) number, which identifies your routing domain globally. 2. Neighbor (Peer) Definitions You specify the IP address of each BGP peer and their AS number. This establishes whether the relationship is iBGP (same AS) or… Read more »
Traditional networking often relies on rigid taxonomies: hubs, switches, routers, etc., each with a static definition. However, this fails when encountering modern, multi-function devices that defy these categories. A more effective way to understand the functionality of various network devices is to shift the question from “What is this device?”… Read more »
Note: This article has been initially appeared on LinkedIn. I have been asked this question a lot lately by students who are confused about the terms. Perhaps, because the IT industry uses the terms interchangeably in many ways. I have been teaching Network Design for about 17 years and for… Read more »
Batfish is an open source network configuration validation and verification software. The article reviews and demonstrates some major features of the software by using it to analyze configuration files of three small networks.
Professionals in any discipline need a common language to convey messages and exchange ideas. This language may be in verbal, written, and/or visual form. Engineers, for example, use technical drawings to describe a product or a component. The purpose of these drawings is to convey all information necessary to fully… Read more »
Keep it simple, stupid (KISS) is a design principle that requires a system’s design to be as simple as possible. Complex design may be expensive to build and maintain. Also, unnecessary features or components increase the potential for failures. From a management perspective, network designs should be simple enough for… Read more »
Scalability is the measure of a system’s ability to increase or decrease in performance in response to changes in demands. For networks, this means change in the number of users, number of end nodes, the amount of bandwidth, or the demand on any service provided by the network. Networks need… Read more »
Redundancy is a primary tool to create resilience in communications networks. It eliminates the single point of failure by relying on the probability that it is rare that two network components fail at the same time. Redundancy can be classified into [Lidwell]: Diverse redundancy Diverse redundancy uses multiple components of… Read more »
Designers in many fields (architecture, software, and engineering, for example) rarely approach a design problem by re-inventing the wheel. Instead, designers topically apply design patterns. Design patterns are typical solutions to common problems in design. A pattern is a standard blueprint that can be used to solve a particular design… Read more »