blob: f055443f261452ea13b386e9656e2b01702ef698 [file] [view]
# What
sheep_net is a character virtual device that bridge between BasiliskII and Physical Ethernet card(P)
Here is logical diagram:
Guest Mac OS in emulation (G) <==> Basilisk II (B) <==> /dev/sheep_net (S) <==> Physical Ethernet card on host (P)
sheep_net module masquerade and de-masquerade MAC address on Ethernet frame so that Guest OS and host share the same MAC address with different IP.
See details in [IP aliasing](https://en.wikipedia.org/wiki/IP_aliasing)
# How
## How it works
Sample Setting:
Guest Mac OS IP: 192.168.2.2, Fake MAC address: 84:38:35:5e:c5:5b
Host OS Physical Ethernet car IP: 192.168.2.3, physical MAC address: 84:38:35:5e:c5:5a
From outside, we see 192.168.2.2 and 192.168.2.3 share the same physical MAC address: 84:38:35:5e:c5:5a
From insides, sheep_net module masquerade and de-masquerade MAC address of Ethernet packet between Basilisk and
```
B ==> S ==> P: de-masquerade MAC, convert Fake to Physical
B <== S <== P: masquerade MAC, convert Physical to Fake
```
## How to compile
```
​cd Linux/NetDriver
make
//create sheep_net device node
sudo make dev
sudo chown [user account] /dev/sheep_net
sudo make install
sudo modprobe sheep_net
```
## How to use
1. Disable IP forwarding on host (Recommended: By disabling it, guest OS won't receive duplicate IP packet from host again.)
2. Disable firewall on host (Recommended: host may send ICMP host unreachable to gateway. Or you can disable ICMP sending from host by changing iptables.)
3. sudo modprobe sheep_net
4. sudo chown [user account] /dev/sheep_net
5. Launch BasiliskII, choose your physical Ethernet card interface in network tab