Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 Multi-AS Content Delivery Network (CDN) with Hierarchical QoS

Simulation Environment: CORE Emulator v9.2.1 UC: Redes de Computadores II
Institution: Universidade do Minho Project Grade: 18 / 20 Values


📄 Overview

This repository contains the network architecture and configuration scripts for a distributed Content Delivery Network (CDN) simulated across a multi-domain topology. The infrastructure models a realistic Internet transit system, combining inter-domain routing, traffic engineering, automated content replication, and strict quality of service optimization.

Network Topology

🛠️ Implemented Features & Protocols

  • Routing Engine:

    • BGP (eBGP & iBGP): Manages inter-AS policies and internal routing updates over isolated paths.
    • OSPFv2: Deployed within the transit core using multi-area segmentation and Route Reflection.
    • RIPv2: Distance-vector routing applied inside the local access networks.
  • Anycast Architecture:

    • HTTP Anycast: Georedundant web content delivery sharing the prefix 172.16.0.10/32.
    • DNS Anycast (BIND9): Distributed domain name resolution (www.cdn.com) running over 172.16.0.53/32.
  • Secure Core Isolation:

    • GRE Tunnel: Point-to-point overlay link used exclusively for internal Unicast management traffic (192.168.0.0/30).
    • TCP Tuning: Optimized with a strict 1400 bytes MTU and 1360 bytes MSS Clamping via iptables to prevent overlay fragmentation.
  • Content Automation:

    • FTP Sync (vsftpd): Automated file replication pipeline between PoPs.
    • Pipeline: Automated Bash scripts running via cron that force traffic through the GRE interface and handle atomic local transfers using a quarantine directory.
  • Quality of Service (DiffServ):

    • Traffic Marking: Packet classification at the source via iptables mangle using DSCP CS4 (HTTP VIP) and AF11 (FTP) classes.
    • Hierarchical Token Bucket (HTB): Bandwidth scheduling over a shared 10 Mbps bottleneck link, securing class guarantees, capacity borrowing, and automatic descarding of unclassified Best Effort traffic during high-congestion tests (netem delay 2ms).

📂 Repository Structure

  • multi-as-topology.xml: Core Emulator project file containing all node configurations and topology definitions.
  • more about pt-pt/: Project statements (PDFs), visual topology, and the final technical report in Portuguese.
    • For detailed configuration analysis and implementation logic, please refer to the report in this directory.

⚙️ Prerequisites & Dependencies

To ensure all virtual nodes and services start correctly within the CORE Emulator, the host Linux operating system must have the following packages installed:

  • Routing Engine:
    • quagga (Required for OSPF, BGP, and RIP routing daemon execution)
  • CDN Application Services:
    • bind9 (DNS Server)
    • vsftpd (FTP Server for automated replication)
    • apache2 or lighttpd (HTTP Web Server)
  • Traffic Engineering & Testing Tools:
    • iperf (Traffic generation for QoS congestion testing)
    • curl (File transfer and FTP automation scripts)
    • iptables & iproute2 (Required for DiffServ packet marking and HTB Traffic Control)

Quick installation command (Debian/Ubuntu hosts):

sudo apt update
sudo apt install quagga bind9 vsftpd apache2 iperf curl iptables iproute2

About

CORE Emulator topology simulating a multi-AS Internet transit infrastructure with OSPF, RIP, BGP routing, Anycast services (HTTP/DNS), and hierarchical QoS (HTB).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors