# eaas-vde-proxy

## Overview

![overview](README.assets/overview.png)

## Problematic protocols

Important:

* DHCP
* ARP (implemented)

Nice to have:

* NetBEUI / NetBIOS

Keep in mind:

* IPv6 (NDP, Interface Identifier, ...)
* IPSec
* 802.1X

## Library support

### Go:

* gopacket (~libpcap): https://github.com/google/gopacket / https://pkg.go.dev/github.com/google/gopacket

## Binaries
### envctl - control VMs, network etc
```
$ ./envctl
Usage: envctl {start|stop|restart} {all|network|vms|alpine|alpine1|alpine2|kali|proxy2|proxy3|proxies}
```

### proxy - main binary
```
$ ./proxy -help
Usage of ./proxy:
  -log int
        allowed: 5 (debug), 4 (info), 3 (warning), 2 (error), 1 (fatal) (default 4)
  -logfile string
        Location to write output to
  -newip string
        IP after change (default "10.0.0.15")
  -newmac string
        MAC after change
  -oldip string
        IP before change
  -oldmac string
        MAC before change
  -passthrough
        Whether to pass every traffic through
  -pidfile string
        Location to write the pid to
  -proxy string
        Number of the proxy switch (default "1")
```
