ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Open-source network simulator for learning: build topologies, configure routers and switches from a CLI, and watch every packet.
EducationJavaScript · CSSGitHub @ganeshparajuli11OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗An open-source network simulator for learning, which runs entirely in your browser. You build a topology by dragging in routers, switches and PCs. You configure them from a command line that works the way real network gear does. Then you switch to Simulation mode and follow every frame hop by hop. Each device explains what it decided to do with the packet, and why.
There's no install, no account and no server. Open index.html through any static web server, or open the single-file build directly from disk.
| Area | Supported |
|---|---|
| Devices | Router (3 × Gigabit), switch (24 × Fast Ethernet + 2 × Gigabit), hub, PC, laptop, server |
| Layer 2 | MAC learning and flooding, VLANs, access and 802.1Q trunk ports, native VLAN, allowed-VLAN lists, spanning tree (root election, root/designated/blocked ports), switch management SVI, port security (switchport port-security with maximum, sticky and static addresses, shutdown/restrict/protect violations, err-disabled ports) |
| Layer 3 | ARP (with proxy ARP on routers), IPv4 forwarding with TTL, longest-prefix match, connected/local/static routes, default and floating static routes (administrative distance), router-on-a-stick sub-interfaces, RIP version 2 with split horizon and triggered updates, single-area OSPF (hellos, DR/BDR election, LSA flooding, shortest-path routes with bandwidth-based costs) |
| Services | DHCP server (router pools or server GUI), DHCP relay (ip helper-address), DNS server, simple web server and browser, Telnet to routers and switches (line vty 0 4, password, login, transport input) |
| Security | Numbered standard (1–99) and extended (100–199) access lists, named lists with ip access-list standard|extended NAME, sequence numbers (insert a line with 15 permit …, remove one with no 15, ip access-list resequence), remarks, ip access-group in/out, implicit deny, hit counters |
| NAT | NAT overload (PAT) with ip nat inside/outside and ip nat inside source list <acl> interface <if> overload; TCP/UDP ports and ICMP identifiers, idle timeouts, ICMP errors translated back so traceroute works; static NAT with ip nat inside source static <inside> <outside>, including ARP replies for the public address |
| Router/switch CLI | User/privileged/config modes, unique-prefix abbreviations (sh ip int br), ? help, Tab completion, history, do, interface range, show running-config, show ip route, show vlan brief, show interfaces trunk, show spanning-tree, show mac address-table, show cdp neighbors, show ip dhcp binding, show access-lists, show ip nat translations, show ip nat statistics, show ip protocols, show ip ospf neighbor, show ip ospf database, show ip ospf interface brief, show interfaces with packet and drop counters, clear counters, show users, copy run start, reload, ping (with repeat, size, source, timeout and df-bit, or the extended ping questions), traceroute and more |
| PC command prompt | ipconfig [/all /release /renew], ping [-n -l -f -i -w], tracert, telnet <host> [port] (a remote router or switch CLI in the same window), arp -a/-d, nslookup, route print |
| Learning | Simulation mode with step/play, protocol filters, animated envelopes, a per-hop packet inspector (Ethernet, 802.1Q, ARP, IPv4, ICMP, UDP, TCP, DHCP, DNS, RIP, OSPF, HTTP, Telnet), and thirteen guided labs with automatic checks |
| Files | Autosave in the browser, plus save/open topologies as .onsim.json |
Each lab builds a starting network, explains the goal and has a Check my work button. The checks run in a private copy of your network, so they never disturb what you're doing.
npm start # serves the folder on http://localhost:8080
npm test # engine, CLI and lab tests (Node 20+)
npm run build # dist/opennetsim.html, a single self-contained file
npm start and the build need Node.js. To run without any tooling, use any static server, for example python3 -m http.server, and open index.html. ES modules don't load from file://, so use the built single file if you want to double-click it.
The project uses plain JavaScript modules, with no framework and no runtime dependencies. The simulation engine doesn't touch the DOM, so it runs the same in Node (tests) and in the browser.
src/engine/ network.js discrete-event clock, cables, frame delivery, event recording
l3.js shared IPv4 stack: ARP, ICMP, routing table, ping/traceroute
host.js PC / laptop / server (+ DHCP client, DNS, HTTP) and hub
switch.js MAC table, VLANs, trunks, SVI stp.js spanning tree
router.js sub-interfaces, DHCP server/relay rip.js RIPv2 acl.js ACLs
nat.js static NAT and NAT overload (PAT)
portsec.js switch port security and err-disabled ports
telnet.js Telnet over a simplified TCP: vty lines and the PC client
ospf.js OSPF hellos, DR/BDR election, LSA flooding, SPF routes
dhcp.js DHCP server and client state machines
factory.js device catalogue, save/load
src/cli/ parser.js IOS-style grammar: prefixes, ambiguity, '?' help, Tab
ios.js router/switch commands and show output
hostcmd.js PC command prompt
src/ui/ app.js, canvas.js, devicewin.js, terminal.js, labs.js, icons.js, styles.css
tests/ node:test suites (engine scenarios, CLI sessions, every lab solved end to end)
There's a longer walkthrough in docs/ARCHITECTURE.md.
See CONTRIBUTING.md. Good first issues include more show commands, IPv6, a wireless access point, and more labs.
OpenNetSim is an independent project. It is not affiliated with or endorsed by Cisco Systems. "Cisco", "IOS" and "Packet Tracer" are trademarks of their owners. No code, images, icons, file formats or text were taken from any proprietary simulator.
The behaviour is implemented from public protocol standards (IEEE 802.3, 802.1Q and 802.1D; RFC 791, 792, 826, 2131 and 2453) and widely published command-line conventions. All device artwork is original.