
netemu
SMU CS441: IP-over-Ethernet network emulator with attacks and defences.
NetEmu is a four-person team project for SMU CS441, Security. Every node, router and LAN segment runs as its own Java process, talking over localhost UDP, with each LAN emulator copying Ethernet broadcast to every endpoint on its segment. I wrote the base code, around 3,000 lines covering frame and packet codecs, nodes, the router, the firewall and the IDS, and later added a full DHCP server and client with DHCP snooping feeding the IDS.
technologies
- java
- maven
- junit
- udp sockets
- multithreading
- bash
key highlights
- Custom binary Ethernet, IP, ICMP and DHCP formats with round-trip timing
- Router forwarding across three interfaces and re-framing packets for each LAN
- IDS in passive or active mode detecting IP spoofing and ping floods
- DHCP client state machine with exponential backoff, and lease tables with lazy expiry
- Attacker node for spoofing, sniffing and flooding, against a runtime-configurable firewall
- 170 JUnit tests including an end-to-end DHCP integration test
next project
rallyrank