A lightweight bootable Linux distribution for LLDP discovery and network diagnostics
About • Features • Building • Usage • Network Tools • License
lldpOS is a minimal, bootable Linux distribution designed for network engineers and system administrators. It provides an intuitive TUI interface for LLDP neighbor discovery and a comprehensive set of network diagnostic tools. Boot from ISO or USB and instantly access your network infrastructure information.
- ✅ LLDP Discovery with interactive TUI interface
- ✅ Unique hostname generation - automatically creates memorable hostnames (e.g.,
brave-falcon-1234) that are advertised via LLDP, making it easy to identify the server from switch CLI usingshow lldp neighbors - ✅ Comprehensive network tools - ping, traceroute, tcpdump, iperf3, mtr, and more
- ✅ Network configuration utilities - DHCP, static IP, VLAN, bonding, bridging
- ✅ BIOS and UEFI boot support for maximum hardware compatibility
- ✅ Small footprint - minimal base system with essential networking packages
- ✅ Firmware support - includes drivers for common network adapters (Intel, Realtek, Broadcom, QLogic)
- ✅ Interactive shell access with built-in network configuration helpers
- ✅ Live system - runs entirely from RAM, no installation required
Building lldpOS requires a Debian-based system with the following packages:
sudo apt install debootstrap xorriso grub-pc grub-efi-amd64-bin dosfstools cpioThe build script creates a bootable ISO with all required components:
# Clone or download the repository
git clone <repository-url>
cd lldpOS
# Build the ISO
sudo ./build.shThe build process will:
- Create a minimal Debian base system
- Install networking tools and firmware
- Configure systemd services for LLDP and hostname generation
- Create a compressed initramfs
- Generate a hybrid BIOS/UEFI bootable ISO
The output will be lldpOS-vYYYY.MM.DD.iso with the build date as version.
lldpOS/
├── build.sh
├── scripts/
│ ├── generate-hostname.sh
│ ├── shell-welcome
│ ├── welcome
│ ├── keyconf
│ ├── dns-config
│ ├── nethelp
│ ├── dhcp-config
│ ├── static-ip
│ ├── vlan-create
│ ├── bond-create
│ ├── bridge-create
│ └── lldp-display.sh
└── systemd/
├── generate-hostname.service
├── lldp-display.service
└── getty@tty1-override.conf
lldpOS can be booted through multiple methods:
-
USB Boot (for physical hardware):
sudo dd if=lldpOS-vYYYY.MM.DD.iso of=/dev/sdX bs=4M status=progress
-
Remote Management Interface (recommended for data centers):
- Dell iDRAC - Virtual Console → Virtual Media → Map ISO
- HP iLO - Virtual Media → Mount ISO/CDROM
- Supermicro IPMI - Virtual Media → CD-ROM Image
- Lenovo XCC - Remote Control → Virtual Media
This allows you to boot lldpOS remotely without physical access, perfect for troubleshooting remote servers.
-
Virtualization Platforms:
- VMware ESXi / vSphere - Mount as virtual CD/DVD
- Proxmox VE - Upload ISO to storage, attach to VM
- KVM/QEMU - Use
-cdromoption - Hyper-V - Attach ISO to virtual DVD drive
-
PXE Boot (advanced):
- Extract
vmlinuzandinitramfs.imgfrom the ISO - Configure your PXE server to chainload these files
- Extract
Boot Process:
Once booted, the system will automatically:
- Generate a unique hostname (e.g.,
brave-falcon-1234) - Bring up all network interfaces
- Start LLDP daemon and discover neighbors
- Display the main TUI interface
Upon boot, you'll see the main menu with four options:
┌─────────────────────────────────┐
│ lldpOS v2025.10.28 │
├─────────────────────────────────┤
│ Hostname: brave-falcon-1234 │
│ │
│ 1. View LLDP Neighbors │
│ 2. Shell Access │
│ 3. Reboot System │
│ 4. Shutdown System │
└─────────────────────────────────┘
- Use arrow keys or number keys to select options
- Press Enter to confirm
- In LLDP view, press Refresh button to rescan neighbors
- Select a neighbor to view detailed LLDP information
lldpOS automatically generates a unique, memorable hostname on each boot using the format:
<adjective>-<animal>-<number>
Examples: brave-falcon-1234, calm-leopard-5678, wise-eagle-9012
Why this matters for LLDP:
This hostname is immediately advertised via LLDP to all connected switches. This means you can:
- Boot lldpOS on a server
- Check from the switch which port the server is connected to
- Identify the server easily without needing to label cables or track MACs
This is particularly useful during:
- Rack and stack operations
- Cable verification in dense environments
- Troubleshooting in data centers
- Pre-deployment port mapping
The LLDP interface displays all discovered neighbors showing:
- Local interface name
- Remote switch/device name
- Remote port identification
Selecting a neighbor shows detailed information including:
- Chassis ID and description
- Port ID and description
- System capabilities
- Management addresses
- VLAN information (if available)
Press 2 from the main menu to access the shell.
The first time you enter the shell, you'll be prompted to configure your keyboard layout.
nethelp- Display comprehensive network configuration guidedhcp-config- Configure DHCP on an interfacestatic-ip- Configure static IP addressvlan-create- Create VLAN interface (802.1Q)bond-create- Create bonded interface (LACP/bonding)bridge-create- Create bridge interfacedns-config- Configure DNS resolvers
ping- ICMP echo requeststraceroute- Trace network path to destinationmtr- Combined ping and traceroute (interactive)tcpdump- Packet capture and analysisiperf3- Network bandwidth testingethtool- Network interface configuration and statisticsdig/host- DNS lookup toolscurl/wget- HTTP/HTTPS requests
ip- Show/manipulate routing, devices, tunnelsifconfig- Configure network interfaces (legacy)lldpctl- Query LLDP daemon directlyss/netstat- Socket statistics
Configure DHCP:
dhcp-config eno1Configure Static IP:
static-ip eno1 192.168.1.100/24 192.168.1.1Create VLAN:
vlan-create eno1 100 # Creates eno1.100Create Bond:
bond-create bond0 eno1 eno2Create Bridge:
bridge-create br0 eno1 eno2Configure DNS:
dns-config 8.8.8.8 8.8.4.4If you need to reconfigure the keyboard layout:
keyconf- Distribution: Debian Stable (minimal variant)
- Kernel: Linux mainline from Debian repository
- Init System: systemd
- Shell: bash
- Network tools:
iproute2,net-tools,iputils-ping,traceroute,mtr-tiny,tcpdump,ethtool,iperf3 - DNS tools:
bind9-dnsutils,bind9-host - HTTP tools:
curl,wget - LLDP:
lldpd - Network configuration:
dhcpcd5,bridge-utils,vlan - Editors:
nano,less - Interface:
dialog(for TUI) - Keyboard:
kbd,console-data
- Generic Linux firmware
- Realtek adapters
- Broadcom (bnx2, bnx2x)
- QLogic
- NetXen
- Myricom
- Netronome
- GRUB loads kernel and initramfs
- Systemd starts and mounts the root filesystem (from initramfs)
generate-hostname.servicecreates a unique hostname- Network interfaces are brought up automatically
lldpdstarts and begins neighbor discoverylldp-display.servicelaunches the main TUI interface on tty1
- Read-only root: Entire system runs from RAM
- No persistence: All changes are lost on reboot
- Stateless: Perfect for diagnostic purposes
- Secure: No passwords, no open services by default
lldpOS is designed for:
- Data center diagnostics - Quick LLDP verification during rack and stack
- Network troubleshooting - Boot from USB to diagnose connectivity issues
- Infrastructure mapping - Discover network topology without configuration
- Pre-deployment testing - Verify cabling and switch configuration before OS installation
- Training and labs - Consistent network diagnostic environment
- Emergency recovery - Network access when the installed OS is unavailable
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.