Networking Basics - How Data Actually Moves Around¶

Listen up
This isn't another boring networking tutorial where some instructor drones on about theoretical concepts you'll never use
This is comprehensive networking knowledge from absolute basics to CCNP-level content , all focused on Linux because that's what actually matters in the real world
By the end of this guide you'll understand networking better than most people with certifications , and you'll actually be able to apply it
No fluff , no bullshit , just pure networking knowledge
Let's get started
Table of Contents¶
Networking Fundamentals¶
- Why Networking Actually Matters
- What is a Network
- Network Types and Topologies
- Network Components
- How Data Travels
The OSI and TCP/IP Models¶
- Understanding the OSI Model
- Layer 1 Physical Layer
- Layer 2 Data Link Layer
- Layer 3 Network Layer
- Layer 4 Transport Layer
- Layer 5 Session Layer
- Layer 6 Presentation Layer
- Layer 7 Application Layer
- TCP/IP Model
- Encapsulation and Decapsulation
Physical Layer Deep Dive¶
- Cables and Connectors
- Ethernet Standards
- Fiber Optics
- Wireless Technologies
- 802.11 WiFi Deep Dive
- CSMA/CA Explained
- WiFi Security Deep Dive
Data Link Layer Mastery¶
- MAC Addresses
- Ethernet Frames
- ARP Protocol
- Switches and Switching
- VLANs
- VLAN Trunking
- Spanning Tree Protocol
- EtherChannel and Link Aggregation
Network Layer Expertise¶
- IP Addressing Fundamentals
- IPv4 Address Classes
- Subnetting
- VLSM and CIDR
- IPv6 Addressing
- ICMP Protocol Deep Dive
- How Ping Actually Works
- How Traceroute Actually Works
- IP Routing Basics
- Static Routing
- Dynamic Routing Protocols
- RIP Protocol
- OSPF Protocol
- EIGRP Protocol
- BGP Protocol
- Route Redistribution
- Policy Based Routing
Transport Layer Mastery¶
- TCP Protocol Deep Dive
- TCP Three Way Handshake
- TCP Flow Control
- TCP Congestion Control
- UDP Protocol
- Port Numbers
Network Services¶
Application Layer Protocols¶
Network Security¶
- Access Control Lists
- Firewalls
- VPN Technologies
- IPSec
- SSL and TLS
- Network Segmentation
- Port Security
- DHCP Snooping
- Dynamic ARP Inspection
- IP Source Guard
Quality of Service¶
Advanced Topics¶
- Multicast
- IPv6 Transition Mechanisms
- SDN and Network Programmability
- Network Automation
- High Availability
Linux Networking¶
- Linux Network Configuration
- Network Interfaces
- IP Configuration
- Routing Configuration
- Bridge Configuration
- VLAN Configuration on Linux
- Bonding and Teaming
- iptables and nftables
- Network Namespaces
Network Tools and Troubleshooting¶
Network Design and Architecture¶
Real World Scenarios¶
Network Forensics¶
Network Programming and Scripting¶
- Python Network Programming
- Network Scanning with Python
- Bash Network Scripting
- Network Automation with Python
Network Security in Active Directory¶
- AD Network Architecture
- Kerberos Authentication over Networks
- LDAP and Network Security
- Group Policy and Network Policies
- AD Enumeration and Network Discovery
Cryptography in Network Security¶
Advanced Network Troubleshooting¶
Network Compliance and Standards¶
Emerging Network Technologies¶
Network Career Paths¶
Practice Labs and Exercises¶
Network Security Best Practices¶
- Defense in Depth Implementation
- Secure Network Design Principles
- Incident Response for Networks
- Continuous Network Monitoring
Advanced Network Concepts¶
Network Performance Analysis¶
Ethical and Legal Considerations¶
Future of Network Security¶
Final Thoughts¶
Networking Fundamentals¶
Why Networking Actually Matters¶
Every security professional who doesn't understand networking is a fraud waiting to be exposed
I don't care if you have OSCP , CEH , or whatever alphabet soup certification you bought , if you can't explain how a packet travels from your machine to a server , you're useless in real security work
Here's what happens when you skip networking:
You run nmap and have no idea what it's actually doing , you're just a script kiddie with a certification
You can't read packet captures during incident response , making you completely useless in a SOC
You don't understand how your exploits work , so when they fail you're stuck asking for help on Discord like a noob
You can't troubleshoot network issues , which means you'll blame "the network" for everything
You have zero understanding of how defenders detect your activities , so you get caught immediately
What networking knowledge actually gives you:
Understanding of how attacks traverse networks at the packet level
Ability to analyze network traffic and reconstruct attack timelines
Knowledge of how to evade detection by understanding what defenders look for
Capability to troubleshoot when things break instead of giving up
Credibility in interviews and real work environments
The brutal reality:
I've seen people with multiple security certifications who can't explain the difference between a switch and a router
I've met "pentesters" who don't understand subnetting
I've worked with "security analysts" who think DNS is magic
Don't be them
What is a Network¶
A network is devices talking to each other , that's it
But the how , why , and what makes it interesting
Basic Definition:
A network is two or more devices connected together to share resources , data , or services
What networks enable:
Resource sharing (printers , files , internet connection) Communication (email , messaging , video calls) Data transfer (file sharing , backups , synchronization) Service access (web servers , databases , applications)
Network Scale:
Two computers with an Ethernet cable , that's a network
Your home with router , laptop , phone , smart TV , that's a network
An enterprise with thousands of devices across multiple buildings , that's a network
The entire internet connecting billions of devices , that's a network
The key point:
All networks , regardless of size , operate on the same fundamental principles
Understanding these principles lets you work with any network
Network Types and Topologies¶
Networks are categorized by size and how devices connect
Network Types by Size:
PAN (Personal Area Network): - Range: Few meters - Examples: Bluetooth headphones , phone to smartwatch - Technology: Bluetooth , USB , infrared
LAN (Local Area Network): - Range: Single building or campus - Examples: Home network , office network - Technology: Ethernet , WiFi - Characteristics: High speed , low latency , single ownership
MAN (Metropolitan Area Network): - Range: City or large campus - Examples: University network , city WiFi - Technology: Fiber optics , wireless - Characteristics: Larger than LAN , smaller than WAN
WAN (Wide Area Network): - Range: Countries , continents , global - Examples: Internet , corporate networks connecting offices - Technology: Leased lines , MPLS , internet - Characteristics: Lower speed , higher latency , multiple owners
Network Topologies:
Bus Topology:
Device -- Device -- Device -- Device
|
Single cable
Star Topology:
Device
|
Device-Switch-Device
|
Device
Ring Topology:
Device -> Device
^ |
| v
Device <- Device
Mesh Topology:
Device ---- Device
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
Device ---- Device
Hybrid Topology:
Combination of topologies , most real networks are hybrid , star topology at access layer , mesh at core
The reality:
Modern networks mostly use star topology with switches at the center , understanding topology helps you understand traffic flow and potential failure points

Network Components¶
Every network needs specific components to function
End Devices (Hosts):
Computers , servers , phones , tablets , IoT devices , anything that generates or consumes data
Intermediary Devices:
Switches: - Operate at Layer 2 - Forward frames based on MAC addresses - Connect devices in same network - Create collision domains
Routers: - Operate at Layer 3 - Forward packets based on IP addresses - Connect different networks - Make routing decisions
Firewalls: - Filter traffic based on rules - Can operate at multiple layers - Protect networks from threats - Control access
Access Points: - Provide wireless connectivity - Bridge between wired and wireless - Manage wireless clients
Load Balancers: - Distribute traffic across multiple servers - Improve performance and availability - Can operate at Layer 4 or Layer 7
Network Media:
Copper Cables: - Twisted pair (Cat5e , Cat6 , Cat6a) - Coaxial (mostly obsolete) - Electrical signals - Susceptible to interference
Fiber Optic: - Single-mode (long distance) - Multi-mode (short distance) - Light signals - Immune to electromagnetic interference
Wireless: - Radio waves (WiFi , cellular) - Infrared (obsolete) - Microwave (point-to-point links)
The reality:
Understanding what each component does and where it fits helps you design , troubleshoot , and attack networks
How Data Travels¶
Data doesn't magically teleport across networks
The Journey:
- Application creates data (like HTTP request)
- Data gets broken into smaller pieces
- Each piece gets wrapped in headers (like Russian nesting dolls)
- Packets travel through network devices
- Each device reads relevant headers and forwards
- Destination receives packets
- Headers get stripped off
- Data gets reassembled
- Application receives data
Encapsulation Process:
Application Data
|
v
[Transport Header | Data] <- Segment/Datagram
|
v
[Network Header | Transport Header | Data] <- Packet
|
v
[Data Link Header | Network Header | Transport Header | Data | Trailer] <- Frame
|
v
Bits on wire
Example: Loading a webpage:
1. Browser creates HTTP GET request
2. TCP adds port numbers and sequence numbers
3. IP adds source and destination IP addresses
4. Ethernet adds source and destination MAC addresses
5. Frame travels to switch
6. Switch reads MAC address and forwards
7. Frame reaches router
8. Router strips Ethernet header
9. Router reads IP address
10. Router adds new Ethernet header for next hop
11. Process repeats until reaching destination
12. Destination strips all headers
13. Browser receives HTTP response
Key Concepts:
Each layer adds its own header , each layer only reads its own header , headers get added going down the stack , headers get removed going up the stack
The reality:
Understanding encapsulation is crucial for packet analysis and troubleshooting

The OSI and TCP/IP Models¶
Understanding the OSI Model¶
The OSI (Open Systems Interconnection) model is a conceptual framework for understanding networks
Yes it's theoretical , yes it's old , and yes you absolutely need to know it
Why OSI Matters:
Troubleshooting becomes systematic (check each layer from bottom to top) Communication with other professionals uses OSI terminology Understanding protocols becomes easier (categorize by layer) Interview questions will ask about it
The Seven Layers:
7. Application - What users see
6. Presentation - Data formatting
5. Session - Connection management
4. Transport - End-to-end delivery
3. Network - Routing between networks
2. Data Link - Local network communication
1. Physical - Actual transmission medium
Mnemonic:
"All People Seem To Need Data Processing" (top to bottom) "Please Do Not Throw Sausage Pizza Away" (bottom to top)
Layer Interaction:
Each layer provides services to layer above , each layer uses services from layer below , peer layers communicate using protocols
The reality:
OSI is a model , not reality , real protocols don't perfectly fit OSI layers , but the model is still useful for understanding and troubleshooting
Layer 1 Physical Layer¶
The physical layer is where bits become actual signals
Responsibilities:
Convert bits to electrical , optical , or radio signals , define physical characteristics (voltage levels , frequencies) , specify cable types and connectors , handle bit timing and synchronization
Physical Media:
Copper Cables:
Twisted Pair Ethernet: - Cat5e: 1 Gbps up to 100m - Cat6: 1 Gbps up to 100m , 10 Gbps up to 55m - Cat6a: 10 Gbps up to 100m - Cat7: 10 Gbps up to 100m , better shielding
Coaxial: - RG-6: Cable TV and internet - RG-59: Older standard - Mostly obsolete for networking
Fiber Optic:
Single-Mode Fiber (SMF): - Long distance (up to 100km+) - Laser light source - Small core (9 microns) - Expensive
Multi-Mode Fiber (MMF): - Short distance (up to 2km) - LED light source - Larger core (50 or 62.5 microns) - Cheaper
Wireless:
WiFi (802.11): - 2.4 GHz band (longer range , more interference) - 5 GHz band (shorter range , less interference) - 6 GHz band (WiFi 6E , cleanest spectrum)
Connectors:
RJ-45: Ethernet twisted pair LC: Fiber optic (most common) SC: Fiber optic (older) ST: Fiber optic (oldest)
Ethernet Cable Types:
Straight-through: Connect different device types (PC to switch) Crossover: Connect same device types (PC to PC , switch to switch) Rollover: Console cable for device configuration
Modern devices have Auto-MDIX so cable type doesn't matter
Common Layer 1 Issues:
Cable unplugged or damaged , wrong cable type , distance too long , electromagnetic interference , faulty network card , port disabled
Troubleshooting Layer 1:
# Check link status
ip link show eth0
# Check for errors
ip -s link show eth0
# Check cable with ethtool
ethtool eth0
# Look for:
# - Link detected: yes/no
# - Speed: 1000Mb/s
# - Duplex: Full
The reality:
Layer 1 problems are the worst because they're physical , always check Layer 1 first when troubleshooting

Layer 2 Data Link Layer¶
Layer 2 handles communication between devices on the same network segment
Responsibilities:
Frame data for transmission , provide MAC addressing , detect errors , control access to physical medium
Sublayers:
LLC (Logical Link Control): Interface to Layer 3 MAC (Media Access Control): Interface to Layer 1
MAC Addresses:
48-bit (6 bytes) hardware address , written as 12 hex digits , format: AA:BB:CC:DD:EE:FF
First 24 bits (OUI): Manufacturer identifier Last 24 bits: Device identifier
Special MAC Addresses:
FF:FF:FF:FF:FF:FF: Broadcast (all devices) 01:00:5E:xx:xx:xx: IPv4 multicast 33:33:xx:xx:xx:xx: IPv6 multicast Locally administered: Second hex digit is 2 , 6 , A , or E
Ethernet Frame Structure:
Preamble (7 bytes): 10101010... (synchronization)
SFD (1 byte): 10101011 (start frame delimiter)
Destination MAC (6 bytes): Where's this going
Source MAC (6 bytes): Where's this from
Type/Length (2 bytes): Protocol type or frame length
Payload (46-1500 bytes): Actual data
FCS (4 bytes): Frame check sequence (CRC)
EtherType Values:
0x0800: IPv4 0x0806: ARP 0x86DD: IPv6 0x8100: 802.1Q VLAN tag
Frame Size:
Minimum: 64 bytes (including FCS) Maximum: 1518 bytes (standard) Jumbo frames: Up to 9000 bytes (not standard)
The reality:
Layer 2 is your local network , understanding frames and MAC addresses is crucial for local network attacks and defenses
Layer 3 Network Layer¶
Layer 3 handles routing between different networks
Responsibilities:
Logical addressing (IP addresses) , routing (path determination) , packet forwarding , fragmentation and reassembly
IPv4 Header:
Version (4 bits): 4 for IPv4
IHL (4 bits): Header length (minimum 5)
DSCP (6 bits): QoS marking
ECN (2 bits): Congestion notification
Total Length (16 bits): Entire packet size
Identification (16 bits): Fragment ID
Flags (3 bits): DF (Don't Fragment) , MF (More Fragments)
Fragment Offset (13 bits): Fragment position
TTL (8 bits): Time to live (hop count)
Protocol (8 bits): Upper layer (6=TCP , 17=UDP , 1=ICMP)
Header Checksum (16 bits): Error detection
Source IP (32 bits): Sender address
Destination IP (32 bits): Receiver address
Options (variable): Rarely used
TTL (Time To Live):
Prevents routing loops , decremented by each router , packet dropped when TTL = 0
Default TTL values: - Linux: 64 - Windows: 128 - Cisco routers: 255
IP Fragmentation:
Occurs when packet exceeds MTU , all fragments have same ID , MF flag set except last fragment , fragment offset indicates position
ICMP (Internet Control Message Protocol):
Error reporting and diagnostics , used by ping and traceroute
Common types: - Type 0: Echo Reply - Type 3: Destination Unreachable - Type 5: Redirect - Type 8: Echo Request - Type 11: Time Exceeded
The reality:
Layer 3 is where routing happens , understanding IP addressing and routing is fundamental

Layer 4 Transport Layer¶
Layer 4 ensures data gets from source to destination
Responsibilities:
Segmentation and reassembly , port addressing , connection management , flow control , error recovery
TCP (Transmission Control Protocol):
Connection-oriented , reliable delivery , ordered delivery , flow control , congestion control
TCP Header:
Source Port (16 bits)
Destination Port (16 bits)
Sequence Number (32 bits)
Acknowledgment Number (32 bits)
Data Offset (4 bits)
Reserved (3 bits)
Flags (9 bits): NS CWR ECE URG ACK PSH RST SYN FIN
Window Size (16 bits)
Checksum (16 bits)
Urgent Pointer (16 bits)
Options (variable)
TCP Flags:
SYN: Synchronize (start connection) ACK: Acknowledge FIN: Finish (close connection) RST: Reset (abort connection) PSH: Push (send immediately) URG: Urgent data
UDP (User Datagram Protocol):
Connectionless , unreliable , no ordering , no flow control , minimal overhead
UDP Header:
Source Port (16 bits)
Destination Port (16 bits)
Length (16 bits)
Checksum (16 bits)
Port Numbers:
Well-known ports: 0-1023 (require root) Registered ports: 1024-49151 Dynamic/ephemeral ports: 49152-65535
Common Ports:
20/21: FTP 22: SSH 23: Telnet 25: SMTP 53: DNS 80: HTTP 110: POP3 143: IMAP 443: HTTPS 3306: MySQL 3389: RDP 5432: PostgreSQL
The reality:
Understanding TCP vs UDP and port numbers is crucial for both security and troubleshooting
Layer 5 Session Layer¶
Layer 5 manages sessions between applications
Responsibilities:
Establish sessions , maintain sessions , terminate sessions , synchronization , dialog control
Examples:
NetBIOS , RPC , PPTP
The reality:
Layer 5 is often combined with Layers 6 and 7 in real implementations , don't stress about it too much
Layer 6 Presentation Layer¶
Layer 6 handles data formatting and encryption
Responsibilities:
Data translation , encryption/decryption , compression , character encoding
Examples:
SSL/TLS , JPEG , GIF , MPEG , ASCII , EBCDIC
The reality:
Like Layer 5 , often combined with Layer 7 in practice
Layer 7 Application Layer¶
Layer 7 is what users actually interact with
Responsibilities:
Network services to applications , user interface , application protocols
Common Protocols:
HTTP/HTTPS: Web FTP/SFTP: File transfer SMTP/POP3/IMAP: Email DNS: Name resolution SSH: Secure remote access SNMP: Network management Telnet: Insecure remote access
The reality:
Most security work happens at Layer 7 , understanding application protocols is crucial
TCP/IP Model¶
The TCP/IP model is what the internet actually uses
Four Layers:
Application (OSI 5,6,7)
Transport (OSI 4)
Internet (OSI 3)
Network Access (OSI 1,2)
Why TCP/IP over OSI:
TCP/IP is practical and matches real protocols , OSI is theoretical and good for learning
The reality:
Know both models , use OSI for discussion and troubleshooting , understand TCP/IP because that's what actually runs
Encapsulation and Decapsulation¶
Encapsulation (sending data):
Application: Data
Transport: [TCP/UDP Header | Data] = Segment/Datagram
Network: [IP Header | Segment] = Packet
Data Link: [Ethernet Header | Packet | Trailer] = Frame
Physical: Bits
Decapsulation (receiving data):
Physical: Bits
Data Link: Strip Ethernet header/trailer
Network: Strip IP header
Transport: Strip TCP/UDP header
Application: Data
The reality:
Understanding encapsulation is crucial for packet analysis

Physical Layer Deep Dive¶
Cables and Connectors¶
Physical cabling is where everything starts
Twisted Pair Cabling:
UTP (Unshielded Twisted Pair): - Most common - Four pairs of twisted wires - Categories: Cat5e , Cat6 , Cat6a , Cat7
STP (Shielded Twisted Pair): - Shielding reduces interference - More expensive - Used in high-interference environments
Cable Categories:
Cat5e: - 1000 Mbps (1 Gbps) - 100 meters max - Minimum for modern networks
Cat6: - 1 Gbps up to 100m - 10 Gbps up to 55m - Better crosstalk protection
Cat6a: - 10 Gbps up to 100m - Thicker and less flexible - Recommended for new installations
Cat7: - 10 Gbps up to 100m - Fully shielded - Requires special connectors
Wiring Standards:
T568A and T568B are the two standards
T568B is more common in the US
T568B Pinout:
Pin 1: White/Orange
Pin 2: Orange
Pin 3: White/Green
Pin 4: Blue
Pin 5: White/Blue
Pin 6: Green
Pin 7: White/Brown
Pin 8: Brown
Cable Types:
Straight-through: Both ends same standard (T568B to T568B) - Use: PC to switch , router to switch
Crossover: One end T568A , other T568B - Use: PC to PC , switch to switch (old devices) - Modern devices have Auto-MDIX so this doesn't matter
Rollover: Pin 1 to Pin 8 , Pin 2 to Pin 7 , etc - Use: Console cable for device configuration
Testing Cables:
# Check cable with ethtool
ethtool eth0
# Look for:
# Speed: 1000Mb/s
# Duplex: Full
# Link detected: yes
# Check for errors
ip -s link show eth0
# Look for errors , dropped packets
The reality:
Bad cables cause mysterious intermittent issues , always suspect cables first when troubleshooting weird problems
Ethernet Standards¶
Ethernet has evolved significantly over the years
IEEE 802.3 Standards:
10BASE-T: - 10 Mbps - Cat3 cable - 100m max - Obsolete
100BASE-TX (Fast Ethernet): - 100 Mbps - Cat5 cable - 100m max - Still common
1000BASE-T (Gigabit Ethernet): - 1000 Mbps (1 Gbps) - Cat5e or better - 100m max - Current standard
10GBASE-T (10 Gigabit Ethernet): - 10 Gbps - Cat6a or better - 100m max - Becoming common
Fiber Ethernet:
100BASE-FX: - 100 Mbps - Multi-mode fiber - 2km max
1000BASE-SX: - 1 Gbps - Multi-mode fiber - 550m max
1000BASE-LX: - 1 Gbps - Single-mode fiber - 10km max
10GBASE-SR: - 10 Gbps - Multi-mode fiber - 400m max
10GBASE-LR: - 10 Gbps - Single-mode fiber - 10km max
The reality:
Gigabit Ethernet is the minimum for modern networks , 10 Gigabit is becoming standard in data centers
Fiber Optics¶
Fiber optic cables use light instead of electricity
How Fiber Works:
Light travels through glass or plastic core , total internal reflection keeps light in core , much faster than copper , immune to electromagnetic interference
Fiber Types:
Single-Mode Fiber (SMF): - Small core (9 microns) - Laser light source - Long distance (100km+) - Expensive - Yellow jacket
Multi-Mode Fiber (MMF): - Larger core (50 or 62.5 microns) - LED light source - Short distance (2km max) - Cheaper - Orange or aqua jacket
Fiber Connectors:
LC (Lucent Connector): - Small form factor - Most common - Push-pull mechanism
SC (Subscriber Connector): - Larger - Push-pull mechanism - Older standard
ST (Straight Tip): - Bayonet mount - Twist-lock - Oldest , mostly obsolete
Fiber Advantages:
No electromagnetic interference , higher bandwidth , longer distances , more secure (hard to tap) , lighter weight
Fiber Disadvantages:
More expensive , more fragile , requires special equipment , harder to terminate
The reality:
Fiber is the future , all long-distance and high-speed connections use fiber

Wireless Technologies¶
Wireless uses radio waves instead of cables
WiFi Standards (802.11):
802.11b: - 11 Mbps - 2.4 GHz - Ancient , don't use
802.11g: - 54 Mbps - 2.4 GHz - Old but still around
802.11n (WiFi 4): - 600 Mbps - 2.4 GHz and 5 GHz - MIMO support - Common
802.11ac (WiFi 5): - 1300+ Mbps - 5 GHz only - MU-MIMO - Current standard
802.11ax (WiFi 6): - 9600+ Mbps - 2.4 GHz , 5 GHz , 6 GHz - OFDMA - Latest standard
Frequency Bands:
2.4 GHz: - Longer range - More interference (microwaves , Bluetooth) - 11-14 channels (region dependent) - Only channels 1 , 6 , 11 don't overlap
5 GHz: - Shorter range - Less interference - Many more channels - Faster speeds
6 GHz (WiFi 6E): - Shortest range - Cleanest spectrum - Requires WiFi 6E devices
Wireless Security:
WEP: Broken , never use WPA: Deprecated , don't use WPA2: Current standard , use AES WPA3: Latest , best security
The reality:
Wireless is convenient but less secure than wired , always use WPA2 or WPA3 with strong passwords
802.11 WiFi Deep Dive¶
Let's get into the actual technical details of how WiFi works
802.11 Frame Structure:
Frame Control (2 bytes):
Protocol Version (2 bits): Always 0
Type (2 bits): Management, Control, Data
Subtype (4 bits): Specific frame type
To DS (1 bit): Going to distribution system
From DS (1 bit): Coming from distribution system
More Fragments (1 bit): More fragments follow
Retry (1 bit): Retransmission
Power Management (1 bit): Power save mode
More Data (1 bit): More data buffered
Protected Frame (1 bit): Encrypted
Order (1 bit): Strictly ordered
Duration/ID (2 bytes): NAV or association ID
Address 1 (6 bytes): Receiver address
Address 2 (6 bytes): Transmitter address
Address 3 (6 bytes): Filtering address
Sequence Control (2 bytes): Fragment and sequence numbers
Address 4 (6 bytes): Optional (WDS)
QoS Control (2 bytes): Optional (QoS)
HT Control (4 bytes): Optional (802.11n+)
Frame Body (0-2304 bytes): Actual data
FCS (4 bytes): Frame check sequence
Frame Types:
Management Frames: - Beacon: AP announces presence - Probe Request/Response: Client scans for APs - Authentication: Start authentication - Association Request/Response: Join network - Deauthentication: Disconnect - Disassociation: Leave network
Control Frames: - RTS (Request to Send): Reserve medium - CTS (Clear to Send): Grant medium access - ACK: Acknowledge receipt
Data Frames: - Data: Actual user data - Null: No data (power management) - QoS Data: Data with QoS
Beacon Frame Details:
Beacons sent every 100ms (default)
Contains:
- Timestamp: Synchronization
- Beacon Interval: Time between beacons
- Capability Info: AP capabilities
- SSID: Network name
- Supported Rates: Data rates
- Channel: Current channel
- TIM: Traffic indication map
- Country Info: Regulatory domain
- Power Constraint: Max transmit power
- ERP Info: 802.11g protection
- RSN Info: Security capabilities
Channel Allocation:
2.4 GHz Channels:
Channel 1: 2.412 GHz (center)
Channel 2: 2.417 GHz
Channel 3: 2.422 GHz
...
Channel 11: 2.462 GHz (US)
Channel 13: 2.472 GHz (Europe)
Channel 14: 2.484 GHz (Japan only)
Each channel is 20 MHz wide
Channels overlap (5 MHz spacing)
Non-overlapping: 1, 6, 11 (US)
Non-overlapping: 1, 5, 9, 13 (Europe)
5 GHz Channels:
UNII-1: 36, 40, 44, 48 (indoor)
UNII-2: 52, 56, 60, 64 (DFS required)
UNII-2 Extended: 100-144 (DFS required)
UNII-3: 149, 153, 157, 161, 165 (outdoor)
20 MHz, 40 MHz, 80 MHz, 160 MHz widths
No overlap issues
DFS: Dynamic Frequency Selection (radar avoidance)
Modulation Techniques:
802.11b (DSSS): - DBPSK: 1 Mbps - DQPSK: 2 Mbps - CCK: 5.5 and 11 Mbps
802.11g/n/ac/ax (OFDM): - BPSK: 6 Mbps - QPSK: 12 Mbps - 16-QAM: 24 Mbps - 64-QAM: 54 Mbps - 256-QAM: 802.11ac - 1024-QAM: 802.11ax
MIMO (Multiple Input Multiple Output):
802.11n: Up to 4x4 MIMO
802.11ac: Up to 8x8 MIMO
802.11ax: Up to 8x8 MIMO
Spatial streams increase throughput
Each stream is independent data path
Example:
2x2 MIMO = 2 transmit, 2 receive antennas
Can send 2 independent streams
Doubles throughput
MU-MIMO (Multi-User MIMO):
802.11ac Wave 2 and 802.11ax
Downlink MU-MIMO (802.11ac):
- AP sends to multiple clients simultaneously
- Up to 4 clients at once
- Requires beamforming
Uplink MU-MIMO (802.11ax):
- Multiple clients send to AP simultaneously
- More efficient spectrum use
OFDMA (Orthogonal Frequency Division Multiple Access):
802.11ax only
Divides channel into Resource Units (RUs)
Multiple clients share same channel simultaneously
More efficient for small packets
Example 20 MHz channel:
- Can be divided into 9 RUs
- Each RU assigned to different client
- Reduces latency for IoT devices
Beamforming:
Explicit Beamforming (802.11ac/ax):
- AP measures channel to each client
- Adjusts phase and amplitude per antenna
- Focuses signal toward client
- Increases range and throughput
Implicit Beamforming (802.11n):
- Uses channel reciprocity
- Less accurate
WiFi 6 (802.11ax) Improvements:
OFDMA: Multiple clients per channel
1024-QAM: Higher modulation
Target Wake Time: Battery savings
BSS Coloring: Interference reduction
Spatial Reuse: Overlapping BSS efficiency
Uplink MU-MIMO: Simultaneous uploads
Scanning WiFi Networks:
# Show available networks
nmcli device wifi list
# Scan with iw
iw dev wlan0 scan
# Show current connection
iw dev wlan0 link
# Show channel info
iw dev wlan0 info
# Monitor mode (packet capture)
ip link set wlan0 down
iw dev wlan0 set monitor none
ip link set wlan0 up
# Capture WiFi packets
tcpdump -i wlan0 -w wifi_capture.pcap
# Or with airodump-ng
airodump-ng wlan0
The reality:
802.11 is complex with many layers of optimization , understanding the internals helps with troubleshooting and attacking WiFi networks

CSMA/CA Explained¶
WiFi uses CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
Why Not CSMA/CD (like Ethernet):
Wireless can't detect collisions while transmitting , hidden node problem makes collision detection impossible , so we avoid collisions instead
How CSMA/CA Works:
1. Listen to medium (carrier sense)
2. If busy, wait
3. If idle, wait random backoff time (DIFS)
4. If still idle after backoff, transmit
5. Wait for ACK
6. If no ACK, collision occurred
7. Double backoff window and retry
Interframe Spaces (IFS):
SIFS (Short IFS): 10 μs
- Highest priority
- Used for ACK, CTS, poll responses
PIFS (PCF IFS): 30 μs
- Medium priority
- Used by AP in PCF mode
DIFS (DCF IFS): 50 μs
- Normal priority
- Used for data frames
EIFS (Extended IFS): 364 μs
- Lowest priority
- Used after error
Backoff Algorithm:
Backoff Time = Random(0, CW) × Slot Time
CW (Contention Window):
- Starts at CWmin (15 for 802.11b)
- Doubles after each collision
- Up to CWmax (1023)
- Resets to CWmin after successful transmission
Slot Time:
- 20 μs for 802.11b
- 9 μs for 802.11a/g/n/ac
RTS/CTS (Request to Send / Clear to Send):
Used for hidden node problem
Process:
1. Station sends RTS to AP
2. AP responds with CTS
3. All stations hear CTS
4. All stations set NAV (Network Allocation Vector)
5. Original station transmits data
6. AP sends ACK
RTS/CTS adds overhead
Only used for large frames (configurable threshold)
Hidden Node Problem:
Station A <-> AP <-> Station B
A and B can't hear each other
Both try to transmit to AP
Collisions occur at AP
RTS/CTS solves this:
- A sends RTS
- AP sends CTS (B hears this)
- B waits
- A transmits
Exposed Node Problem:
Station A <-> Station B <-> Station C <-> Station D
B wants to send to A
C wants to send to D
C hears B's transmission
C waits unnecessarily (A and D don't interfere)
No perfect solution
CSMA/CA is conservative
NAV (Network Allocation Vector):
Virtual carrier sense
Duration field in frame header
Tells other stations how long medium is busy
Example:
Frame has Duration = 500 μs
All stations set NAV timer to 500 μs
Stations wait 500 μs before attempting transmission
Testing WiFi Performance:
# Install iperf3
apt install iperf3
# Server
iperf3 -s
# Client (TCP)
iperf3 -c 192.168.1.100
# Client (UDP with bandwidth limit)
iperf3 -c 192.168.1.100 -u -b 100M
# Show detailed stats
iperf3 -c 192.168.1.100 -i 1 -t 30
The reality:
CSMA/CA is why WiFi is slower than wired , collisions waste time , overhead is significant , understanding this helps optimize WiFi networks

WiFi Security Deep Dive¶
WiFi security has evolved significantly , let's understand each generation
WEP (Wired Equivalent Privacy):
Released: 1997
Encryption: RC4 stream cipher
Key Size: 40-bit or 104-bit
IV: 24-bit (too small)
How it works:
1. Shared key (PSK)
2. 24-bit IV prepended to key
3. RC4 keystream generated
4. XOR with plaintext
5. IV sent in clear with ciphertext
Fatal flaws:
- IV too small (repeats after ~5000 packets)
- IV reuse reveals keystream
- No integrity protection
- Weak key scheduling
Attack:
- Capture 40,000-100,000 packets
- Use aircrack-ng
- Crack key in minutes
Cracking WEP:
# Put card in monitor mode
airmon-ng start wlan0
# Capture packets
airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon
# Speed up with packet injection (optional)
aireplay-ng -3 -b AA:BB:CC:DD:EE:FF -h YOUR:MAC:HERE wlan0mon
# Crack (need 40k+ IVs)
aircrack-ng capture-01.cap
WPA (WiFi Protected Access):
Released: 2003 (WEP replacement)
Encryption: TKIP (Temporal Key Integrity Protocol)
Key Size: 128-bit
Authentication: PSK or 802.1X
TKIP improvements:
- Per-packet key mixing
- 48-bit IV (extended)
- Message Integrity Check (MIC)
- Key rotation
Still vulnerable:
- TKIP has weaknesses
- Deprecated in 2012
WPA2 (802.11i):
Released: 2004
Encryption: CCMP (AES-based)
Key Size: 128-bit
Authentication: PSK or 802.1X
CCMP (Counter Mode with CBC-MAC Protocol):
- AES encryption
- CTR mode for confidentiality
- CBC-MAC for integrity
- 48-bit packet number
- Strong security
Two modes:
1. WPA2-Personal (PSK)
- Pre-shared key
- 4-way handshake
- Vulnerable to offline dictionary attack
2. WPA2-Enterprise (802.1X)
- RADIUS authentication
- Per-user credentials
- Much more secure
WPA2 4-Way Handshake:
Purpose: Derive session keys without transmitting them
Process:
1. AP sends ANonce (random number)
2. Client generates SNonce
3. Both derive PTK (Pairwise Transient Key)
PTK = PRF(PMK, ANonce, SNonce, AP MAC, Client MAC)
4. Client sends SNonce + MIC
5. AP verifies MIC
6. AP sends GTK (Group Temporal Key) + MIC
7. Client sends ACK
Keys:
- PMK: Pairwise Master Key (from PSK or 802.1X)
- PTK: Pairwise Transient Key (session key)
- GTK: Group Temporal Key (multicast/broadcast)
Attacking WPA2-PSK:
# Capture handshake
airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon
# Deauth client to force reconnect (captures handshake)
aireplay-ng -0 5 -a AA:BB:CC:DD:EE:FF -c CLIENT:MAC:HERE wlan0mon
# Crack with dictionary
aircrack-ng -w wordlist.txt capture-01.cap
# Or use hashcat (faster)
hccapx capture-01.cap
hashcat -m 2500 capture.hccapx wordlist.txt
# Or use John the Ripper
john --wordlist=wordlist.txt --format=wpapsk capture.hccap
WPA3 (2018):
Encryption: CCMP or GCMP-256
Key Size: 128-bit or 192-bit
Authentication: SAE (Simultaneous Authentication of Equals)
SAE (Dragonfly):
- Replaces PSK 4-way handshake
- Forward secrecy
- Resistant to offline dictionary attacks
- Even if password is weak
Improvements:
- Protected Management Frames (mandatory)
- Individualized data encryption
- 192-bit security suite (WPA3-Enterprise)
- Easy Connect (QR code provisioning)
SAE Process:
1. Commit: Exchange commitments
2. Confirm: Verify commitments
3. Derive PMK from password + commitments
4. No handshake capture = no offline attack
WPA3 Vulnerabilities:
Dragonblood attacks (2019):
- Downgrade attacks
- Side-channel leaks
- Denial of service
Mitigations:
- Firmware updates
- Disable transition mode
- Use strong passwords anyway
802.1X (Enterprise Authentication):
Components:
- Supplicant: Client device
- Authenticator: Access point
- Authentication Server: RADIUS
EAP (Extensible Authentication Protocol):
- EAP-TLS: Certificate-based (most secure)
- EAP-TTLS: Tunneled TLS
- PEAP: Protected EAP
- EAP-FAST: Flexible Authentication via Secure Tunneling
Process:
1. Client associates with AP
2. AP blocks all traffic except 802.1X
3. Client sends EAP identity
4. AP forwards to RADIUS
5. RADIUS challenges client
6. Client responds with credentials
7. RADIUS accepts or rejects
8. AP allows or denies access
Setting Up WPA2-Enterprise:
# Install FreeRADIUS
apt install freeradius
# Configure /etc/freeradius/3.0/clients.conf
client ap {
ipaddr = 192.168.1.1
secret = shared_secret
}
# Configure /etc/freeradius/3.0/users
user1 Cleartext-Password := "password1"
Reply-Message = "Welcome"
# Start RADIUS
systemctl start freeradius
# Configure hostapd for WPA2-Enterprise
# /etc/hostapd/hostapd.conf
interface=wlan0
ssid=SecureNetwork
hw_mode=g
channel=6
wpa=2
wpa_key_mgmt=WPA-EAP
auth_algs=1
ieee8021x=1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=shared_secret
WiFi Attacks Summary:
Passive:
- Packet sniffing
- Handshake capture
- Traffic analysis
Active:
- Deauthentication
- Evil twin AP
- MITM attacks
- Rogue AP
WEP: Trivial to crack
WPA/WPA2-PSK: Dictionary attack on handshake
WPA2-Enterprise: Much harder (need valid credentials)
WPA3: Resistant to offline attacks
Defending WiFi Networks:
1. Use WPA3 (or WPA2-Enterprise)
2. Strong, unique passwords (20+ characters)
3. Hide SSID (security through obscurity, minimal benefit)
4. MAC filtering (easily bypassed, minimal benefit)
5. Disable WPS (vulnerable to brute force)
6. Use 802.1X for enterprise
7. Separate guest network
8. Monitor for rogue APs
9. Use VPN over WiFi
10. Keep firmware updated
The reality:
WiFi security has improved dramatically , WPA3 is solid , but most networks still use WPA2-PSK with weak passwords , understanding the attacks helps you defend properly

Data Link Layer Mastery¶
MAC Addresses¶
MAC (Media Access Control) addresses are hardware addresses
Format:
48 bits (6 bytes) written as 12 hex digits
Common formats: - AA:BB:CC:DD:EE:FF (most common) - AA-BB-CC-DD-EE-FF - AABB.CCDD.EEFF (Cisco)
Structure:
First 24 bits (OUI): Organizationally Unique Identifier (manufacturer) Last 24 bits: Device identifier
Special Addresses:
FF:FF:FF:FF:FF:FF: Broadcast (all devices) 01:00:5E:xx:xx:xx: IPv4 multicast 33:33:xx:xx:xx:xx: IPv6 multicast
Locally vs Globally Administered:
Bit 7 of first byte: - 0: Globally unique (manufacturer assigned) - 1: Locally administered (can be changed)
Unicast vs Multicast:
Bit 8 of first byte: - 0: Unicast (single destination) - 1: Multicast (multiple destinations)
Viewing MAC Addresses:
# Show all interfaces
ip link show
# Show specific interface
ip link show eth0
# Show MAC address table (switches)
# On Linux bridge:
bridge fdb show
# Change MAC address (spoofing)
ip link set dev eth0 address aa:bb:cc:dd:ee:ff
The reality:
MAC addresses are supposed to be unique but can be spoofed , they're only used for local network communication
Ethernet Frames¶
Frames are Layer 2 data units
Ethernet II Frame Structure:
Preamble (7 bytes): 10101010... (sync)
SFD (1 byte): 10101011 (start frame delimiter)
Destination MAC (6 bytes): Where to
Source MAC (6 bytes): Where from
EtherType (2 bytes): Protocol type
Payload (46-1500 bytes): Data
FCS (4 bytes): Frame Check Sequence (CRC32)
EtherType Values:
0x0800: IPv4 0x0806: ARP 0x86DD: IPv6 0x8100: 802.1Q VLAN tag 0x88CC: LLDP
Frame Sizes:
Minimum frame: 64 bytes (including FCS) Maximum frame: 1518 bytes (standard Ethernet) Jumbo frames: Up to 9000 bytes (not standard)
Why Minimum Size:
CSMA/CD collision detection requires minimum frame size , if frame too small collision might not be detected
MTU (Maximum Transmission Unit):
Standard: 1500 bytes (payload only) Jumbo: 9000 bytes Baby jumbo: 2000-4000 bytes
Checking MTU:
# Show MTU
ip link show eth0
# Change MTU
ip link set dev eth0 mtu 9000
# Test MTU with ping
ping -M do -s 1472 8.8.8.8
# -M do: Don't fragment
# -s 1472: 1500 - 20 (IP) - 8 (ICMP) = 1472
The reality:
Understanding frame structure is crucial for packet analysis and troubleshooting
ARP Protocol¶
ARP (Address Resolution Protocol) resolves IP addresses to MAC addresses
Why ARP Exists:
Layer 3 uses IP addresses , Layer 2 uses MAC addresses , ARP bridges the gap
ARP Process:
1. Host needs to send to 192.168.1.100
2. Checks ARP cache
3. If not in cache, broadcasts ARP request
4. "Who has 192.168.1.100? Tell 192.168.1.50"
5. Device with 192.168.1.100 responds
6. "192.168.1.100 is at AA:BB:CC:DD:EE:FF"
7. Requesting host caches the mapping
8. Communication proceeds
ARP Packet Structure:
Hardware Type (2 bytes): 1 for Ethernet
Protocol Type (2 bytes): 0x0800 for IPv4
Hardware Address Length (1 byte): 6 for MAC
Protocol Address Length (1 byte): 4 for IPv4
Operation (2 bytes): 1=Request , 2=Reply
Sender Hardware Address (6 bytes): Sender MAC
Sender Protocol Address (4 bytes): Sender IP
Target Hardware Address (6 bytes): Target MAC (00:00:00:00:00:00 in request)
Target Protocol Address (4 bytes): Target IP
ARP Commands:
# View ARP cache
ip neigh show
# or
arp -n
# Add static ARP entry
ip neigh add 192.168.1.100 lladdr aa:bb:cc:dd:ee:ff dev eth0
# Delete ARP entry
ip neigh del 192.168.1.100 dev eth0
# Flush ARP cache
ip neigh flush all
Gratuitous ARP:
Unsolicited ARP announcement , sender and target IP are the same , used to update ARP caches , detect IP conflicts , also used in ARP spoofing attacks
ARP Spoofing:
Attacker sends fake ARP replies , claims to be another device , redirects traffic through attacker , classic man-in-the-middle attack
Defending Against ARP Spoofing:
Static ARP entries , Dynamic ARP Inspection (DAI) , ARP monitoring tools
The reality:
ARP is fundamental but completely insecure , understanding ARP is crucial for both attacks and defenses

Switches and Switching¶
Switches operate at Layer 2 and forward frames based on MAC addresses
How Switches Work:
- Receive frame on port
- Learn source MAC address
- Add to MAC address table
- Check destination MAC
- Forward to appropriate port
- If unknown , flood to all ports except source
MAC Address Table:
Port MAC Address Age (seconds)
1 AA:BB:CC:DD:EE:FF 60
2 11:22:33:44:55:66 45
3 AA:11:BB:22:CC:33 120
Viewing MAC Table on Linux Bridge:
# Show MAC address table
bridge fdb show
# Show with interface
bridge fdb show dev eth0
# Add static entry
bridge fdb add aa:bb:cc:dd:ee:ff dev eth0
Switch Learning Process:
Frame arrives on port 1 from MAC AA:BB:CC:DD:EE:FF , switch learns "AA:BB:CC:DD:EE:FF is on port 1" , adds to MAC table with timestamp
Forwarding Decisions:
Known unicast: Forward to specific port Unknown unicast: Flood to all ports except source Broadcast: Flood to all ports except source Multicast: Flood or forward based on configuration
Switch Types:
Unmanaged: - Plug and play - No configuration - Cheap - Home/small office
Managed: - Configurable - VLANs , QoS , monitoring - Expensive - Enterprise
Switching Methods:
Store-and-Forward: - Receives entire frame - Checks FCS - Then forwards - Slower but detects errors
Cut-Through: - Starts forwarding immediately - Faster but doesn't check errors - Rarely used now
Fragment-Free: - Reads first 64 bytes - Compromise between above - Rarely used
The reality:
Switches are the backbone of LANs , understanding switching is fundamental
VLANs¶
VLANs (Virtual LANs) segment networks logically
Why VLANs:
Separate traffic without physical separation , improve security , reduce broadcast domains , better organization , save money (one switch instead of many)
How VLANs Work:
Switch tags frames with VLAN ID , only devices in same VLAN can communicate directly , router required for inter-VLAN communication
VLAN Ranges:
Normal VLANs: 1-1005 Extended VLANs: 1006-4094 Reserved: 0 , 4095
VLAN 1:
Default VLAN , native VLAN , cannot be deleted , security risk (don't use for user traffic)
Creating VLANs on Linux:
# Load 8021q module
modprobe 8021q
# Create VLAN interface
ip link add link eth0 name eth0.10 type vlan id 10
# Bring up interface
ip link set dev eth0.10 up
# Assign IP address
ip addr add 192.168.10.1/24 dev eth0.10
# Delete VLAN interface
ip link delete eth0.10
# Show VLAN interfaces
ip -d link show
VLAN Configuration File (Debian/Ubuntu):
# /etc/network/interfaces
auto eth0.10
iface eth0.10 inet static
address 192.168.10.1
netmask 255.255.255.0
vlan-raw-device eth0
VLAN Benefits:
Security: Separate sensitive traffic Performance: Reduce broadcast domains Flexibility: Easy to reorganize Cost: One switch instead of many
VLAN Limitations:
Requires VLAN-capable switches , more complex configuration , potential for misconfiguration
The reality:
VLANs are fundamental for network segmentation , every enterprise network uses VLANs
VLAN Trunking¶
Trunks carry multiple VLANs between switches
Access Port vs Trunk Port:
Access Port: - Belongs to one VLAN - Connects end devices - Untagged frames
Trunk Port: - Carries multiple VLANs - Connects switches - Tagged frames (except native VLAN)
802.1Q Tagging:
Standard Ethernet Frame:
[Dest MAC | Source MAC | EtherType | Data | FCS]
802.1Q Tagged Frame:
[Dest MAC | Source MAC | 802.1Q Tag | EtherType | Data | FCS]
802.1Q Tag (4 bytes):
TPID (2 bytes): 0x8100
TCI (2 bytes):
Priority (3 bits): QoS
CFI (1 bit): Canonical Format Indicator
VLAN ID (12 bits): 0-4095
Native VLAN:
Untagged traffic on trunk , default is VLAN 1 , security risk (change it) , must match on both ends
Configuring Trunk on Linux:
# Create bridge
ip link add name br0 type bridge
ip link set dev br0 up
# Enable VLAN filtering
ip link set dev br0 type bridge vlan_filtering 1
# Add interface to bridge
ip link set dev eth0 master br0
# Configure as trunk (allow VLANs 10,20,30)
bridge vlan add dev eth0 vid 10
bridge vlan add dev eth0 vid 20
bridge vlan add dev eth0 vid 30
# Set native VLAN (PVID)
bridge vlan add dev eth0 vid 99 pvid untagged
# Show VLAN configuration
bridge vlan show
DTP (Dynamic Trunking Protocol):
Cisco proprietary , automatically negotiates trunking , security risk (disable it) , use manual configuration
The reality:
Trunking is how VLANs scale across multiple switches , understanding trunking is crucial

Spanning Tree Protocol¶
STP prevents Layer 2 loops
Why STP:
Redundant links create loops , loops cause broadcast storms , broadcast storms destroy networks , STP blocks redundant paths
How STP Works:
- Elect root bridge (lowest bridge ID)
- Each switch finds best path to root
- Block all other paths
- Monitor for topology changes
- Recalculate if topology changes
Bridge ID:
Priority (16 bits): Default 32768
MAC Address (48 bits): Switch MAC
Lower bridge ID wins
Port States:
Blocking: Not forwarding , listening for BPDUs Listening: Not forwarding , building topology Learning: Not forwarding , learning MAC addresses Forwarding: Forwarding frames Disabled: Administratively down
Port Roles:
Root Port: Best path to root bridge Designated Port: Forwarding port on segment Alternate Port: Backup path to root Backup Port: Backup designated port
BPDU (Bridge Protocol Data Unit):
Switches exchange BPDUs every 2 seconds , contain bridge ID , root ID , path cost
STP Timers:
Hello Time: 2 seconds (BPDU interval) Forward Delay: 15 seconds (listening and learning) Max Age: 20 seconds (BPDU timeout)
Convergence Time:
50 seconds (max age + 2 * forward delay) , too slow for modern networks
STP Variants:
STP (802.1D): Original , slow convergence RSTP (802.1w): Rapid STP , faster convergence (6 seconds) MSTP (802.1s): Multiple STP , supports multiple VLANs
Configuring STP on Linux:
# Create bridge
ip link add name br0 type bridge
# Enable STP
ip link set dev br0 type bridge stp_state 1
# Set bridge priority (lower wins)
ip link set dev br0 type bridge priority 4096
# Add interfaces
ip link set dev eth0 master br0
ip link set dev eth1 master br0
# Show STP status
bridge link show
# Show detailed STP info
cat /sys/class/net/br0/bridge/stp_state
PortFast:
Skips listening and learning states , only use on access ports , never on trunks
BPDU Guard:
Shuts down port if BPDU received , protects against rogue switches
Root Guard:
Prevents port from becoming root port , protects root bridge
The reality:
STP is critical for redundancy , misconfigured STP causes outages , understand it well
EtherChannel and Link Aggregation¶
Combine multiple links into one logical link
Why Link Aggregation:
Increased bandwidth , redundancy , load balancing
Technologies:
PAgP (Port Aggregation Protocol): Cisco proprietary LACP (Link Aggregation Control Protocol): IEEE 802.3ad , standard
LACP Modes:
Active: Initiates LACP negotiation Passive: Waits for LACP negotiation On: Forces aggregation without LACP (dangerous)
Load Balancing Methods:
Source MAC , destination MAC , source and destination MAC , source IP , destination IP , source and destination IP , source port , destination port
Configuring Bonding on Linux:
# Install bonding module
modprobe bonding
# Create bond interface
ip link add bond0 type bond mode 802.3ad
# Set LACP rate (slow=30s , fast=1s)
echo fast > /sys/class/net/bond0/bonding/lacp_rate
# Add slaves
ip link set dev eth0 master bond0
ip link set dev eth1 master bond0
# Bring up interfaces
ip link set dev eth0 up
ip link set dev eth1 up
ip link set dev bond0 up
# Assign IP
ip addr add 192.168.1.10/24 dev bond0
# Show bond status
cat /proc/net/bonding/bond0
Bonding Modes:
Mode 0 (balance-rr): Round-robin Mode 1 (active-backup): Active/passive Mode 2 (balance-xor): XOR hash Mode 3 (broadcast): Broadcast to all Mode 4 (802.3ad): LACP Mode 5 (balance-tlb): Transmit load balancing Mode 6 (balance-alb): Adaptive load balancing
Configuration File (Debian/Ubuntu):
# /etc/network/interfaces
auto bond0
iface bond0 inet static
address 192.168.1.10
netmask 255.255.255.0
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1
The reality:
Link aggregation provides both bandwidth and redundancy , LACP is the standard way to do it

Network Layer Expertise¶
IP Addressing Fundamentals¶
IP addresses are logical addresses used for routing
IPv4 Address Structure:
32 bits divided into 4 octets , written in dotted decimal notation , example: 192.168.1.100
Each octet is 8 bits (0-255)
Binary to Decimal:
192 . 168 . 1 . 100
11000000.10101000.00000001.01100100
Network vs Host Portion:
Subnet mask determines which part is network and which is host
IP: 192.168.1.100
Mask: 255.255.255.0
Network: 192.168.1.0
Host: 0.0.0.100
Special Addresses:
Network address: All host bits 0 (192.168.1.0) Broadcast address: All host bits 1 (192.168.1.255) Loopback: 127.0.0.1 (localhost) APIPA: 169.254.0.0/16 (automatic private IP)
Configuring IP on Linux:
# Show IP addresses
ip addr show
# Add IP address
ip addr add 192.168.1.100/24 dev eth0
# Delete IP address
ip addr del 192.168.1.100/24 dev eth0
# Bring interface up
ip link set dev eth0 up
# Bring interface down
ip link set dev eth0 down
# Show routing table
ip route show
# Add default gateway
ip route add default via 192.168.1.1
# Add static route
ip route add 10.0.0.0/8 via 192.168.1.254
Configuration File (Debian/Ubuntu):
# /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
The reality:
Understanding IP addressing is absolutely fundamental , you can't do networking without it
IPv4 Address Classes¶
Classful addressing is mostly obsolete but you need to know it
Class A:
First octet: 1-126 Default mask: 255.0.0.0 (/8) Networks: 126 Hosts per network: 16,777,214 Example: 10.0.0.0
Class B:
First octet: 128-191 Default mask: 255.255.0.0 (/16) Networks: 16,384 Hosts per network: 65,534 Example: 172.16.0.0
Class C:
First octet: 192-223 Default mask: 255.255.255.0 (/24) Networks: 2,097,152 Hosts per network: 254 Example: 192.168.1.0
Class D (Multicast):
First octet: 224-239 Used for multicast Example: 224.0.0.1
Class E (Reserved):
First octet: 240-255 Reserved for experimental use
Private IP Ranges (RFC 1918):
Class A: 10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
Class B: 172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
Class C: 192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
The reality:
Classful addressing is dead , we use CIDR now , but you'll see class references everywhere
Subnetting¶
Subnetting divides networks into smaller subnetworks
Why Subnet:
Efficient IP address usage , improved performance (smaller broadcast domains) , better security (network segmentation) , easier management
Subnet Mask:
Determines network and host portions
255.255.255.0 = /24 = 11111111.11111111.11111111.00000000
255.255.255.128 = /25 = 11111111.11111111.11111111.10000000
255.255.255.192 = /26 = 11111111.11111111.11111111.11000000
Subnetting Example 1:
Network: 192.168.1.0/24
Requirement: 4 subnets
Borrow 2 bits from host portion (2^2 = 4 subnets)
New mask: /26 (255.255.255.192)
Subnet 1: 192.168.1.0/26 (192.168.1.0 - 192.168.1.63)
Subnet 2: 192.168.1.64/26 (192.168.1.64 - 192.168.1.127)
Subnet 3: 192.168.1.128/26 (192.168.1.128 - 192.168.1.191)
Subnet 4: 192.168.1.192/26 (192.168.1.192 - 192.168.1.255)
Each subnet has 62 usable hosts (64 - 2)
Subnetting Example 2:
Network: 10.0.0.0/8
Requirement: 100 subnets
Borrow 7 bits (2^7 = 128 subnets)
New mask: /15 (255.254.0.0)
Subnet 1: 10.0.0.0/15
Subnet 2: 10.2.0.0/15
Subnet 3: 10.4.0.0/15
...
Each subnet has 131,070 usable hosts
Quick Subnetting Chart:
/24 = 256 addresses (254 usable)
/25 = 128 addresses (126 usable)
/26 = 64 addresses (62 usable)
/27 = 32 addresses (30 usable)
/28 = 16 addresses (14 usable)
/29 = 8 addresses (6 usable)
/30 = 4 addresses (2 usable) - point-to-point links
/31 = 2 addresses (2 usable) - RFC 3021 point-to-point
/32 = 1 address (host route)
Calculating Subnets:
1. Determine required subnets or hosts
2. Calculate bits needed (2^n >= requirement)
3. Borrow bits from host portion
4. Calculate new mask
5. Calculate subnet ranges
Subnet Calculator Commands:
# Using ipcalc
ipcalc 192.168.1.0/24
# Using sipcalc
sipcalc 192.168.1.0/26
# Manual calculation
# Network: 192.168.1.64/26
# Mask: 255.255.255.192
# Wildcard: 0.0.0.63
# Network: 192.168.1.64
# Broadcast: 192.168.1.127
# First host: 192.168.1.65
# Last host: 192.168.1.126
# Hosts: 62
The reality:
Subnetting is math , practice until it's automatic , you'll use it constantly

VLSM and CIDR¶
VLSM (Variable Length Subnet Mask) allows different subnet sizes
Why VLSM:
Efficient IP address usage , flexibility in network design , reduces waste
VLSM Example:
Network: 172.16.0.0/16
Requirements:
- 1 subnet with 500 hosts
- 2 subnets with 100 hosts each
- 3 subnets with 50 hosts each
- 4 subnets with 10 hosts each
Solution:
1. Largest first: 500 hosts needs /23 (510 usable)
172.16.0.0/23
2. Next: 100 hosts needs /25 (126 usable)
172.16.2.0/25
172.16.2.128/25
3. Next: 50 hosts needs /26 (62 usable)
172.16.3.0/26
172.16.3.64/26
172.16.3.128/26
4. Smallest: 10 hosts needs /28 (14 usable)
172.16.3.192/28
172.16.3.208/28
172.16.3.224/28
172.16.3.240/28
CIDR (Classless Inter-Domain Routing):
Replaces classful addressing , allows any mask length , written as prefix length (/24 , /25 , etc)
CIDR Aggregation (Route Summarization):
Combine multiple routes into one:
Routes:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
Summary: 192.168.0.0/22
How:
192.168.0.0 = 11000000.10101000.00000000.00000000
192.168.3.0 = 11000000.10101000.00000011.00000000
^^
Common bits: 22
Summary: 192.168.0.0/22
Supernetting:
Opposite of subnetting , combines multiple networks into larger one
The reality:
VLSM is how real networks are designed , CIDR is how routing works on the internet
IPv6 Addressing¶
IPv6 is the future (supposedly)
Why IPv6:
IPv4 address exhaustion , 128-bit addresses (340 undecillion addresses) , simplified header , built-in IPSec , no NAT needed
IPv6 Address Format:
8 groups of 4 hex digits
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Shortening rules:
1. Leading zeros can be omitted
2001:db8:85a3:0:0:8a2e:370:7334
2. Consecutive zero groups replaced with ::
2001:db8:85a3::8a2e:370:7334
3. :: can only be used once
IPv6 Address Types:
Unicast: One-to-one Multicast: One-to-many Anycast: One-to-nearest
No broadcast in IPv6
IPv6 Unicast Types:
Global Unicast: 2000::/3 (internet routable) Link-Local: fe80::/10 (local network only) Unique Local: fc00::/7 (private , like RFC 1918) Loopback: ::1 Unspecified: ::
IPv6 Prefix Length:
/64 is standard for LANs
/48 is typical allocation for sites
/32 is typical allocation for ISPs
/128 is single host
Configuring IPv6 on Linux:
# Show IPv6 addresses
ip -6 addr show
# Add IPv6 address
ip -6 addr add 2001:db8::1/64 dev eth0
# Add IPv6 default route
ip -6 route add default via 2001:db8::1
# Enable IPv6 forwarding
sysctl -w net.ipv6.conf.all.forwarding=1
# Disable IPv6
sysctl -w net.ipv6.conf.all.disable_ipv6=1
# Show IPv6 neighbors (like ARP)
ip -6 neigh show
IPv6 Configuration File:
# /etc/network/interfaces
iface eth0 inet6 static
address 2001:db8::100
netmask 64
gateway 2001:db8::1
The reality:
IPv6 adoption is slow but inevitable , learn it now before you're forced to
ICMP Protocol Deep Dive¶
ICMP (Internet Control Message Protocol) is the error reporting and diagnostic protocol for IP
ICMP Purpose:
Error reporting , network diagnostics , path MTU discovery , router discovery
ICMP Packet Structure:
IP Header (20 bytes)
ICMP Header:
Type (1 byte): Message type
Code (1 byte): Message subtype
Checksum (2 bytes): Error detection
Rest of Header (4 bytes): Varies by type
ICMP Data (variable): Depends on type
ICMP Message Types:
Type 0: Echo Reply (ping response)
Code 0: Echo reply
Type 3: Destination Unreachable
Code 0: Network unreachable
Code 1: Host unreachable
Code 2: Protocol unreachable
Code 3: Port unreachable
Code 4: Fragmentation needed but DF set
Code 5: Source route failed
Code 6: Destination network unknown
Code 7: Destination host unknown
Code 9: Network administratively prohibited
Code 10: Host administratively prohibited
Code 13: Communication administratively prohibited
Type 4: Source Quench (deprecated)
Code 0: Congestion control
Type 5: Redirect
Code 0: Redirect for network
Code 1: Redirect for host
Code 2: Redirect for TOS and network
Code 3: Redirect for TOS and host
Type 8: Echo Request (ping)
Code 0: Echo request
Type 9: Router Advertisement
Code 0: Router advertisement
Type 10: Router Solicitation
Code 0: Router discovery
Type 11: Time Exceeded
Code 0: TTL expired in transit
Code 1: Fragment reassembly time exceeded
Type 12: Parameter Problem
Code 0: Pointer indicates error
Code 1: Missing required option
Code 2: Bad length
Type 13: Timestamp Request
Code 0: Timestamp
Type 14: Timestamp Reply
Code 0: Timestamp reply
Type 30: Traceroute
Code 0: Information request
ICMP Echo Request/Reply (Type 8/0):
Type: 8 (request) or 0 (reply)
Code: 0
Checksum: 16-bit checksum
Identifier: 16-bit ID (matches request to reply)
Sequence Number: 16-bit sequence (increments per ping)
Data: Variable (usually timestamp + padding)
ICMP Destination Unreachable (Type 3):
Type: 3
Code: Specific reason (0-15)
Checksum: 16-bit checksum
Unused: 4 bytes (must be zero)
Data: IP header + first 8 bytes of original datagram
ICMP Time Exceeded (Type 11):
Type: 11
Code: 0 (TTL) or 1 (fragment)
Checksum: 16-bit checksum
Unused: 4 bytes (must be zero)
Data: IP header + first 8 bytes of original datagram
ICMP and Firewalls:
Many firewalls block ICMP
Some allow Echo Request/Reply only
Some rate-limit ICMP
Blocking all ICMP breaks PMTUD
Path MTU Discovery:
1. Send packet with DF (Don't Fragment) flag
2. If packet too large for link
3. Router drops packet
4. Router sends ICMP Type 3 Code 4
5. Includes MTU of next hop
6. Sender reduces packet size
7. Repeat until packet gets through
Capturing ICMP:
# Capture all ICMP
tcpdump -i eth0 icmp
# Capture specific ICMP type
tcpdump -i eth0 'icmp[0] == 8' # Echo Request
tcpdump -i eth0 'icmp[0] == 0' # Echo Reply
tcpdump -i eth0 'icmp[0] == 11' # Time Exceeded
# Show ICMP details
tcpdump -i eth0 -vv icmp
The reality:
ICMP is essential for network operation , blocking all ICMP causes problems , understand ICMP to troubleshoot effectively

How Ping Actually Works¶
Ping uses ICMP Echo Request and Echo Reply messages
Ping Process Step by Step:
1. Application creates ICMP Echo Request
- Type: 8
- Code: 0
- Identifier: Process ID (usually)
- Sequence: Starts at 1, increments
- Data: Timestamp + padding (usually 56 bytes)
2. Kernel adds IP header
- Source IP: Your IP
- Destination IP: Target IP
- Protocol: 1 (ICMP)
- TTL: 64 (Linux default)
3. Packet sent to network
4. Each router decrements TTL
- If TTL reaches 0, router drops packet
- Router sends ICMP Time Exceeded
5. Packet reaches destination
6. Destination creates ICMP Echo Reply
- Type: 0
- Code: 0
- Same Identifier
- Same Sequence
- Same Data (echoed back)
7. Reply travels back
8. Source receives reply
9. Calculate RTT (Round Trip Time)
RTT = Current Time - Timestamp in Data
10. Display result
Ping Packet Structure:
Ethernet Header (14 bytes)
IP Header (20 bytes):
Source IP: 192.168.1.100
Dest IP: 8.8.8.8
Protocol: 1 (ICMP)
TTL: 64
ICMP Header (8 bytes):
Type: 8 (Echo Request)
Code: 0
Checksum: Calculated
Identifier: 12345 (example)
Sequence: 1
ICMP Data (56 bytes default):
Timestamp: Current time
Padding: Fill to desired size
Total: 98 bytes (14 + 20 + 8 + 56)
Ping Options Explained:
# Basic ping
ping 8.8.8.8
# Count (-c)
ping -c 4 8.8.8.8
# Sends exactly 4 packets then stops
# Interval (-i)
ping -i 0.2 8.8.8.8
# 200ms between packets (default 1s)
# Requires root for <0.2s
# Packet size (-s)
ping -s 1000 8.8.8.8
# 1000 bytes of data (total packet larger)
# Timeout (-W)
ping -W 2 8.8.8.8
# Wait 2 seconds for reply
# TTL (-t)
ping -t 10 8.8.8.8
# Set TTL to 10 hops
# Don't fragment (-M do)
ping -M do -s 1472 8.8.8.8
# Test MTU (1472 + 20 IP + 8 ICMP = 1500)
# Flood ping (-f) [requires root]
ping -f 8.8.8.8
# Send packets as fast as possible
# Shows . for sent, backspace for received
# Quiet (-q)
ping -q -c 100 8.8.8.8
# Only show summary
# Verbose (-v)
ping -v 8.8.8.8
# Show all ICMP packets (not just Echo)
# Specific interface (-I)
ping -I eth0 8.8.8.8
# Send from specific interface
# Numeric output (-n)
ping -n 8.8.8.8
# Don't resolve hostnames
Ping Statistics:
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 10.123/15.456/20.789/4.321 ms
Explanation:
- Transmitted: Packets sent
- Received: Replies received
- Packet loss: (Transmitted - Received) / Transmitted
- Time: Total time for test
- RTT min: Fastest reply
- RTT avg: Average reply time
- RTT max: Slowest reply
- mdev: Standard deviation (jitter)
What Ping Results Mean:
Reply from 8.8.8.8: icmp_seq=1 ttl=118 time=10.5 ms
- Reply received successfully
- Sequence number 1
- TTL 118 (started at ~128, crossed ~10 hops)
- Round trip time 10.5ms
Request timeout for icmp_seq=1
- No reply received
- Packet lost or filtered
- Could be firewall blocking
Destination Host Unreachable
- Router can't reach destination
- ICMP Type 3 Code 1
- Network problem
Network is unreachable
- No route to destination
- ICMP Type 3 Code 0
- Routing problem
From 192.168.1.1: Redirect Host
- Router telling you to use different gateway
- ICMP Type 5
Ping Sweep (Scan Network):
# Ping entire subnet
for i in {1..254}; do
ping -c 1 -W 1 192.168.1.$i | grep "64 bytes" &
done
# Or with fping
fping -a -g 192.168.1.0/24
# Or with nmap
nmap -sn 192.168.1.0/24
Why Ping Might Fail:
1. Firewall blocks ICMP
2. Host is down
3. Network unreachable
4. Routing problem
5. ICMP rate limiting
6. Wrong IP address
7. Network congestion
The reality:
Ping is simple but powerful , understanding how it works helps troubleshoot network issues , TTL tells you hop count , RTT tells you latency

How Traceroute Actually Works¶
Traceroute maps the path packets take to destination
Traceroute Methods:
1. UDP (default on Linux)
2. ICMP (Windows default)
3. TCP (modern alternative)
UDP Traceroute (Linux Default):
Process:
1. Send UDP packet to high port (33434+)
2. Set TTL = 1
3. First router decrements TTL to 0
4. Router drops packet
5. Router sends ICMP Time Exceeded (Type 11 Code 0)
6. Record router IP and RTT
7. Increment TTL to 2
8. Second router decrements to 0
9. Second router sends ICMP Time Exceeded
10. Record second router
11. Repeat until destination reached
12. Destination sends ICMP Port Unreachable (Type 3 Code 3)
13. Done
Why high port?
- Unlikely to be open
- Triggers Port Unreachable
- Signals we reached destination
ICMP Traceroute:
Process:
1. Send ICMP Echo Request
2. Set TTL = 1
3. First router decrements TTL to 0
4. Router sends ICMP Time Exceeded
5. Record router
6. Increment TTL
7. Repeat until destination
8. Destination sends ICMP Echo Reply
9. Done
Advantage:
- More likely to work through firewalls
- Same as ping
Disadvantage:
- Some routers don't respond to ICMP
TCP Traceroute:
Process:
1. Send TCP SYN packet
2. Set TTL = 1
3. Router decrements TTL to 0
4. Router sends ICMP Time Exceeded
5. Record router
6. Increment TTL
7. Repeat until destination
8. Destination sends TCP SYN-ACK or RST
9. Done
Advantage:
- Works when UDP/ICMP blocked
- Can target specific port
Disadvantage:
- Requires root
- More complex
Traceroute Packet Details:
Hop 1 (TTL=1):
IP Header:
Source: 192.168.1.100
Dest: 8.8.8.8
TTL: 1
Protocol: 17 (UDP)
UDP Header:
Source Port: Random
Dest Port: 33434
Data: Timestamp
Router 1 Response:
IP Header:
Source: 192.168.1.1 (router)
Dest: 192.168.1.100 (you)
Protocol: 1 (ICMP)
ICMP Header:
Type: 11 (Time Exceeded)
Code: 0 (TTL expired)
ICMP Data:
Original IP header
First 8 bytes of UDP packet
Traceroute Options:
# Basic traceroute
traceroute 8.8.8.8
# ICMP mode (-I)
traceroute -I 8.8.8.8
# TCP mode (-T)
traceroute -T -p 80 8.8.8.8
# UDP mode (-U) [default]
traceroute -U 8.8.8.8
# Max hops (-m)
traceroute -m 15 8.8.8.8
# Stop after 15 hops
# Queries per hop (-q)
traceroute -q 1 8.8.8.8
# Send 1 probe per hop (default 3)
# Wait time (-w)
traceroute -w 2 8.8.8.8
# Wait 2 seconds for response
# Packet size (-s)
traceroute -s 100 8.8.8.8
# Use 100 byte packets
# Don't resolve names (-n)
traceroute -n 8.8.8.8
# Show IPs only
# Source address (-s)
traceroute -s 192.168.1.100 8.8.8.8
# Use specific source IP
# Interface (-i)
traceroute -i eth0 8.8.8.8
# Use specific interface
Reading Traceroute Output:
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 1.234 ms 1.456 ms 1.678 ms
2 10.0.0.1 (10.0.0.1) 5.123 ms 5.234 ms 5.345 ms
3 * * *
4 8.8.8.8 (8.8.8.8) 10.123 ms 10.234 ms 10.345 ms
Explanation:
- Hop 1: First router at 192.168.1.1
- 3 probes sent
- RTT: 1.234ms, 1.456ms, 1.678ms
- Hop 2: Second router at 10.0.0.1
- RTT: ~5ms
- Hop 3: No response (* * *)
- Router doesn't respond to ICMP
- Or firewall blocks
- Packet still forwarded
- Hop 4: Destination reached
- RTT: ~10ms
Special Traceroute Symbols:
* * *
- No response
- Timeout
- Router doesn't send ICMP Time Exceeded
- Or firewall blocks
!H
- Host unreachable
- ICMP Type 3 Code 1
!N
- Network unreachable
- ICMP Type 3 Code 0
!P
- Protocol unreachable
- ICMP Type 3 Code 2
!S
- Source route failed
- ICMP Type 3 Code 5
!F
- Fragmentation needed
- ICMP Type 3 Code 4
!X
- Communication administratively prohibited
- ICMP Type 3 Code 13
MTR (My Traceroute):
# Better than traceroute
mtr 8.8.8.8
# Shows:
# - All hops
# - Packet loss per hop
# - Average latency
# - Best/worst/stddev
# - Real-time updates
# Report mode
mtr -r -c 100 8.8.8.8
# TCP mode
mtr -T -P 443 8.8.8.8
# No DNS
mtr -n 8.8.8.8
Why Traceroute is Useful:
1. Find where packets are dropped
2. Identify slow hops
3. Discover network path
4. Troubleshoot routing
5. Measure latency per hop
6. Detect routing loops
7. Map network topology
Traceroute Limitations:
1. Asymmetric routing
- Forward path != return path
- Shows only forward path
2. Load balancing
- Different packets take different paths
- Results inconsistent
3. ICMP rate limiting
- Routers limit ICMP responses
- Causes false timeouts
4. Firewalls
- Block ICMP or UDP
- Shows * * *
5. MPLS networks
- Hide internal hops
- Show only edge routers
The reality:
Traceroute is essential for troubleshooting , shows network path , identifies problem hops , understanding TTL manipulation is key

IP Routing Basics¶
Routing is how packets travel between networks
Routing Decision Process:
1. Check if destination is directly connected
2. Check routing table for specific route
3. Check for network route
4. Use default route
5. If no route, drop packet and send ICMP unreachable
Routing Table:
Destination Gateway Genmask Flags Metric Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 eth0
10.0.0.0 192.168.1.254 255.0.0.0 UG 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 eth0
Route Types:
Connected: Directly attached networks Static: Manually configured Dynamic: Learned via routing protocols
Administrative Distance:
Connected: 0
Static: 1
EIGRP: 90
OSPF: 110
RIP: 120
External EIGRP: 170
Unknown: 255
Lower AD is preferred
Metric:
Used to choose between routes learned by same protocol , lower is better , different protocols use different metrics
Viewing Routes on Linux:
# Show routing table
ip route show
# Show with more detail
ip route show table all
# Show specific route
ip route get 8.8.8.8
# Show routing cache
ip route show cache
The reality:
Understanding routing is fundamental for network connectivity
Static Routing¶
Static routes are manually configured
When to Use Static:
Small networks , stub networks , default routes , backup routes , specific traffic engineering
Adding Static Routes:
# Add route to network
ip route add 10.0.0.0/8 via 192.168.1.254
# Add default route
ip route add default via 192.168.1.1
# Add route with metric
ip route add 10.0.0.0/8 via 192.168.1.254 metric 10
# Add route via interface
ip route add 10.0.0.0/8 dev eth1
# Delete route
ip route del 10.0.0.0/8
# Replace route
ip route replace 10.0.0.0/8 via 192.168.1.253
Persistent Static Routes:
# Debian/Ubuntu: /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
up ip route add 10.0.0.0/8 via 192.168.1.254
# RHEL/CentOS: /etc/sysconfig/network-scripts/route-eth0
10.0.0.0/8 via 192.168.1.254
Floating Static Route:
Backup route with higher AD , used when primary fails
# Primary route (AD 1)
ip route add 10.0.0.0/8 via 192.168.1.254
# Backup route (higher metric acts like higher AD)
ip route add 10.0.0.0/8 via 192.168.1.253 metric 10
The reality:
Static routes are simple but don't scale , use for small networks or specific purposes
Dynamic Routing Protocols¶
Dynamic routing protocols automatically exchange routing information
Types:
Distance Vector: RIP , EIGRP Link State: OSPF , IS-IS Path Vector: BGP
Interior vs Exterior:
IGP (Interior Gateway Protocol): Within AS (RIP , OSPF , EIGRP) EGP (Exterior Gateway Protocol): Between AS (BGP)
Metrics:
RIP: Hop count OSPF: Cost (bandwidth-based) EIGRP: Composite (bandwidth , delay , load , reliability) BGP: Path attributes
Convergence:
Time for all routers to agree on topology , faster convergence is better
The reality:
Dynamic routing is essential for large networks , choose protocol based on requirements
RIP Protocol¶
RIP (Routing Information Protocol) is the oldest and simplest
Characteristics:
Distance vector protocol , uses hop count as metric , maximum 15 hops (16 is unreachable) , updates every 30 seconds , slow convergence
RIP Versions:
RIPv1: Classful , broadcast , no authentication RIPv2: Classless , multicast (224.0.0.9) , authentication support
Configuring RIP on Linux (using FRR):
# Install FRR
apt install frr
# Enable RIP daemon
sed -i 's/ripd=no/ripd=yes/' /etc/frr/daemons
# Start FRR
systemctl start frr
# Configure RIP
vtysh
configure terminal
router rip
version 2
network 192.168.1.0/24
network 10.0.0.0/8
passive-interface eth0
exit
exit
write memory
RIP Timers:
Update: 30 seconds Invalid: 180 seconds Holddown: 180 seconds Flush: 240 seconds
RIP Problems:
Slow convergence , count to infinity , routing loops , limited to 15 hops
Loop Prevention:
Split horizon , route poisoning , poison reverse , holddown timers
The reality:
RIP is obsolete , don't use it in production , but you need to know it for exams
OSPF Protocol¶
OSPF (Open Shortest Path First) is the most common IGP
Characteristics:
Link state protocol , uses cost as metric (based on bandwidth) , fast convergence , supports VLSM and CIDR , hierarchical design with areas
OSPF Areas:
Area 0 (backbone): Required , all other areas connect to it Regular areas: Connect to Area 0 Stub areas: Don't receive external routes Totally stubby: Only default route NSSA: Allows limited external routes
OSPF Packet Types:
Hello: Neighbor discovery DBD: Database description LSR: Link state request LSU: Link state update LSAck: Link state acknowledgment
OSPF Neighbor States:
Down , Init , 2-Way , ExStart , Exchange , Loading , Full
Configuring OSPF on Linux (FRR):
# Enable OSPF daemon
sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons
systemctl restart frr
# Configure OSPF
vtysh
configure terminal
router ospf
ospf router-id 1.1.1.1
network 192.168.1.0/24 area 0
network 10.0.0.0/8 area 1
passive-interface eth0
exit
exit
write memory
# Show OSPF neighbors
show ip ospf neighbor
# Show OSPF database
show ip ospf database
# Show OSPF routes
show ip route ospf
OSPF Cost Calculation:
Cost = Reference Bandwidth / Interface Bandwidth
Default reference: 100 Mbps
Gigabit interface: 100/1000 = 1
Fast Ethernet: 100/100 = 1
OSPF Authentication:
# Configure interface authentication
interface eth0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 MyPassword
The reality:
OSPF is the standard for enterprise networks , learn it well

EIGRP Protocol¶
EIGRP (Enhanced Interior Gateway Routing Protocol) is Cisco's advanced protocol
Characteristics:
Advanced distance vector (hybrid) , uses composite metric , fast convergence , supports VLSM and CIDR , unequal cost load balancing
EIGRP Metric:
Metric = [K1*Bandwidth + (K2*Bandwidth)/(256-Load) + K3*Delay] * [K5/(Reliability+K4)]
Default: K1=1, K2=0, K3=1, K4=0, K5=0
Simplified: Bandwidth + Delay
EIGRP Tables:
Neighbor table: Adjacent routers Topology table: All routes Routing table: Best routes
EIGRP Packet Types:
Hello: Neighbor discovery Update: Routing updates Query: Route request Reply: Response to query Ack: Acknowledgment
Configuring EIGRP on Linux (FRR):
# Enable EIGRP daemon
sed -i 's/eigrpd=no/eigrpd=yes/' /etc/frr/daemons
systemctl restart frr
# Configure EIGRP
vtysh
configure terminal
router eigrp 100
network 192.168.1.0/24
network 10.0.0.0/8
passive-interface eth0
eigrp router-id 1.1.1.1
exit
exit
write memory
# Show EIGRP neighbors
show ip eigrp neighbors
# Show EIGRP topology
show ip eigrp topology
# Show EIGRP routes
show ip route eigrp
DUAL Algorithm:
Diffusing Update Algorithm , guarantees loop-free paths , uses feasible successors for fast convergence
The reality:
EIGRP is powerful but Cisco proprietary , OSPF is more common in multi-vendor environments
BGP Protocol¶
BGP (Border Gateway Protocol) is the routing protocol of the internet
Characteristics:
Path vector protocol , uses AS path as metric , extremely scalable , policy-based routing , slow convergence (by design)
BGP Types:
eBGP: Between different AS iBGP: Within same AS
BGP Attributes:
Weight: Cisco proprietary , local to router Local Preference: Within AS AS Path: Number of AS to destination Origin: How route was learned MED: Multi-Exit Discriminator Next Hop: Next router
BGP Path Selection:
1. Highest Weight
2. Highest Local Preference
3. Locally originated
4. Shortest AS Path
5. Lowest Origin
6. Lowest MED
7. eBGP over iBGP
8. Lowest IGP metric to next hop
9. Oldest route
10. Lowest router ID
Configuring BGP on Linux (FRR):
# Enable BGP daemon
sed -i 's/bgpd=no/bgpd=yes/' /etc/frr/daemons
systemctl restart frr
# Configure BGP
vtysh
configure terminal
router bgp 65001
bgp router-id 1.1.1.1
neighbor 10.0.0.1 remote-as 65002
network 192.168.1.0/24
exit
exit
write memory
# Show BGP summary
show ip bgp summary
# Show BGP table
show ip bgp
# Show specific route
show ip bgp 8.8.8.8
BGP Communities:
Tag routes for policy application , well-known communities: no-export , no-advertise , internet
The reality:
BGP is complex and powerful , essential for ISPs and large enterprises , don't use it unless you need it
Route Redistribution¶
Redistribution shares routes between different routing protocols
Why Redistribute:
Migrating between protocols , connecting different routing domains , integrating acquired networks
Redistribution Issues:
Routing loops , suboptimal routing , metric incompatibility
Configuring Redistribution (FRR):
# Redistribute OSPF into RIP
router rip
redistribute ospf metric 5
# Redistribute RIP into OSPF
router ospf
redistribute rip metric 100 metric-type 1
# Redistribute connected routes
router ospf
redistribute connected
Route Maps:
Control what gets redistributed
# Create route map
route-map OSPF-TO-RIP permit 10
match ip address prefix-list ALLOWED
set metric 5
# Apply to redistribution
router rip
redistribute ospf route-map OSPF-TO-RIP
The reality:
Redistribution is dangerous , plan carefully and use route maps to control it
Policy Based Routing¶
PBR routes based on criteria other than destination
Use Cases:
Load balancing , traffic engineering , QoS , source-based routing
Configuring PBR on Linux:
# Create routing table
echo "200 custom" >> /etc/iproute2/rt_tables
# Add rule based on source
ip rule add from 192.168.1.0/24 table custom
# Add routes to custom table
ip route add default via 10.0.0.1 table custom
# Add rule based on fwmark
iptables -t mangle -A PREROUTING -s 192.168.1.0/24 -j MARK --set-mark 1
ip rule add fwmark 1 table custom
# Show rules
ip rule show
# Show specific table
ip route show table custom
Advanced PBR:
# Route based on destination port
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 2
ip rule add fwmark 2 table web_traffic
ip route add default via 10.0.0.2 table web_traffic
# Route based on protocol
ip rule add ipproto tcp table tcp_traffic
The reality:
PBR is powerful for traffic engineering but complex to manage

Transport Layer Mastery¶
TCP Protocol Deep Dive¶
TCP (Transmission Control Protocol) provides reliable delivery
TCP Characteristics:
Connection-oriented , reliable delivery , ordered delivery , flow control , congestion control , error detection and correction
TCP Header Structure:
Source Port (16 bits): 0-65535
Destination Port (16 bits): 0-65535
Sequence Number (32 bits): Byte position in stream
Acknowledgment Number (32 bits): Next expected byte
Data Offset (4 bits): Header length in 32-bit words
Reserved (3 bits): Must be zero
Flags (9 bits): NS CWR ECE URG ACK PSH RST SYN FIN
Window Size (16 bits): Receive window (flow control)
Checksum (16 bits): Error detection
Urgent Pointer (16 bits): Urgent data offset
Options (variable): MSS, Window Scale, SACK, Timestamps
TCP Flags:
SYN: Synchronize (initiate connection) ACK: Acknowledge received data FIN: Finish (close connection gracefully) RST: Reset (abort connection) PSH: Push data to application immediately URG: Urgent data present ECE: ECN Echo (congestion notification) CWR: Congestion Window Reduced NS: Nonce Sum (ECN protection)
Analyzing TCP on Linux:
# Capture TCP traffic
tcpdump -i eth0 'tcp' -w tcp_capture.pcap
# Show TCP connections
ss -tan
# Show TCP statistics
ss -s
# Show specific connection
ss -tan dst 8.8.8.8
# Show TCP with process info
ss -tanp
# Netstat alternative
netstat -tan
The reality:
TCP is complex but essential , understanding it deeply helps with troubleshooting and security
TCP Three Way Handshake¶
Connection establishment uses three-way handshake
The Process:
Client -> Server: SYN
Seq = X (random ISN)
Flags: SYN
Server -> Client: SYN-ACK
Seq = Y (server's ISN)
Ack = X + 1
Flags: SYN, ACK
Client -> Server: ACK
Seq = X + 1
Ack = Y + 1
Flags: ACK
Connection ESTABLISHED
Initial Sequence Number (ISN):
Random 32-bit number , prevents old packets from being accepted , changes with each connection
Capturing Handshake:
# Capture SYN packets
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
# Capture SYN-ACK
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) == (tcp-syn|tcp-ack)'
# Watch handshake in Wireshark
# Filter: tcp.flags.syn==1 or tcp.flags.syn==1 && tcp.flags.ack==1
SYN Flood Attack:
Attacker sends many SYN packets , server allocates resources , never completes handshake , server runs out of resources
SYN Cookies Defense:
# Enable SYN cookies
sysctl -w net.ipv4.tcp_syncookies=1
# Make permanent
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf
The reality:
Understanding the handshake is crucial for both troubleshooting and attacking

TCP Flow Control¶
Flow control prevents sender from overwhelming receiver
Window Size:
Receiver advertises window size in TCP header , sender can't send more than window allows , window size adjusts dynamically
Sliding Window:
Sender can send multiple packets before ACK
Window slides forward as ACKs received
Example with window size 3:
Send packets 1, 2, 3
Receive ACK for 1
Send packet 4
Receive ACK for 2
Send packet 5
...
Window Scaling:
Original window size: 16 bits (65535 bytes max) Window scaling option: Multiply by scale factor (up to 1GB)
# Enable window scaling
sysctl -w net.ipv4.tcp_window_scaling=1
# Set max window size
sysctl -w net.core.rmem_max=134217728 # 128MB
sysctl -w net.core.wmem_max=134217728
Zero Window:
Receiver buffer full , advertises window size 0 , sender stops sending , waits for window update
Tuning TCP Windows:
# Show current settings
sysctl net.ipv4.tcp_rmem
sysctl net.ipv4.tcp_wmem
# Set TCP buffer sizes (min, default, max)
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
The reality:
Proper window sizing is crucial for performance , especially on high-latency links
TCP Congestion Control¶
Congestion control prevents network overload
Algorithms:
Slow Start , Congestion Avoidance , Fast Retransmit , Fast Recovery
Slow Start:
Start with small congestion window (cwnd)
Double cwnd for each ACK
Continue until threshold reached
Then switch to congestion avoidance
Congestion Avoidance:
Increase cwnd linearly
Add 1 MSS per RTT
Continue until packet loss detected
Fast Retransmit:
Receive 3 duplicate ACKs
Immediately retransmit lost packet
Don't wait for timeout
Fast Recovery:
After fast retransmit
Reduce cwnd by half
Continue with congestion avoidance
Congestion Control Algorithms:
# Show available algorithms
sysctl net.ipv4.tcp_available_congestion_control
# Show current algorithm
sysctl net.ipv4.tcp_congestion_control
# Set algorithm
sysctl -w net.ipv4.tcp_congestion_control=bbr
# Common algorithms:
# - reno: Classic algorithm
# - cubic: Default on Linux (better for high-speed networks)
# - bbr: Google's algorithm (best for varying conditions)
TCP Tuning for Performance:
# Enable selective acknowledgments
sysctl -w net.ipv4.tcp_sack=1
# Enable timestamps
sysctl -w net.ipv4.tcp_timestamps=1
# Increase max SYN backlog
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
# Reduce FIN timeout
sysctl -w net.ipv4.tcp_fin_timeout=30
# Enable TCP fast open
sysctl -w net.ipv4.tcp_fastopen=3
The reality:
Understanding congestion control helps optimize network performance
UDP Protocol¶
UDP (User Datagram Protocol) is simple and fast
UDP Characteristics:
Connectionless , unreliable , no ordering , no flow control , minimal overhead , fast
UDP Header:
Source Port (16 bits): 0-65535
Destination Port (16 bits): 0-65535
Length (16 bits): Header + data length
Checksum (16 bits): Error detection (optional in IPv4)
Data (variable): Payload
When to Use UDP:
Real-time applications (VoIP , video streaming) , DNS queries , DHCP , SNMP , gaming , broadcast/multicast
UDP on Linux:
# Show UDP connections
ss -uan
# Capture UDP traffic
tcpdump -i eth0 'udp'
# Send UDP packet with netcat
echo "test" | nc -u 192.168.1.100 5000
# Listen on UDP port
nc -ul 5000
UDP Flood Attack:
Attacker sends many UDP packets , consumes bandwidth , overwhelms target
Rate Limiting UDP:
# Limit UDP packets with iptables
iptables -A INPUT -p udp -m limit --limit 100/s -j ACCEPT
iptables -A INPUT -p udp -j DROP
The reality:
UDP is perfect when speed matters more than reliability
Port Numbers¶
Ports identify applications on a host
Port Ranges:
Well-known ports: 0-1023 (require root) Registered ports: 1024-49151 Dynamic/ephemeral ports: 49152-65535
Common Well-Known Ports:
20/21: FTP (data/control)
22: SSH
23: Telnet
25: SMTP
53: DNS
67/68: DHCP (server/client)
80: HTTP
110: POP3
143: IMAP
161/162: SNMP
443: HTTPS
445: SMB
3306: MySQL
3389: RDP
5432: PostgreSQL
5900: VNC
6379: Redis
8080: HTTP alternate
27017: MongoDB
Checking Ports:
# Show listening ports
ss -tuln
# Check if port is open
nc -zv 192.168.1.100 80
# Scan ports with nmap
nmap -p 1-1000 192.168.1.100
# Check what's using a port
lsof -i :80
# or
fuser 80/tcp
Opening Ports in Firewall:
# iptables
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# firewalld
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
# ufw
ufw allow 80/tcp
The reality:
Understanding ports is fundamental for networking and security
Network Services¶
DHCP¶
DHCP (Dynamic Host Configuration Protocol) automatically assigns IP addresses
DHCP Process (DORA):
1. Discover: Client broadcasts "I need an IP"
2. Offer: Server offers IP address
3. Request: Client requests offered IP
4. Acknowledge: Server confirms assignment
DHCP Lease:
IP address assigned for specific time , client must renew before expiration , typical lease: 24 hours
Installing DHCP Server on Linux:
# Install ISC DHCP server
apt install isc-dhcp-server
# Configure /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "example.local";
default-lease-time 86400;
max-lease-time 172800;
}
# Static assignment
host server1 {
hardware ethernet aa:bb:cc:dd:ee:ff;
fixed-address 192.168.1.50;
}
# Start DHCP server
systemctl start isc-dhcp-server
systemctl enable isc-dhcp-server
# Check leases
cat /var/lib/dhcp/dhcpd.leases
DHCP Client:
# Request IP address
dhclient eth0
# Release IP address
dhclient -r eth0
# Show lease info
cat /var/lib/dhcp/dhclient.leases
DHCP Relay:
Forwards DHCP requests between subnets
# Install relay
apt install isc-dhcp-relay
# Configure /etc/default/isc-dhcp-relay
SERVERS="192.168.1.10"
INTERFACES="eth0 eth1"
# Start relay
systemctl start isc-dhcp-relay
The reality:
DHCP is essential for managing IP addresses at scale
DNS¶
DNS (Domain Name System) resolves names to IP addresses
DNS Hierarchy:
Root servers (.)
|
TLD servers (.com, .org, .net)
|
Authoritative servers (example.com)
|
Subdomains (www.example.com)
DNS Record Types:
A: IPv4 address
AAAA: IPv6 address
CNAME: Canonical name (alias)
MX: Mail exchange
NS: Name server
PTR: Pointer (reverse DNS)
SOA: Start of authority
TXT: Text records
SRV: Service locator
CAA: Certificate authority authorization
Installing DNS Server (BIND):
# Install BIND
apt install bind9 bind9utils
# Configure /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8;
8.8.4.4;
};
dnssec-validation auto;
listen-on { any; };
allow-query { any; };
};
# Create zone file /etc/bind/db.example.com
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.10
www IN A 192.168.1.20
mail IN A 192.168.1.30
@ IN MX 10 mail.example.com.
# Add zone to /etc/bind/named.conf.local
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};
# Start BIND
systemctl start bind9
systemctl enable bind9
# Check configuration
named-checkconf
named-checkzone example.com /etc/bind/db.example.com
DNS Client Tools:
# Query DNS
dig example.com
dig @8.8.8.8 example.com
# Specific record type
dig example.com MX
dig example.com AAAA
# Reverse DNS
dig -x 8.8.8.8
# Trace query path
dig +trace example.com
# nslookup (legacy)
nslookup example.com
# host command
host example.com
DNS Caching:
# Install dnsmasq (lightweight DNS cache)
apt install dnsmasq
# Configure /etc/dnsmasq.conf
server=8.8.8.8
server=8.8.4.4
cache-size=1000
# Start dnsmasq
systemctl start dnsmasq
The reality:
DNS is critical infrastructure , understanding it is essential

NAT and PAT¶
NAT (Network Address Translation) translates IP addresses
Why NAT:
IPv4 address conservation , security (hides internal IPs) , allows private IPs to access internet
NAT Types:
Static NAT: One-to-one mapping Dynamic NAT: Pool of public IPs PAT (Port Address Translation): Many-to-one with ports (most common)
Configuring NAT on Linux:
# Enable IP forwarding
sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# Basic NAT (masquerade)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# NAT with specific source
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
# Static NAT (SNAT)
iptables -t nat -A POSTROUTING -s 192.168.1.100 -j SNAT --to-source 203.0.113.10
# Port forwarding (DNAT)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.20:80
# Save rules
iptables-save > /etc/iptables/rules.v4
Viewing NAT Connections:
# Show NAT table
iptables -t nat -L -n -v
# Show connection tracking
conntrack -L
# Show NAT statistics
cat /proc/net/nf_conntrack
NAT Limitations:
Breaks end-to-end connectivity , complicates some protocols (FTP , SIP) , connection tracking overhead
The reality:
NAT is everywhere , understanding it is crucial for troubleshooting
NTP¶
NTP (Network Time Protocol) synchronizes clocks
Why Time Sync Matters:
Logging and correlation , authentication (Kerberos) , certificates , distributed systems
Installing NTP:
# Install chrony (modern NTP)
apt install chrony
# Configure /etc/chrony/chrony.conf
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
# Allow clients
allow 192.168.1.0/24
# Start chrony
systemctl start chronyd
systemctl enable chronyd
# Check status
chronyc tracking
chronyc sources
Manual Time Sync:
# Sync time immediately
chronyc makestep
# Set time manually
timedatectl set-time "2024-01-01 12:00:00"
# Set timezone
timedatectl set-timezone America/New_York
The reality:
Accurate time is more important than you think
SNMP¶
SNMP (Simple Network Management Protocol) monitors network devices
SNMP Versions:
SNMPv1: Insecure , community strings in clear text SNMPv2c: Still insecure , better performance SNMPv3: Secure , authentication and encryption
Installing SNMP:
# Install SNMP daemon
apt install snmpd
# Configure /etc/snmp/snmpd.conf
# SNMPv2c
rocommunity public 192.168.1.0/24
rwcommunity private 192.168.1.10
# SNMPv3
createUser monitor SHA myAuthPass AES myPrivPass
rouser monitor priv
# Start SNMP
systemctl start snmpd
systemctl enable snmpd
SNMP Client Tools:
# Install tools
apt install snmp
# Query device (SNMPv2c)
snmpwalk -v2c -c public 192.168.1.1
# Query specific OID
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.1.0
# SNMPv3
snmpwalk -v3 -u monitor -l authPriv -a SHA -A myAuthPass -x AES -X myPrivPass 192.168.1.1
The reality:
SNMP is standard for network monitoring , use SNMPv3 for security
Syslog¶
Syslog centralizes logging
Syslog Facilities:
0: kernel
1: user
2: mail
3: daemon
4: auth
5: syslog
6: lpr
7: news
16-23: local0-local7
Syslog Severities:
0: Emergency
1: Alert
2: Critical
3: Error
4: Warning
5: Notice
6: Informational
7: Debug
Configuring Syslog Server:
# Install rsyslog
apt install rsyslog
# Configure /etc/rsyslog.conf
# Enable UDP reception
module(load="imudp")
input(type="imudp" port="514")
# Enable TCP reception
module(load="imtcp")
input(type="imtcp" port="514")
# Template for remote logs
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
# Start rsyslog
systemctl restart rsyslog
Sending Logs:
# Configure client /etc/rsyslog.conf
*.* @192.168.1.10:514 # UDP
*.* @@192.168.1.10:514 # TCP
# Test logging
logger -p local0.info "Test message"
The reality:
Centralized logging is essential for security and troubleshooting
Application Layer Protocols¶
HTTP and HTTPS¶
HTTP (Hypertext Transfer Protocol) is the web's foundation
HTTP Methods:
GET: Retrieve resource
POST: Submit data
PUT: Update/create resource
DELETE: Remove resource
HEAD: Get headers only
OPTIONS: Get supported methods
PATCH: Partial update
HTTP Status Codes:
1xx: Informational
2xx: Success (200 OK, 201 Created)
3xx: Redirection (301 Moved, 302 Found, 304 Not Modified)
4xx: Client Error (400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found)
5xx: Server Error (500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable)
Testing HTTP:
# Simple request with curl
curl http://example.com
# Show headers
curl -I http://example.com
# POST data
curl -X POST -d "param1=value1" http://example.com/api
# Custom headers
curl -H "Authorization: Bearer token" http://example.com/api
# Save response
curl -o output.html http://example.com
# Follow redirects
curl -L http://example.com
# Show request/response
curl -v http://example.com
HTTPS (HTTP Secure):
HTTP over TLS/SSL , encrypts traffic , authenticates server
Testing HTTPS:
# Check certificate
openssl s_client -connect example.com:443
# Show certificate details
openssl s_client -connect example.com:443 | openssl x509 -text
# Test specific TLS version
openssl s_client -connect example.com:443 -tls1_2
The reality:
HTTP is everywhere , understanding it is crucial for web security
FTP and SFTP¶
FTP (File Transfer Protocol) transfers files
FTP Modes:
Active FTP: Server initiates data connection Passive FTP: Client initiates data connection (firewall-friendly)
FTP Server:
# Install vsftpd
apt install vsftpd
# Configure /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
pasv_min_port=40000
pasv_max_port=40100
# Start vsftpd
systemctl start vsftpd
systemctl enable vsftpd
FTP Client:
# Connect to FTP server
ftp 192.168.1.100
# Commands:
# ls - list files
# cd - change directory
# get - download file
# put - upload file
# mget - download multiple
# mput - upload multiple
# binary - set binary mode
# ascii - set ASCII mode
# bye - disconnect
SFTP (SSH File Transfer Protocol):
Secure alternative to FTP , uses SSH
# Connect to SFTP server
sftp user@192.168.1.100
# Same commands as FTP
# Plus: chmod, chown, mkdir, rmdir
The reality:
FTP is insecure , use SFTP or SCP instead
SSH¶
SSH (Secure Shell) provides secure remote access
Installing SSH Server:
# Install OpenSSH server
apt install openssh-server
# Configure /etc/ssh/sshd_config
Port 22
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
X11Forwarding no
AllowUsers user1 user2
# Start SSH
systemctl start sshd
systemctl enable sshd
SSH Client:
# Connect to server
ssh user@192.168.1.100
# Specific port
ssh -p 2222 user@192.168.1.100
# Execute command
ssh user@192.168.1.100 'ls -la'
# Copy files (SCP)
scp file.txt user@192.168.1.100:/tmp/
scp user@192.168.1.100:/tmp/file.txt ./
# Recursive copy
scp -r directory/ user@192.168.1.100:/tmp/
SSH Key Authentication:
# Generate key pair
ssh-keygen -t ed25519 -C "your_email@example.com"
# Copy public key to server
ssh-copy-id user@192.168.1.100
# Or manually
cat ~/.ssh/id_ed25519.pub | ssh user@192.168.1.100 'cat >> ~/.ssh/authorized_keys'
# Disable password authentication
# /etc/ssh/sshd_config
PasswordAuthentication no
SSH Tunneling:
# Local port forwarding
ssh -L 8080:localhost:80 user@192.168.1.100
# Remote port forwarding
ssh -R 8080:localhost:80 user@192.168.1.100
# Dynamic port forwarding (SOCKS proxy)
ssh -D 1080 user@192.168.1.100
The reality:
SSH is essential for secure remote administration
Telnet¶
Telnet provides insecure remote access
Why Telnet is Bad:
Everything in clear text , passwords visible , no encryption , trivial to intercept
Using Telnet:
# Connect to server
telnet 192.168.1.100
# Specific port (useful for testing)
telnet 192.168.1.100 80
# Test SMTP
telnet mail.example.com 25
The reality:
Never use Telnet for actual remote access , only for testing services
SMTP POP3 IMAP¶
Email protocols
SMTP (Simple Mail Transfer Protocol):
Sends email , port 25 (or 587 with STARTTLS)
# Test SMTP
telnet mail.example.com 25
EHLO example.com
MAIL FROM:<sender@example.com>
RCPT TO:<recipient@example.com>
DATA
Subject: Test
Test message
.
QUIT
POP3 (Post Office Protocol):
Downloads email , deletes from server , port 110 (or 995 with SSL)
# Test POP3
telnet mail.example.com 110
USER username
PASS password
LIST
RETR 1
QUIT
IMAP (Internet Message Access Protocol):
Syncs email , keeps on server , port 143 (or 993 with SSL)
# Test IMAP
telnet mail.example.com 143
A1 LOGIN username password
A2 LIST "" "*"
A3 SELECT INBOX
A4 FETCH 1 BODY[]
A5 LOGOUT
The reality:
Understanding email protocols helps with troubleshooting and security
SMB and NFS¶
File sharing protocols
SMB (Server Message Block):
Windows file sharing , also works on Linux
# Install Samba
apt install samba
# Configure /etc/samba/smb.conf
[share]
path = /srv/samba/share
browseable = yes
read only = no
guest ok = no
valid users = user1
# Create Samba user
smbpasswd -a user1
# Start Samba
systemctl start smbd
systemctl enable smbd
# Mount SMB share
mount -t cifs //192.168.1.100/share /mnt -o username=user1
NFS (Network File System):
Unix/Linux file sharing
# Install NFS server
apt install nfs-kernel-server
# Configure /etc/exports
/srv/nfs 192.168.1.0/24(rw,sync,no_subtree_check)
# Export shares
exportfs -a
# Start NFS
systemctl start nfs-kernel-server
# Mount NFS share
mount -t nfs 192.168.1.100:/srv/nfs /mnt
The reality:
SMB and NFS are standard for file sharing
SMB and NFS are standard for file sharing
Network Security¶
Access Control Lists¶
ACLs filter traffic based on rules
Standard ACLs:
Filter based on source IP only
Extended ACLs:
Filter based on source IP , destination IP , protocol , port
ACLs on Linux (iptables):
# Block specific IP
iptables -A INPUT -s 192.168.1.50 -j DROP
# Allow specific IP
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
# Block specific port
iptables -A INPUT -p tcp --dport 23 -j DROP
# Allow SSH from specific network
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
# Default deny
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
The reality:
ACLs are fundamental for network security
Firewalls¶
Firewalls control traffic between networks
Firewall Types:
Packet filtering: Layer 3/4 (iptables) Stateful: Tracks connections Application: Layer 7 inspection Next-gen: IPS , malware detection , deep packet inspection
iptables Basics:
# List rules
iptables -L -n -v
# Flush all rules
iptables -F
# Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow loopback
iptables -A INPUT -i lo -j ACCEPT
# Allow SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allow HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Drop everything else
iptables -P INPUT DROP
# Save rules
iptables-save > /etc/iptables/rules.v4
nftables (modern replacement):
# Create table
nft add table inet filter
# Create chains
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add chain inet filter forward { type filter hook forward priority 0 \; policy drop \; }
nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }
# Add rules
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input iif lo accept
nft add rule inet filter input tcp dport 22 accept
nft add rule inet filter input tcp dport { 80, 443 } accept
# List rules
nft list ruleset
# Save rules
nft list ruleset > /etc/nftables.conf
The reality:
Firewalls are your first line of defense , configure them properly

VPN Technologies¶
VPNs create secure tunnels over untrusted networks
VPN Types:
Site-to-Site: Connects networks Remote Access: Connects users to network SSL VPN: Browser-based IPSec VPN: Network-level
OpenVPN Setup:
# Install OpenVPN
apt install openvpn easy-rsa
# Setup PKI
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh
# Server config /etc/openvpn/server.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
# Start OpenVPN
systemctl start openvpn@server
systemctl enable openvpn@server
WireGuard (modern alternative):
# Install WireGuard
apt install wireguard
# Generate keys
wg genkey | tee privatekey | wg pubkey > publickey
# Server config /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <server_private_key>
[Peer]
PublicKey = <client_public_key>
AllowedIPs = 10.0.0.2/32
# Start WireGuard
wg-quick up wg0
systemctl enable wg-quick@wg0
The reality:
VPNs are essential for secure remote access
IPSec¶
IPSec provides network-level encryption
IPSec Modes:
Transport: Encrypts payload only Tunnel: Encrypts entire packet
IPSec Protocols:
AH (Authentication Header): Authentication only ESP (Encapsulating Security Payload): Encryption and authentication
StrongSwan IPSec:
# Install StrongSwan
apt install strongswan
# Configure /etc/ipsec.conf
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
conn site-to-site
left=203.0.113.1
leftsubnet=192.168.1.0/24
right=203.0.113.2
rightsubnet=192.168.2.0/24
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start
# Configure /etc/ipsec.secrets
203.0.113.1 203.0.113.2 : PSK "your_pre_shared_key"
# Start IPSec
ipsec start
ipsec status
The reality:
IPSec is complex but powerful for site-to-site VPNs
SSL and TLS¶
SSL/TLS encrypts application-layer traffic
TLS Versions:
SSL 2.0/3.0: Broken , never use TLS 1.0/1.1: Deprecated TLS 1.2: Current standard TLS 1.3: Latest , fastest
Generating Certificates:
# Self-signed certificate
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/server.key \
-out /etc/ssl/certs/server.crt
# Certificate signing request
openssl req -new -newkey rsa:2048 -nodes \
-keyout server.key -out server.csr
# View certificate
openssl x509 -in server.crt -text -noout
Testing TLS:
# Test connection
openssl s_client -connect example.com:443
# Test specific version
openssl s_client -connect example.com:443 -tls1_2
# Check certificate expiration
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
The reality:
TLS is everywhere , understanding it is crucial
Network Segmentation¶
Segmentation isolates network traffic
Why Segment:
Security (contain breaches) , performance (reduce broadcast domains) , compliance (PCI-DSS , HIPAA)
Segmentation Methods:
VLANs , firewalls , routers , separate physical networks
Example Segmentation:
VLAN 10: Management (192.168.10.0/24)
VLAN 20: Servers (192.168.20.0/24)
VLAN 30: Workstations (192.168.30.0/24)
VLAN 40: Guest WiFi (192.168.40.0/24)
VLAN 50: IoT devices (192.168.50.0/24)
Firewall rules:
- Management can access everything
- Servers can't initiate to workstations
- Workstations can access servers
- Guest WiFi internet only
- IoT devices isolated
The reality:
Proper segmentation limits damage from breaches
Port Security¶
Port security restricts what can connect to switch ports
MAC Address Limiting:
Limit number of MAC addresses per port , prevent MAC flooding attacks
Sticky MAC:
Learn and save MAC addresses , persist across reboots
Linux Bridge Port Security:
# Limit MAC addresses on bridge port
# Using ebtables
ebtables -A FORWARD -i eth0 -s ! aa:bb:cc:dd:ee:ff -j DROP
The reality:
Port security prevents unauthorized device connections
DHCP Snooping¶
DHCP snooping prevents rogue DHCP servers
How it Works:
Trusted ports: Can send DHCP offers (legitimate servers) Untrusted ports: Can only send DHCP requests (clients) Builds binding table: IP , MAC , port , VLAN
The reality:
DHCP snooping prevents rogue DHCP server attacks
Dynamic ARP Inspection¶
DAI prevents ARP spoofing
How it Works:
Uses DHCP snooping binding table , validates ARP packets , drops invalid ARP packets
The reality:
DAI stops ARP poisoning attacks
IP Source Guard¶
IPSG prevents IP spoofing
How it Works:
Uses DHCP snooping binding table , filters traffic based on IP-MAC-port binding , drops packets with wrong source IP
The reality:
IPSG prevents IP address spoofing
Quality of Service¶
QoS Fundamentals¶
QoS prioritizes important traffic
Why QoS:
VoIP needs low latency , video needs consistent bandwidth , bulk transfers can wait
QoS Mechanisms:
Classification , marking , queuing , shaping , policing
The reality:
QoS ensures critical applications work properly
Traffic Classification¶
Classification identifies traffic types
Classification Methods:
Port numbers , IP addresses , DSCP values , deep packet inspection
Linux Traffic Classification:
# Using tc (traffic control)
# Mark HTTP traffic
iptables -t mangle -A POSTROUTING -p tcp --dport 80 -j DSCP --set-dscp 10
# Mark VoIP traffic
iptables -t mangle -A POSTROUTING -p udp --dport 5060 -j DSCP --set-dscp 46
The reality:
Proper classification is the foundation of QoS
Queuing Mechanisms¶
Queuing determines packet transmission order
Queue Types:
FIFO: First in first out (no QoS) Priority Queuing: Strict priority Weighted Fair Queuing: Proportional bandwidth Class-Based Queuing: Multiple queues with weights
Linux Queuing:
# HTB (Hierarchical Token Bucket)
tc qdisc add dev eth0 root handle 1: htb default 30
# Create classes
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 50mbit ceil 100mbit prio 1
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 30mbit ceil 100mbit prio 2
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 20mbit ceil 100mbit prio 3
# Add filters
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:20
The reality:
Queuing ensures important traffic gets through first
Traffic Shaping and Policing¶
Shaping smooths traffic , policing enforces limits
Shaping:
Buffers excess traffic , smooths bursts , no packet drops
Policing:
Drops or marks excess traffic , enforces hard limits
Linux Traffic Shaping:
# Limit bandwidth to 10mbit
tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
# Per-IP shaping
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10mbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.1.100 flowid 1:10
The reality:
Shaping and policing control bandwidth usage
Advanced Topics¶
Multicast¶
Multicast sends to multiple receivers efficiently
Multicast Addresses:
IPv4: 224.0.0.0 - 239.255.255.255 IPv6: ff00::/8
IGMP (Internet Group Management Protocol):
Manages multicast group membership
Configuring Multicast:
# Enable multicast routing
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.conf.all.mc_forwarding=1
# Install multicast routing daemon
apt install smcroute
# Configure /etc/smcroute.conf
mgroup from eth0 group 239.1.1.1
mroute from eth0 group 239.1.1.1 to eth1
# Start smcroute
systemctl start smcroute
Testing Multicast:
# Send multicast
echo "test" | socat - UDP4-DATAGRAM:239.1.1.1:5000
# Receive multicast
socat UDP4-RECVFROM:5000,ip-add-membership=239.1.1.1:eth0,fork -
The reality:
Multicast is efficient for one-to-many communication
IPv6 Transition Mechanisms¶
Transitioning from IPv4 to IPv6
Dual Stack:
Run both IPv4 and IPv6 simultaneously
Tunneling:
6to4 , 6in4 , ISATAP , Teredo
Translation:
NAT64 , DNS64
Configuring Dual Stack:
# Enable IPv6
sysctl -w net.ipv6.conf.all.disable_ipv6=0
# Configure both
ip addr add 192.168.1.100/24 dev eth0
ip addr add 2001:db8::100/64 dev eth0
# Both routes
ip route add default via 192.168.1.1
ip -6 route add default via 2001:db8::1
The reality:
IPv6 transition is slow but necessary
SDN and Network Programmability¶
Software-Defined Networking separates control and data planes
SDN Components:
Controller: Centralized brain Switches: Dumb forwarding devices Southbound API: Controller to switches (OpenFlow) Northbound API: Applications to controller (REST)
OpenFlow:
Protocol for SDN communication
The reality:
SDN is the future of networking in data centers
Network Automation¶
Automate repetitive network tasks
Automation Tools:
Ansible , Python , Netmiko , NAPALM
Ansible Example:
---
- name: Configure network devices
hosts: switches
tasks:
- name: Configure VLANs
ios_vlan:
vlan_id: 10
name: Management
state: present
Python with Netmiko:
from netmiko import ConnectHandler
device = {
'device_type': 'cisco_ios',
'host': '192.168.1.1',
'username': 'admin',
'password': 'password',
}
connection = ConnectHandler(**device)
output = connection.send_command('show ip interface brief')
print(output)
connection.disconnect()
The reality:
Automation saves time and reduces errors
High Availability¶
HA ensures network stays up
HA Techniques:
Redundant hardware , redundant links , redundant paths , failover protocols
HSRP VRRP GLBP:
First Hop Redundancy Protocols
HSRP (Hot Standby Router Protocol):
Cisco proprietary , active/standby , virtual IP
VRRP (Virtual Router Redundancy Protocol):
Standard , active/standby , virtual IP
GLBP (Gateway Load Balancing Protocol):
Cisco proprietary , active/active , load balancing
Keepalived (VRRP on Linux):
# Install keepalived
apt install keepalived
# Configure /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass secret
}
virtual_ipaddress {
192.168.1.100
}
}
# Start keepalived
systemctl start keepalived
The reality:
HA is essential for critical networks

Linux Networking¶
Linux Network Configuration¶
Modern Linux uses multiple tools
Network Managers:
NetworkManager: Desktop/laptop systemd-networkd: Servers netplan: Ubuntu abstraction layer
The reality:
Understanding Linux networking is crucial
Network Interfaces¶
Interfaces connect to networks
Interface Types:
Physical: eth0 , ens33 Virtual: lo , tun , tap VLAN: eth0.10 Bridge: br0 Bond: bond0
Managing Interfaces:
# Show interfaces
ip link show
# Bring up
ip link set dev eth0 up
# Bring down
ip link set dev eth0 down
# Set MTU
ip link set dev eth0 mtu 9000
# Set MAC
ip link set dev eth0 address aa:bb:cc:dd:ee:ff
The reality:
Interface management is fundamental
IP Configuration¶
Assigning IP addresses
Temporary Configuration:
# Add IP
ip addr add 192.168.1.100/24 dev eth0
# Delete IP
ip addr del 192.168.1.100/24 dev eth0
# Show IPs
ip addr show
Persistent Configuration (netplan):
# /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
# Apply
netplan apply
The reality:
Proper IP configuration is essential
Routing Configuration¶
Managing routes
Viewing Routes:
# Show routes
ip route show
# Show specific route
ip route get 8.8.8.8
Adding Routes:
# Add default route
ip route add default via 192.168.1.1
# Add network route
ip route add 10.0.0.0/8 via 192.168.1.254
# Add with metric
ip route add 10.0.0.0/8 via 192.168.1.254 metric 100
The reality:
Routing configuration determines packet paths
Bridge Configuration¶
Bridges connect network segments
Creating Bridge:
# Create bridge
ip link add name br0 type bridge
# Add interfaces
ip link set dev eth0 master br0
ip link set dev eth1 master br0
# Bring up
ip link set dev br0 up
# Show bridge
bridge link show
The reality:
Bridges are essential for VMs and containers
VLAN Configuration on Linux¶
VLANs on Linux systems
Creating VLANs:
# Load module
modprobe 8021q
# Create VLAN
ip link add link eth0 name eth0.10 type vlan id 10
# Configure IP
ip addr add 192.168.10.1/24 dev eth0.10
# Bring up
ip link set dev eth0.10 up
The reality:
VLAN configuration enables network segmentation
Bonding and Teaming¶
Combine interfaces for redundancy/bandwidth
Bonding:
# Load module
modprobe bonding
# Create bond
ip link add bond0 type bond mode 802.3ad
# Add slaves
ip link set dev eth0 master bond0
ip link set dev eth1 master bond0
# Configure
ip addr add 192.168.1.10/24 dev bond0
ip link set dev bond0 up
The reality:
Bonding provides redundancy and increased bandwidth
iptables and nftables¶
Linux firewalls
iptables Tables:
filter: Packet filtering nat: Network address translation mangle: Packet modification raw: Connection tracking exemption
iptables Chains:
INPUT: Incoming packets OUTPUT: Outgoing packets FORWARD: Routed packets PREROUTING: Before routing POSTROUTING: After routing
Basic iptables:
# Allow SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allow established
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Drop everything else
iptables -P INPUT DROP
The reality:
iptables/nftables are essential for Linux security
Network Namespaces¶
Namespaces isolate network stacks
Creating Namespace:
# Create namespace
ip netns add ns1
# Add interface to namespace
ip link set dev veth1 netns ns1
# Configure in namespace
ip netns exec ns1 ip addr add 10.0.0.1/24 dev veth1
ip netns exec ns1 ip link set dev veth1 up
# Execute command in namespace
ip netns exec ns1 ping 10.0.0.2
The reality:
Namespaces enable container networking
Network Tools and Troubleshooting¶
ping¶
Tests connectivity
# Basic ping
ping 8.8.8.8
# Count
ping -c 4 8.8.8.8
# Interval
ping -i 0.2 8.8.8.8
# Packet size
ping -s 1000 8.8.8.8
# Don't fragment
ping -M do -s 1472 8.8.8.8
# Flood ping (root)
ping -f 8.8.8.8
The reality:
ping is the first troubleshooting tool
traceroute¶
Shows packet path
# Traceroute
traceroute 8.8.8.8
# UDP (default)
traceroute -U 8.8.8.8
# ICMP
traceroute -I 8.8.8.8
# TCP
traceroute -T -p 80 8.8.8.8
# MTR (better traceroute)
mtr 8.8.8.8
The reality:
traceroute shows where packets go
netstat and ss¶
Show network connections
# Show all connections
ss -tan
# Show listening ports
ss -tuln
# Show with process
ss -tanp
# Show statistics
ss -s
# netstat (legacy)
netstat -tan
netstat -tuln
The reality:
ss is essential for connection troubleshooting
ip command¶
Swiss army knife of networking
# Show everything
ip addr
ip link
ip route
ip neigh
# Detailed info
ip -s link show eth0
ip -d link show
# IPv6
ip -6 addr
ip -6 route
The reality:
ip command does everything
tcpdump¶
Capture packets
# Capture on interface
tcpdump -i eth0
# Write to file
tcpdump -i eth0 -w capture.pcap
# Read from file
tcpdump -r capture.pcap
# Specific host
tcpdump -i eth0 host 192.168.1.100
# Specific port
tcpdump -i eth0 port 80
# Complex filter
tcpdump -i eth0 'tcp port 80 and host 192.168.1.100'
The reality:
tcpdump captures everything
Wireshark¶
GUI packet analyzer
Filters:
ip.addr == 192.168.1.100
tcp.port == 80
http.request.method == "POST"
dns.qry.name contains "example"
The reality:
Wireshark makes packet analysis visual
nmap¶
Network scanner
# Ping scan
nmap -sn 192.168.1.0/24
# Port scan
nmap 192.168.1.100
# Specific ports
nmap -p 80,443 192.168.1.100
# Service detection
nmap -sV 192.168.1.100
# OS detection
nmap -O 192.168.1.100
# Aggressive scan
nmap -A 192.168.1.100
The reality:
nmap discovers everything
netcat¶
Network Swiss army knife
# Listen on port
nc -l 5000
# Connect to port
nc 192.168.1.100 5000
# Port scan
nc -zv 192.168.1.100 1-1000
# Transfer file
# Receiver
nc -l 5000 > file.txt
# Sender
nc 192.168.1.100 5000 < file.txt
The reality:
netcat does everything networking
Troubleshooting Methodology¶
Systematic approach to problems
Steps:
1. Define the problem
2. Gather information
3. Analyze information
4. Eliminate possibilities
5. Formulate hypothesis
6. Test hypothesis
7. Solve problem
8. Document solution
OSI Model Approach:
Start at Layer 1 and work up:
1. Physical: Cable plugged in?
2. Data Link: Link up? MAC address correct?
3. Network: IP configured? Route exists?
4. Transport: Port open? Firewall blocking?
5. Session/Presentation: Encryption working?
6. Application: Service running? Config correct?
The reality:
Systematic troubleshooting saves time
Network Design and Architecture¶
Network Design Principles¶
Good design prevents problems
Principles:
Hierarchical design , redundancy , scalability , security , simplicity
The reality:
Good design is invisible
Hierarchical Network Design¶
Three-tier architecture
Layers:
Core: High-speed backbone Distribution: Routing and policy Access: End-user connectivity
The reality:
Hierarchy makes networks manageable
Redundancy and High Availability¶
Eliminate single points of failure
Redundancy Types:
Device redundancy , link redundancy , path redundancy , power redundancy
The reality:
Redundancy costs money but prevents downtime
Scalability¶
Design for growth
Scalability Considerations:
IP addressing scheme , routing protocol choice , hardware capacity , management tools
The reality:
Plan for 3x current requirements
Real World Scenarios¶
Building a Home Lab¶
Practice environment
Minimum Setup:
One hypervisor (VirtualBox/VMware) Router VM (pfSense/VyOS) Switch VM (Linux bridge) Client VMs (Kali , Windows , Ubuntu)
The reality:
Home lab is essential for learning
Enterprise Network Design¶
Corporate network
Components:
Core switches , distribution switches , access switches , firewalls , routers , wireless controllers , servers
Design:
Redundant core , redundant distribution , access layer with PoE , separate VLANs for different departments , DMZ for public services
The reality:
Enterprise networks are complex but follow patterns
Data Center Networking¶
High-performance networking
Architecture:
Spine-leaf topology , 10/25/40/100 Gigabit , low latency , high availability
Technologies:
VXLAN , EVPN , BGP , automation
The reality:
Data center networking is specialized
Cloud Networking¶
Networking in the cloud
Concepts:
VPC (Virtual Private Cloud) , subnets , security groups , route tables , internet gateways , NAT gateways , VPN connections , direct connect
The reality:
Cloud networking is software-defined
Final Thoughts¶
You now have comprehensive networking knowledge from fundamentals to CCNP-level advanced topics
What you've mastered:
Everything from cables to BGP , from ping to packet analysis , from VLANs to VPNs , from theory to practice
This knowledge makes you:
Capable of designing networks , troubleshooting complex issues , implementing security , automating tasks , understanding attacks
Network Forensics¶
Network forensics is where networking meets investigation , capturing and analyzing traffic to understand what happened
Network Traffic Capture¶
Capturing network traffic is the foundation of network forensics
Tools for packet capture:
# Tcpdump - command line packet analyzer
tcpdump -i eth0 -w capture.pcap
tcpdump -i eth0 host 192.168.1.100
tcpdump -i eth0 port 80
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0'
# Capture with rotation (avoid huge files)
tcpdump -i eth0 -w capture_%Y%m%d_%H%M%S.pcap -G 3600 -C 100
# Capture specific protocols
tcpdump -i eth0 -w dns_traffic.pcap udp port 53
tcpdump -i eth0 -w http_traffic.pcap tcp port 80
# Capture with timestamps
tcpdump -i eth0 -w capture.pcap -tttt
# Wireshark - GUI packet analyzer
wireshark &
# Capture filters: host 192.168.1.1 and port 80
# Display filters: http.request.method == "POST"
Advanced capture techniques:
# Capture on multiple interfaces
tcpdump -i any -w all_interfaces.pcap
# Capture with snaplen (packet size limit)
tcpdump -i eth0 -s 65535 -w full_packets.pcap
tcpdump -i eth0 -s 96 -w headers_only.pcap
# Capture with buffer size
tcpdump -i eth0 -B 4096 -w capture.pcap
# Capture in promiscuous mode
tcpdump -i eth0 -p -w capture.pcap
The reality:
Capturing traffic is easy , capturing the RIGHT traffic requires understanding what you're looking for

Network Evidence Analysis¶
Analyzing captured traffic reveals what actually happened
Protocol analysis:
# HTTP/HTTPS traffic analysis
tshark -r capture.pcap -Y "http.request or http.response"
tshark -r capture.pcap -Y "http.request.method == POST" -T fields -e http.request.uri
# DNS queries for C2 detection
tshark -r capture.pcap -Y "dns.qry.name" -T fields -e dns.qry.name | sort | uniq
# SMB traffic for lateral movement
tshark -r capture.pcap -Y "smb or smb2"
# RDP/VNC for remote access
tshark -r capture.pcap -Y "rdp or vnc"
Indicators of Compromise (IoCs):
Unusual outbound connections:
- Connections to unknown IPs
- High ports (>1024) outbound
- Non-standard protocols
Large data transfers:
- Sudden spike in outbound traffic
- Transfers to unknown destinations
- Compressed/encrypted data exfiltration
Beaconing patterns:
- Regular small packets at fixed intervals
- C2 communication patterns
- Heartbeat traffic
Anomalous protocol usage:
- HTTP on non-standard ports
- DNS tunneling (large TXT records)
- ICMP tunneling (data in ping packets)
Extracting data from captures:
# Extract HTTP objects
tshark -r capture.pcap --export-objects http,http_objects/
# Extract files from SMB
tshark -r capture.pcap --export-objects smb,smb_files/
# Extract credentials
tshark -r capture.pcap -Y "http.authorization" -T fields -e http.authorization
# Follow TCP streams
tshark -r capture.pcap -z follow,tcp,ascii,0
The reality:
Most attacks leave network traces , finding them requires knowing what normal looks like
Network Timeline Reconstruction¶
Creating timelines from network data helps understand attack progression
Creating network timelines:
# Extract timestamps from PCAP
tshark -r capture.pcap -T fields -e frame.time_epoch -e ip.src -e ip.dst -e tcp.port > timeline.csv
# Sort by time
sort -n timeline.csv > sorted_timeline.csv
# Analyze with timeline tools
# Use Plaso, Timesketch, or custom scripts
# Group by connection
tshark -r capture.pcap -q -z conv,tcp
tshark -r capture.pcap -q -z conv,udp
Correlating with host logs:
Match network events with system logs:
- Correlate connection times with process creation
- Link IP addresses with user activity
- Match file transfers with file system changes
- Correlate DNS queries with process network activity
Timeline analysis:
1. Identify initial compromise
- First unusual connection
- Exploit delivery
- Payload download
2. Track lateral movement
- SMB connections between hosts
- RDP sessions
- Admin share access
3. Document data exfiltration
- Large outbound transfers
- Compression/encryption
- Staging locations
4. Identify persistence mechanisms
- Beaconing patterns
- Scheduled connections
- C2 communication
The reality:
Network forensics is tedious but essential , automated tools help but human analysis is irreplaceable

Network Programming and Scripting¶
Automating network tasks saves time and reduces errors
Python Network Programming¶
Python is perfect for network automation and analysis
Socket programming basics:
import socket
# TCP client
def tcp_client(host, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
# Send HTTP request
request = b'GET / HTTP/1.1\r\nHost: ' + host.encode() + b'\r\n\r\n'
sock.send(request)
# Receive response
response = sock.recv(4096)
print(response.decode())
sock.close()
# UDP client
def udp_client(host, port, message):
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(message.encode(), (host, port))
data, addr = sock.recvfrom(4096)
print(f'Received: {data.decode()} from {addr}')
sock.close()
# TCP server
def tcp_server(host, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((host, port))
sock.listen(5)
print(f'Server listening on {host}:{port}')
while True:
client, addr = sock.accept()
print(f'Connection from {addr}')
data = client.recv(1024)
client.send(b'HTTP/1.1 200 OK\r\n\r\nHello World')
client.close()
The reality:
Socket programming is fundamental , understanding it helps you understand how everything works
Network Scanning with Python¶
Building your own network scanner teaches you how scanning actually works
Port scanner:
import socket
import threading
from queue import Queue
def port_scan(target, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target, port))
if result == 0:
try:
service = socket.getservbyport(port)
except:
service = "unknown"
print(f'Port {port}: OPEN ({service})')
sock.close()
except:
pass
def threader(target, q):
while True:
worker = q.get()
port_scan(target, worker)
q.task_done()
def scan_host(target, start_port=1, end_port=1024, threads=30):
q = Queue()
for x in range(threads):
t = threading.Thread(target=lambda: threader(target, q))
t.daemon = True
t.start()
for port in range(start_port, end_port + 1):
q.put(port)
q.join()
# Usage
scan_host('192.168.1.1', 1, 1024)
Network packet sniffer:
import socket
import struct
def sniff_packets(interface='0.0.0.0'):
# Create raw socket
sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
sock.bind((interface, 0))
sock.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
# Enable promiscuous mode (Windows)
sock.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
try:
while True:
packet = sock.recvfrom(65565)[0]
# Parse IP header
ip_header = packet[0:20]
iph = struct.unpack('!BBHHHBBH4s4s', ip_header)
version_ihl = iph[0]
version = version_ihl >> 4
ihl = version_ihl & 0xF
iph_length = ihl * 4
ttl = iph[5]
protocol = iph[6]
s_addr = socket.inet_ntoa(iph[8])
d_addr = socket.inet_ntoa(iph[9])
protocol_map = {1: 'ICMP', 6: 'TCP', 17: 'UDP'}
protocol_name = protocol_map.get(protocol, str(protocol))
print(f'{protocol_name}: {s_addr} → {d_addr} (TTL: {ttl})')
except KeyboardInterrupt:
sock.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
sock.close()
# Usage (requires admin/root)
sniff_packets()
The reality:
Writing your own tools teaches you more than using pre-built ones
Bash Network Scripting¶
Bash is perfect for quick network automation tasks
Simple network scanner:
#!/bin/bash
target=$1
start_port=$2
end_port=$3
if [ -z "$target" ] || [ -z "$start_port" ] || [ -z "$end_port" ]; then
echo "Usage: $0 <target> <start_port> <end_port>"
exit 1
fi
echo "Scanning $target ports $start_port-$end_port"
for ((port=start_port; port<=end_port; port++)); do
timeout 1 bash -c "</dev/tcp/$target/$port" 2>/dev/null && echo "Port $port is OPEN"
done
Network health check:
#!/bin/bash
# Hosts to check
hosts=("8.8.8.8" "1.1.1.1" "208.67.222.222" "google.com")
echo "=== Network Health Check ==="
echo "Time: $(date)"
echo
# Check connectivity
echo "Connectivity Check:"
for host in "${hosts[@]}"; do
if ping -c 1 -W 1 $host > /dev/null 2>&1; then
echo "✓ $host is reachable"
else
echo "✗ $host is unreachable"
fi
done
echo
# Check DNS resolution
echo "DNS Resolution Check:"
if nslookup google.com > /dev/null 2>&1; then
echo "✓ DNS resolution working"
else
echo "✗ DNS resolution failed"
fi
echo
# Check default gateway
echo "Default Gateway:"
ip route | grep default
echo
# Check network interfaces
echo "Network Interfaces:"
ip -br addr show
echo
# Check listening ports
echo "Listening Ports:"
ss -tuln | grep LISTEN | head -10
Automated network monitoring:
#!/bin/bash
LOG_FILE="/var/log/network_monitor.log"
ALERT_EMAIL="admin@example.com"
monitor_host() {
local host=$1
local name=$2
if ! ping -c 3 -W 2 $host > /dev/null 2>&1; then
echo "[$(date)] ALERT: $name ($host) is DOWN" >> $LOG_FILE
echo "$name is down" | mail -s "Network Alert: $name DOWN" $ALERT_EMAIL
return 1
fi
return 0
}
monitor_port() {
local host=$1
local port=$2
local name=$3
if ! timeout 2 bash -c "</dev/tcp/$host/$port" 2>/dev/null; then
echo "[$(date)] ALERT: $name port $port is DOWN" >> $LOG_FILE
echo "$name port $port is down" | mail -s "Network Alert: $name:$port DOWN" $ALERT_EMAIL
return 1
fi
return 0
}
# Monitor critical hosts
monitor_host "8.8.8.8" "Google DNS"
monitor_host "192.168.1.1" "Gateway"
# Monitor critical services
monitor_port "192.168.1.10" "80" "Web Server"
monitor_port "192.168.1.10" "443" "HTTPS"
monitor_port "192.168.1.20" "22" "SSH Server"
echo "[$(date)] Monitoring check completed" >> $LOG_FILE
The reality:
Bash scripts are quick and dirty but effective for network automation
Network Automation with Python¶
Python with libraries like Netmiko and NAPALM makes network automation powerful
Configuration backup script:
from netmiko import ConnectHandler
import datetime
def backup_config(device_ip, username, password, device_type='cisco_ios'):
device = {
'device_type': device_type,
'host': device_ip,
'username': username,
'password': password,
}
try:
# Connect to device
connection = ConnectHandler(**device)
# Get running config
output = connection.send_command('show running-config')
# Save to file
timestamp = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
filename = f'{device_ip}_config_{timestamp}.txt'
with open(filename, 'w') as f:
f.write(output)
print(f'✓ Configuration backed up to {filename}')
connection.disconnect()
return True
except Exception as e:
print(f'✗ Error backing up {device_ip}: {str(e)}')
return False
# Backup multiple devices
devices = [
('192.168.1.1', 'admin', 'password'),
('192.168.1.2', 'admin', 'password'),
('192.168.1.3', 'admin', 'password'),
]
for ip, user, pwd in devices:
backup_config(ip, user, pwd)
Bulk configuration deployment:
from netmiko import ConnectHandler
def deploy_config(device_ip, username, password, commands, device_type='cisco_ios'):
device = {
'device_type': device_type,
'host': device_ip,
'username': username,
'password': password,
}
try:
connection = ConnectHandler(**device)
# Send configuration commands
output = connection.send_config_set(commands)
# Save config
save_output = connection.save_config()
print(f'✓ Configuration deployed to {device_ip}')
print(output)
connection.disconnect()
return True
except Exception as e:
print(f'✗ Error deploying to {device_ip}: {str(e)}')
return False
# Configuration commands
config_commands = [
'interface GigabitEthernet0/1',
'description Uplink to Core',
'no shutdown',
]
# Deploy to multiple devices
devices = ['192.168.1.1', '192.168.1.2', '192.168.1.3']
for device in devices:
deploy_config(device, 'admin', 'password', config_commands)
The reality:
Network automation is the future , learning it now gives you a massive advantage

Network Security in Active Directory¶
Active Directory environments have unique networking considerations
AD Network Architecture¶
Understanding AD network architecture is crucial for security
Domain controllers:
Central authentication servers:
- Handle Kerberos authentication
- Provide DNS services for domain
- Run LDAP services
- Replicate directory data
Network requirements:
- Multiple DCs for redundancy
- Proper DNS configuration
- Time synchronization (Kerberos requirement)
- Secure network segments
Trust relationships:
Forest trusts:
- Between different AD forests
- Transitive or non-transitive
- One-way or two-way
Domain trusts:
- Within same forest
- Automatically transitive
- Enable resource access
External trusts:
- With non-AD domains
- Non-transitive
- Legacy compatibility
The reality:
AD networking is complex , understanding it is essential for enterprise security
Kerberos Authentication over Networks¶
Kerberos is the authentication protocol for AD
Kerberos process:
1. Client requests TGT from KDC
- Sends username
- KDC verifies in AD
2. KDC issues TGT
- Encrypted with client's password hash
- Valid for 10 hours (default)
3. Client uses TGT to request service tickets
- Presents TGT to KDC
- Requests ticket for specific service
4. KDC issues service ticket
- Encrypted for target service
- Client presents to service
5. Service validates ticket
- Decrypts with its key
- Grants access
Network considerations:
Ports:
- UDP/TCP 88: Kerberos
- UDP 88 for small packets
- TCP 88 for large packets (>1500 bytes)
Time synchronization:
- Maximum 5 minutes clock skew
- NTP is critical
- Time sync issues break Kerberos
Network requirements:
- Low latency to DCs
- Reliable connectivity
- Proper DNS resolution
Kerberos attacks over network:
Pass-the-Ticket:
- Steal Kerberos tickets
- Reuse on network
- No password needed
Golden Ticket:
- Forge TGT
- Unlimited access
- Network-based persistence
Silver Ticket:
- Forge service ticket
- Access specific services
- Harder to detect
Kerberoasting:
- Request service tickets
- Crack offline
- Network traffic analysis can detect
The reality:
Kerberos is secure when implemented correctly , but network attacks are common
LDAP and Network Security¶
LDAP is how applications query Active Directory
LDAP operations:
Bind:
- Authentication to LDAP server
- Simple bind (cleartext password)
- SASL bind (secure)
Search:
- Query directory
- Filter-based
- Can be abused for enumeration
Modify:
- Change directory objects
- Requires permissions
- Audited (if configured)
Unbind:
- Close connection
- Clean disconnect
Secure LDAP:
LDAPS (LDAP over SSL/TLS):
- Port 636
- Encrypted channel
- Certificate-based
StartTLS:
- Upgrade connection to TLS
- Port 389 initially
- Then encrypted
LDAP signing:
- Integrity protection
- Prevents tampering
- Should be enforced
LDAP enumeration over network:
# Anonymous LDAP queries (if allowed)
ldapsearch -x -h 192.168.1.10 -b "DC=domain,DC=com"
# Authenticated queries
ldapsearch -x -h 192.168.1.10 -D "CN=user,DC=domain,DC=com" -W -b "DC=domain,DC=com"
# Extract all users
ldapsearch -x -h 192.168.1.10 -b "DC=domain,DC=com" "(objectClass=user)" sAMAccountName
# Extract computers
ldapsearch -x -h 192.168.1.10 -b "DC=domain,DC=com" "(objectClass=computer)" dNSHostName
The reality:
LDAP is often misconfigured , allowing excessive enumeration over the network
Group Policy and Network Policies¶
Group Policy is applied over network connections
Group Policy Objects (GPOs):
Applied over network:
- Client contacts DC
- Downloads GPO
- Applies settings
- Requires network connectivity
Network-related GPOs:
- Firewall settings
- IPsec policies
- Wireless network policies
- VPN configuration
- Proxy settings
Network policies:
Network Access Protection (NAP):
- Health validation
- Quarantine non-compliant systems
- Network-based enforcement
802.1X policies:
- Wired/wireless authentication
- Certificate-based
- RADIUS integration
The reality:
GPOs control network security settings , understanding them is crucial
AD Enumeration and Network Discovery¶
Enumerating AD over the network reveals attack surface
Network-based enumeration:
# Discover domain controllers
Resolve-DnsName -Type SRV _ldap._tcp.dc._msdcs.$env:USERDNSDOMAIN
# Find AD sites
Get-ADReplicationSite -Filter *
# Enumerate trusts
Get-ADTrust -Filter *
# Find Kerberos servers
Resolve-DnsName -Type SRV _kerberos._tcp.dc._msdcs.$env:USERDNSDOMAIN
# LDAP service location
Resolve-DnsName -Type SRV _ldap._tcp.$env:USERDNSDOMAIN
Service discovery:
# Nmap AD enumeration
nmap -p 88,389,636,3268,3269 192.168.1.0/24
# SMB enumeration
nmap -p 445 --script smb-enum-domains,smb-enum-users 192.168.1.10
# Kerberos user enumeration
nmap -p 88 --script krb5-enum-users --script-args krb5-enum-users.realm='DOMAIN.COM' 192.168.1.10
The reality:
AD environments leak information over the network , proper segmentation is critical

Cryptography in Network Security¶
Cryptography protects data in transit
TLS SSL for Network Security¶
TLS/SSL encrypts network communications
TLS handshake process:
1. Client Hello
- Supported TLS versions
- Supported cipher suites
- Random number
2. Server Hello
- Selected TLS version
- Selected cipher suite
- Server certificate
- Random number
3. Key exchange
- Client verifies certificate
- Generates pre-master secret
- Encrypts with server's public key
4. Session key generation
- Both derive session keys
- From pre-master secret + random numbers
5. Encrypted communication
- All traffic encrypted with session keys
- Symmetric encryption (fast)
Certificate validation:
Certificate chain:
- Root CA → Intermediate CA → Server cert
- Each signs the next
- Client trusts root CA
Validation checks:
- Certificate not expired
- Hostname matches
- Signature valid
- Not revoked (CRL/OCSP)
- Chain of trust intact
Testing TLS security:
# Check TLS versions
nmap --script ssl-enum-ciphers -p 443 example.com
# Test with OpenSSL
openssl s_client -connect example.com:443 -tls1_2
openssl s_client -connect example.com:443 -tls1_3
# Check certificate
openssl s_client -connect example.com:443 -showcerts
# Test cipher suites
nmap --script ssl-enum-ciphers -p 443 example.com
The reality:
TLS is only as strong as its configuration , weak ciphers and old versions are common
VPN Encryption¶
VPNs encrypt network traffic between endpoints
IPsec VPN:
AH (Authentication Header):
- Integrity protection
- Authentication
- No encryption
- IP protocol 51
ESP (Encapsulating Security Payload):
- Encryption
- Integrity
- Authentication
- IP protocol 50
IKE (Internet Key Exchange):
- Key negotiation
- Phase 1: Establish secure channel
- Phase 2: Negotiate IPsec SAs
- UDP port 500, 4500
SSL VPN:
TLS-based encryption:
- Uses standard TLS
- Port 443 (looks like HTTPS)
- Easier through firewalls
Clientless access:
- Web browser only
- No client software
- Limited functionality
Full tunnel:
- All traffic through VPN
- Client software required
- Complete protection
OpenVPN configuration:
# Server configuration
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
cipher AES-256-CBC
auth SHA256
# Client configuration
client
dev tun
proto udp
remote vpn.example.com 1194
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
auth SHA256
WireGuard configuration:
# Server
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32
# Client
[Interface]
Address = 10.0.0.2/24
PrivateKey = CLIENT_PRIVATE_KEY
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
The reality:
VPNs are essential for remote access , but configuration matters more than the protocol
Wireless Encryption¶
Wireless networks need strong encryption
WPA2-Enterprise:
802.1X authentication:
- RADIUS server
- EAP methods (PEAP, EAP-TLS)
- Per-user credentials
EAP-TLS (most secure):
- Certificate-based
- Mutual authentication
- No password
PEAP-MSCHAPv2 (common):
- Username/password
- Server certificate
- Easier deployment
WPA3:
SAE (Simultaneous Authentication of Equals):
- Replaces PSK 4-way handshake
- Forward secrecy
- Resistant to offline attacks
Enhanced protection:
- 192-bit security suite (Enterprise)
- Protected Management Frames (mandatory)
- Individualized data encryption
Setting up WPA2-Enterprise:
# FreeRADIUS configuration
# /etc/freeradius/3.0/clients.conf
client ap {
ipaddr = 192.168.1.1
secret = shared_secret
}
# /etc/freeradius/3.0/users
user1 Cleartext-Password := "password1"
# hostapd configuration
# /etc/hostapd/hostapd.conf
interface=wlan0
ssid=SecureNetwork
hw_mode=g
channel=6
wpa=2
wpa_key_mgmt=WPA-EAP
auth_algs=1
ieee8021x=1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=shared_secret
The reality:
Wireless encryption has improved dramatically , but most networks still use weak PSKs

Advanced Network Troubleshooting¶
Complex network issues require systematic approaches
Complex Connectivity Issues¶
Intermittent connectivity is the worst to troubleshoot
Intermittent connectivity troubleshooting:
# Check for ARP issues
arp -a
arp -d 192.168.1.1 # Clear ARP cache
ip -s neigh show # Linux neighbor stats
# Test with different packet sizes (MTU issues)
ping -s 1472 google.com # 1472 + 20 IP + 8 ICMP = 1500
ping -M do -s 1472 google.com # Don't fragment
# Continuous monitoring
ping -i 0.2 google.com | ts '[%Y-%m-%d %H:%M:%S]'
# MTR for continuous path monitoring
mtr -r -c 100 google.com
DNS resolution problems:
# Check DNS cache
ipconfig /displaydns # Windows
systemd-resolve --statistics # Linux
# Clear DNS cache
ipconfig /flushdns # Windows
systemd-resolve --flush-caches # Linux
# Test different DNS servers
nslookup google.com 8.8.8.8
nslookup google.com 1.1.1.1
dig @8.8.8.8 google.com
dig @1.1.1.1 google.com
# Check DNSSEC validation
dig +dnssec google.com
# Trace DNS resolution
dig +trace google.com
Routing issues:
# Check routing table
ip route show # Linux
route print # Windows
# Test specific route
ip route get 8.8.8.8
# Add temporary route
ip route add 10.0.0.0/8 via 192.168.1.1
# Traceroute with different methods
traceroute -I google.com # ICMP
traceroute -T -p 80 google.com # TCP
mtr --tcp google.com
The reality:
Intermittent issues are frustrating , systematic troubleshooting is the only way
Performance Optimization¶
Network performance optimization requires understanding bottlenecks
TCP optimization:
# Linux TCP tuning
# Increase TCP window size
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
# Enable TCP Fast Open
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
# TCP congestion control
sysctl -w net.ipv4.tcp_congestion_control=bbr
# Increase connection backlog
sysctl -w net.core.netdev_max_backlog=5000
sysctl -w net.core.somaxconn=1024
Network stack tuning:
# Increase connection tracking
sysctl -w net.netfilter.nf_conntrack_max=262144
# Optimize for high throughput
sysctl -w net.core.netdev_budget=600
sysctl -w net.core.netdev_budget_usecs=8000
# Enable TCP timestamps
sysctl -w net.ipv4.tcp_timestamps=1
# Enable selective acknowledgments
sysctl -w net.ipv4.tcp_sack=1
Testing performance:
# iperf3 bandwidth test
iperf3 -s # Server
iperf3 -c server_ip -t 30 -i 1 # Client
# Test with multiple streams
iperf3 -c server_ip -P 10
# UDP test
iperf3 -c server_ip -u -b 1G
# Reverse mode
iperf3 -c server_ip -R
The reality:
Default network settings are conservative , tuning can dramatically improve performance
Security Related Troubleshooting¶
Security tools can cause network issues
Firewall rule analysis:
# Linux iptables
iptables -L -n -v # List all rules with stats
iptables -L INPUT -n -v --line-numbers
iptables -L OUTPUT -n -v --line-numbers
# Check for dropped packets
iptables -L -n -v | grep DROP
# nftables
nft list ruleset
nft list table inet filter
# Windows Firewall
netsh advfirewall show allprofiles
netsh advfirewall firewall show rule name=all
IDS/IPS analysis:
# Check Snort alerts
tail -f /var/log/snort/alert
snort -r capture.pcap -c /etc/snort/snort.conf
# Suricata eve.json analysis
jq '.alert' /var/log/suricata/eve.json | head -10
jq '.alert | select(.severity==1)' /var/log/suricata/eve.json
# Check for false positives
grep "false positive" /var/log/suricata/fast.log
VPN troubleshooting:
# OpenVPN
openvpn --config client.ovpn --verb 4
tail -f /var/log/openvpn.log
# WireGuard
wg show
wg show wg0
# IPsec
ipsec status
ipsec statusall
tail -f /var/log/auth.log | grep pluto
The reality:
Security tools often break things , understanding both security and networking is essential

Network Compliance and Standards¶
Networks must comply with various standards and regulations
Industry Standards¶
Industry standards provide frameworks for network security
NIST network security guidelines:
SP 800-53: Security and Privacy Controls
- AC: Access Control
- SC: System and Communications Protection
- SI: System and Information Integrity
SP 800-41: Guidelines on Firewalls and Firewall Policy
- Firewall architectures
- Rule management
- Logging and monitoring
SP 800-77: Guide to IPsec VPNs
- IPsec architecture
- Key management
- Implementation guidance
SP 800-115: Technical Guide to Information Security Testing
- Network discovery
- Vulnerability scanning
- Penetration testing
ISO/IEC 27001:
Information security management:
- Risk assessment
- Security controls
- Continuous improvement
Network security controls:
- Network access control
- Network segmentation
- Encryption
- Monitoring and logging
The reality:
Compliance frameworks are tedious but necessary , understanding them helps with audits
Regulatory Compliance¶
Different industries have different network security requirements
PCI DSS (Payment Card Industry):
Network segmentation requirements:
- Cardholder data environment (CDE) isolated
- DMZ for public-facing systems
- Internal network segmentation
Firewall configurations:
- Default deny all
- Explicit allow rules
- Regular review and testing
Encryption standards:
- TLS 1.2 minimum
- Strong cipher suites
- Certificate management
HIPAA (Healthcare):
Protected health information (PHI) protection:
- Encryption in transit
- Access controls
- Audit logging
Network encryption requirements:
- TLS for web traffic
- VPN for remote access
- Encrypted email
Technical safeguards:
- Access control
- Audit controls
- Integrity controls
- Transmission security
GDPR (General Data Protection Regulation):
Data protection by design:
- Encryption by default
- Network segmentation
- Access controls
International data transfers:
- Encryption in transit
- Secure VPNs
- Compliance with transfer mechanisms
Breach notification:
- Network monitoring
- Incident detection
- 72-hour notification requirement
The reality:
Regulatory compliance drives network security requirements , violations are expensive

Emerging Network Technologies¶
New technologies are changing how networks work
Software Defined Networking SDN¶
SDN separates control plane from data plane
SDN concepts:
Control plane:
- Centralized controller
- Makes routing decisions
- Programs data plane
Data plane:
- Forwards packets
- Follows controller instructions
- No local intelligence
Benefits:
- Centralized management
- Programmable
- Automation-friendly
- Vendor-neutral
SDN protocols:
OpenFlow:
- Communication between controller and switches
- Flow-based forwarding
- Standardized protocol
NETCONF:
- Network configuration protocol
- XML-based
- Transactional
RESTCONF:
- REST-based configuration
- JSON/XML
- HTTP-based
The reality:
SDN is powerful but complex , traditional networking isn't going away soon
Network Function Virtualization NFV¶
NFV virtualizes network functions
NFV benefits:
Virtualized network functions:
- Run on standard hardware
- No specialized appliances
- Software-based
Reduced hardware dependency:
- Lower costs
- Faster deployment
- Easier scaling
Faster service deployment:
- Spin up VNFs quickly
- No hardware procurement
- Automated provisioning
Common VNFs:
Virtual routers:
- Software-based routing
- Same functionality as hardware
- More flexible
Virtual firewalls:
- Software firewall
- Scalable
- Cloud-friendly
Virtual load balancers:
- Software load balancing
- Auto-scaling
- Pay-per-use
The reality:
NFV is the future of network services , especially in cloud environments
Zero Trust Networking¶
Zero Trust assumes breach and verifies everything
Zero Trust principles:
Never trust , always verify:
- No implicit trust
- Verify every access
- Continuous authentication
Least privilege access:
- Minimum necessary access
- Just-in-time access
- Time-limited permissions
Micro-segmentation:
- Segment by workload
- Granular policies
- Limit lateral movement
Implementation:
Identity-based access:
- User and device identity
- Multi-factor authentication
- Continuous verification
Network segmentation:
- Software-defined perimeters
- Application-level segmentation
- East-west traffic control
Traffic inspection:
- Inspect all traffic
- Encrypted traffic analysis
- Behavioral analysis
The reality:
Zero Trust is the future of network security , traditional perimeter security is dead

Network Career Paths¶
Networking skills open many career opportunities
Certifications¶
Certifications validate networking knowledge
CompTIA Network+:
Entry-level certification:
- Network fundamentals
- Infrastructure
- Network operations
- Network security
- Network troubleshooting
Good for:
- Starting networking career
- IT support roles
- Help desk positions
Cisco certifications:
CCNA (Cisco Certified Network Associate):
- Network fundamentals
- Network access
- IP connectivity
- IP services
- Security fundamentals
- Automation
CCNP (Cisco Certified Network Professional):
- Advanced routing
- Advanced switching
- Troubleshooting
- Specialized tracks
CCIE (Cisco Certified Internetwork Expert):
- Expert-level
- Lab exam
- Prestigious
Security-focused certifications:
CompTIA Security+:
- Security fundamentals
- Network security
- Cryptography
- Identity management
CISSP:
- Security management
- Network security domain
- Enterprise focus
CEH (Certified Ethical Hacker):
- Penetration testing
- Network attacks
- Security assessment
The reality:
Certifications help but experience matters more , don't just collect certs
Career Progression¶
Network careers have clear progression paths
Entry-level roles:
Network Administrator:
- Manage network infrastructure
- Troubleshoot issues
- Implement changes
- Monitor performance
Junior Security Analyst:
- Monitor security alerts
- Analyze network traffic
- Respond to incidents
- Learn security tools
Help Desk Technician:
- User support
- Basic troubleshooting
- Ticket management
- Customer service
Mid-level roles:
Network Engineer:
- Design networks
- Implement solutions
- Optimize performance
- Advanced troubleshooting
SOC Analyst:
- Security monitoring
- Incident response
- Threat hunting
- Tool management
Penetration Tester:
- Security assessments
- Network attacks
- Vulnerability discovery
- Report writing
Senior roles:
Network Architect:
- Design enterprise networks
- Strategic planning
- Technology selection
- Team leadership
CISO (Chief Information Security Officer):
- Security strategy
- Risk management
- Compliance
- Executive leadership
Security Consultant:
- Advisory services
- Architecture review
- Best practices
- Client management
The reality:
Career progression requires continuous learning , networking is always evolving

Practice Labs and Exercises¶
Hands-on practice is essential
Virtual Lab Setup¶
Build your own lab for practice
Tools for practice:
Virtualization:
- VirtualBox (free)
- VMware Workstation
- Hyper-V (Windows)
- KVM/QEMU (Linux)
Network simulation:
- GNS3 (network devices)
- EVE-NG (enterprise)
- Packet Tracer (Cisco)
- Containerlab (modern)
Security testing:
- Kali Linux
- Parrot OS
- Security Onion
- DVWA, WebGoat
Basic lab setup:
Minimum lab:
- 1 router VM
- 2 switch VMs
- 3 client VMs
- 1 server VM
- 1 attacker VM (Kali)
Network segments:
- Management network
- Internal network
- DMZ
- External (internet simulation)
Services to run:
- DNS server
- DHCP server
- Web server
- File server
- Domain controller (if practicing AD)
The reality:
Building a lab is the best way to learn , break things and fix them
Advanced Exercises¶
Practice exercises to build skills
Exercise 1: Network Discovery
Objective: Map an unknown network
Tasks:
1. Discover live hosts (ping sweep, ARP scan)
2. Identify open ports (nmap)
3. Enumerate services (version detection)
4. Map network topology
5. Document findings
Skills practiced:
- Network scanning
- Service enumeration
- Documentation
Exercise 2: Packet Analysis Challenge
Objective: Analyze captured traffic
Tasks:
1. Capture traffic during web session
2. Identify HTTP requests/responses
3. Extract cookies and headers
4. Find credentials (if any)
5. Reconstruct session
Skills practiced:
- Packet capture
- Protocol analysis
- Traffic reconstruction
Exercise 3: VPN Configuration
Objective: Set up secure VPN
Tasks:
1. Install OpenVPN server
2. Generate certificates
3. Configure server
4. Configure client
5. Test connectivity
6. Monitor traffic
Skills practiced:
- VPN setup
- Certificate management
- Troubleshooting
Exercise 4: Wireless Security Audit
Objective: Assess WiFi security
Tasks:
1. Scan for wireless networks
2. Identify security protocols
3. Test WPA2 security (in lab!)
4. Analyze wireless traffic
5. Recommend improvements
Skills practiced:
- Wireless scanning
- Security assessment
- Traffic analysis
Exercise 5: Network Automation
Objective: Automate network tasks
Tasks:
1. Write script to backup configs
2. Automate device discovery
3. Generate network reports
4. Deploy configuration changes
5. Schedule automated tasks
Skills practiced:
- Scripting
- Automation
- Configuration management
The reality:
Practice makes perfect , these exercises build real-world skills

Network Security Best Practices¶
Following best practices prevents most attacks
Defense in Depth Implementation¶
Multiple layers of security protect better than one
Layered security:
Physical security:
- Locked server rooms
- Access controls
- Surveillance
Network perimeter:
- Firewalls
- IDS/IPS
- DDoS protection
Internal segmentation:
- VLANs
- ACLs
- Micro-segmentation
Host-based protection:
- Host firewalls
- Antivirus
- EDR
Application security:
- Input validation
- Authentication
- Authorization
Data protection:
- Encryption
- DLP
- Backups
The reality:
No single security control is perfect , layers provide redundancy
Secure Network Design Principles¶
Design security in from the start
Network segmentation strategies:
VLAN implementation:
- Separate by function
- Separate by trust level
- Separate by department
Subnet isolation:
- Different IP ranges
- Firewall between subnets
- Controlled routing
Access control lists:
- Explicit deny by default
- Allow only necessary traffic
- Regular review
Secure architecture patterns:
DMZ (Demilitarized Zone):
- Public-facing services
- Isolated from internal network
- Dual firewall architecture
Defense in depth:
- Multiple security layers
- No single point of failure
- Redundant controls
Least privilege:
- Minimum necessary access
- Just-in-time access
- Regular access reviews
Fail-safe defaults:
- Deny by default
- Explicit allow rules
- Secure default configurations
The reality:
Secure design is easier than retrofitting security , plan ahead
Incident Response for Networks¶
Network incidents require quick response
Network incident response plan:
1. Detection and analysis:
- Monitor alerts
- Analyze traffic
- Identify scope
- Determine severity
2. Containment:
- Isolate affected systems
- Block malicious IPs
- Update firewall rules
- Preserve evidence
3. Eradication:
- Remove malware
- Close vulnerabilities
- Update systems
- Change credentials
4. Recovery:
- Restore services
- Monitor for reinfection
- Verify functionality
- Document changes
5. Lessons learned:
- Review response
- Update procedures
- Improve defenses
- Train team
Network-specific response actions:
Traffic isolation:
- VLAN isolation
- Firewall rules
- ACL updates
- Route changes
Packet capture:
- Capture malicious traffic
- Preserve evidence
- Analyze patterns
- Document findings
Log correlation:
- Firewall logs
- IDS/IPS alerts
- Flow data
- DNS logs
System quarantine:
- Isolate compromised hosts
- Block network access
- Preserve for forensics
- Clean or rebuild
The reality:
Incident response is stressful , having a plan makes it manageable
Continuous Network Monitoring¶
Continuous monitoring detects threats early
Monitoring strategies:
Real-time traffic analysis:
- Flow monitoring (NetFlow, sFlow)
- Packet inspection
- Anomaly detection
- Behavioral analysis
Security information and event management (SIEM):
- Log aggregation
- Correlation
- Alerting
- Dashboards
Network behavior analysis:
- Baseline normal behavior
- Detect deviations
- Machine learning
- Threat intelligence
Key metrics to monitor:
Bandwidth utilization:
- Interface statistics
- Top talkers
- Traffic patterns
- Capacity planning
Connection patterns:
- New connections
- Failed connections
- Long-lived connections
- Unusual destinations
Protocol distributions:
- Expected protocols
- Unexpected protocols
- Protocol anomalies
- Tunneling detection
Error rates and anomalies:
- Packet loss
- Retransmissions
- Errors
- Drops
The reality:
Monitoring is boring until something breaks , then it's invaluable

Advanced Network Concepts¶
Advanced concepts for deeper understanding
Quality of Service QoS¶
QoS prioritizes important traffic
QoS implementation:
Traffic classification:
- Mark packets (DSCP, CoS)
- Identify flows
- Application recognition
Bandwidth allocation:
- Guaranteed bandwidth
- Maximum bandwidth
- Burst allowance
Priority queuing:
- High priority queue
- Normal priority queue
- Low priority queue
Traffic shaping:
- Limit bandwidth
- Smooth bursts
- Prevent congestion
QoS protocols:
DiffServ (Differentiated Services):
- DSCP markings
- Per-hop behavior
- Scalable
IntServ (Integrated Services):
- Resource reservation
- End-to-end QoS
- Not scalable
RSVP (Resource Reservation Protocol):
- Reserve bandwidth
- Signal requirements
- IntServ signaling
The reality:
QoS is complex but necessary for real-time applications like VoIP and video
Network Address Translation NAT¶
NAT translates IP addresses
NAT types:
Static NAT:
- One-to-one mapping
- Public IP to private IP
- Bidirectional
- Predictable
Dynamic NAT:
- Pool of public IPs
- Assigned dynamically
- Temporary mapping
- Outbound only
PAT (Port Address Translation):
- Many-to-one mapping
- Port numbers differentiate
- Most common (home routers)
- Saves public IPs
NAT security considerations:
Address hiding:
- Internal IPs hidden
- Basic security
- Obscurity not security
Port scanning protection:
- Unsolicited inbound blocked
- Stateful filtering
- Reduces attack surface
Application compatibility issues:
- FTP active mode
- SIP/VoIP
- IPsec
- P2P applications
The reality:
NAT is everywhere , understanding it helps troubleshoot connectivity issues
Multicast Networking¶
Multicast sends to multiple recipients efficiently
Multicast concepts:
Group communication:
- One sender, multiple receivers
- Efficient bandwidth use
- No duplication at source
IGMP (Internet Group Management Protocol):
- Join/leave groups
- Membership reporting
- Query/response
Multicast routing protocols:
- PIM (Protocol Independent Multicast)
- DVMRP (Distance Vector Multicast)
- MOSPF (Multicast OSPF)
Security implications:
Traffic amplification attacks:
- Multicast reflection
- Amplification factor
- DDoS potential
Unauthorized group membership:
- Join any group
- Receive traffic
- Information disclosure
Multicast-based DDoS:
- Flood multicast groups
- Overwhelm receivers
- Network congestion
The reality:
Multicast is powerful but rarely used outside specific applications like IPTV
IPv6 Security¶
IPv6 has unique security considerations
IPv6-specific threats:
NDP (Neighbor Discovery Protocol) attacks:
- Router advertisement spoofing
- Neighbor solicitation flooding
- Duplicate address detection DoS
Router Advertisement spoofing:
- Rogue router advertisements
- Man-in-the-middle
- Traffic redirection
Extension header vulnerabilities:
- Fragmentation attacks
- Routing header abuse
- Firewall evasion
IPv6 security measures:
SEND (Secure Neighbor Discovery):
- Cryptographically signed
- Prevents spoofing
- Not widely deployed
IPsec implementation:
- Mandatory in IPv6 spec
- Often not enabled
- End-to-end encryption
Firewall configuration:
- IPv6-aware firewalls
- Separate IPv6 rules
- ICMPv6 filtering
The reality:
IPv6 security is often overlooked , dual-stack environments are vulnerable

Network Performance Analysis¶
Understanding performance is crucial for optimization
Bandwidth Analysis¶
Measuring and analyzing bandwidth usage
Measurement tools:
# iperf for bandwidth testing
iperf -s # Server
iperf -c server_ip -t 30 -i 1 # Client
# Speedtest-cli
speedtest-cli
speedtest-cli --simple
speedtest-cli --json
# nload for real-time monitoring
nload eth0
# iftop for interface monitoring
iftop -i eth0
# vnstat for historical data
vnstat -i eth0
vnstat -i eth0 -d # Daily stats
Performance metrics:
Throughput:
- Actual data transfer rate
- Measured in Mbps/Gbps
- Application-level metric
Bandwidth:
- Maximum capacity
- Link speed
- Physical limitation
Goodput:
- Useful data only
- Excludes protocol overhead
- Real application throughput
Latency:
- Round-trip time
- One-way delay
- Affects responsiveness
Jitter:
- Latency variation
- Important for real-time apps
- Measured in milliseconds
Packet loss:
- Percentage of lost packets
- Causes retransmissions
- Degrades performance
The reality:
Bandwidth is just one metric , latency and packet loss matter just as much
Network Bottleneck Identification¶
Finding what's slowing things down
Common bottlenecks:
Bandwidth limitations:
- Link saturation
- Insufficient capacity
- Congestion
CPU constraints:
- Packet processing
- Encryption overhead
- Routing decisions
Memory issues:
- Buffer exhaustion
- Packet drops
- Queue overflow
Disk I/O problems:
- Logging bottleneck
- Packet capture
- Database access
Diagnostic approaches:
End-to-end testing:
- Test full path
- Identify slow segment
- Isolate problem
Component isolation:
- Test each component
- Bypass suspected bottleneck
- Confirm hypothesis
Load testing:
- Simulate traffic
- Measure performance
- Find breaking point
Capacity planning:
- Current utilization
- Growth projections
- Future requirements
The reality:
Bottlenecks are often not where you expect , systematic testing reveals truth
Optimization Techniques¶
Improving network performance
Network optimization:
# TCP window scaling
sysctl -w net.ipv4.tcp_window_scaling=1
# Selective acknowledgments
sysctl -w net.ipv4.tcp_sack=1
# TCP timestamps
sysctl -w net.ipv4.tcp_timestamps=1
# Congestion control (BBR)
sysctl -w net.ipv4.tcp_congestion_control=bbr
# Increase buffer sizes
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Hardware optimization:
NIC tuning:
- Increase ring buffers
- Enable offloading features
- Update drivers
Interrupt coalescing:
- Reduce interrupt rate
- Improve throughput
- May increase latency
RSS (Receive Side Scaling):
- Distribute across CPUs
- Parallel processing
- Better multi-core utilization
Offloading features:
- TCP segmentation offload (TSO)
- Generic receive offload (GRO)
- Checksum offload
The reality:
Optimization requires understanding the workload , generic tuning rarely helps

Ethical and Legal Considerations¶
Network security work has ethical and legal implications
Network Security Ethics¶
Ethical principles guide security work
Ethical hacking principles:
Authorized testing only:
- Written permission
- Scope agreement
- Rules of engagement
Minimize impact:
- Production systems
- Business operations
- User experience
Full disclosure:
- Report all findings
- No hiding issues
- Honest assessment
Respect privacy:
- Personal data
- Confidential information
- Need-to-know basis
Professional responsibility:
Compliance with laws:
- Local regulations
- International laws
- Industry standards
Protection of information:
- Client data
- Sensitive findings
- Confidentiality
Continuous learning:
- Stay current
- Update skills
- Share knowledge
Community contribution:
- Responsible disclosure
- Knowledge sharing
- Mentoring others
The reality:
Ethics matter more than technical skills , reputation is everything
Legal Frameworks¶
Laws govern network security activities
Computer Fraud and Abuse Act (CFAA):
Unauthorized access prohibitions:
- Accessing without authorization
- Exceeding authorized access
- Causing damage
Civil and criminal penalties:
- Fines
- Imprisonment
- Civil liability
Scope of protected systems:
- Federal computers
- Financial institutions
- Interstate commerce
Data protection laws:
GDPR requirements:
- Data protection by design
- Breach notification
- Right to be forgotten
- International transfers
CCPA considerations:
- Consumer rights
- Data disclosure
- Opt-out mechanisms
- California residents
Industry-specific regulations:
- HIPAA (healthcare)
- PCI DSS (payment cards)
- SOX (financial)
The reality:
Legal compliance is complex , consult lawyers when unsure
Incident Reporting¶
Proper reporting is legally required
Responsible disclosure:
Vulnerability reporting:
- Contact vendor first
- Provide details
- Allow time to fix
- Coordinate disclosure
Coordination with vendors:
- Agree on timeline
- Verify fixes
- Public disclosure
- Credit researchers
Public disclosure guidelines:
- After vendor fixes
- Or reasonable time passes
- Full technical details
- Proof of concept
Bug bounty programs:
- Structured programs
- Clear rules
- Financial rewards
- Legal protection
Legal documentation:
Chain of custody:
- Document evidence handling
- Maintain integrity
- Prove authenticity
- Court admissibility
Proper logging:
- Comprehensive logs
- Tamper-proof
- Timestamped
- Retained properly
Compliance with retention:
- Legal requirements
- Industry standards
- Company policies
- Destruction procedures
The reality:
Proper documentation protects you legally , always document everything

Future of Network Security¶
Networking is evolving rapidly
Emerging Threats¶
New threats emerge constantly
AI-powered attacks:
Automated vulnerability discovery:
- AI finds vulnerabilities
- Faster than humans
- Novel attack vectors
Adaptive malware:
- Changes behavior
- Evades detection
- Self-modifying
Enhanced social engineering:
- Deepfakes
- AI-generated phishing
- Personalized attacks
IoT security challenges:
Device proliferation:
- Billions of devices
- Weak security
- Update challenges
Legacy protocol vulnerabilities:
- Old protocols
- No encryption
- Design flaws
Supply chain risks:
- Compromised firmware
- Backdoors
- Untrusted vendors
The reality:
Threats evolve faster than defenses , continuous learning is essential
Technological Advancements¶
New technologies change networking
AI/ML in network security:
Behavioral analysis:
- Learn normal patterns
- Detect anomalies
- Reduce false positives
Anomaly detection:
- Identify unusual traffic
- Unknown threats
- Zero-day detection
Automated response:
- Immediate action
- Reduce response time
- Minimize damage
Quantum computing impact:
Cryptographic vulnerabilities:
- RSA breakable
- ECC vulnerable
- Current encryption at risk
Post-quantum cryptography:
- Quantum-resistant algorithms
- NIST standardization
- Migration planning
Key management challenges:
- Larger keys
- New algorithms
- Backward compatibility
The reality:
Quantum computing will break current encryption , prepare now
Evolving Standards¶
Standards adapt to new threats
Next-generation protocols:
HTTP/3 and QUIC:
- UDP-based
- Faster connection
- Better performance
DNS over HTTPS/TLS:
- Encrypted DNS
- Privacy protection
- ISP can't see queries
Secure web protocols:
- TLS 1.3
- Improved security
- Better performance
Security framework updates:
NIST Cybersecurity Framework:
- Regular updates
- New threats
- Best practices
ISO 27001 updates:
- Cloud security
- Privacy
- Emerging tech
Industry-specific standards:
- Sector-specific
- Regulatory driven
- Compliance requirements
The reality:
Standards lag behind threats , but provide necessary baselines

Summary and Next Steps¶
The brutal truth:
Most people with networking certifications don't understand half of what's in this guide
You now have an advantage
What's next:
Build a lab , practice everything , break things , fix things , capture packets , analyze traffic , configure routers , set up VPNs , automate tasks
Keep learning:
Networking evolves constantly , new protocols emerge , new technologies appear , stay current , read RFCs , follow blogs , join communities
Remember:
Theory without practice is useless , practice without understanding is dangerous , you need both
Now stop reading and start doing
Your network is waiting
Build something , break something , learn something
That's how you actually become good at networking
Not by reading , not by watching videos , not by collecting certifications
By doing
Get to work