mirror of
https://passt.top/passt
synced 2025-05-29 12:35:33 +02:00
Don't take "our" MAC address from the host
When sending frames to the guest over the tap link, we need a source MAC address. Currently we take that from the MAC address of the main interface on the host, but that doesn't actually make much sense: * We can't preserve the real MAC address of packets from anywhere external so there's no transparency case here * In fact, it's confusingly different from how we handle IP addresses: whereas we give the guest the same IP as the host, we're making the host's MAC the one MAC that the guest *can't* use for itself. * We already need a fallback case if the host doesn't have an Ethernet like MAC (e.g. if it's connected via a point to point interface, such as a wireguard VPN). Change to just just use an arbitrary fixed MAC address - I've picked 9a:55:9a:55:9a:55. It's simpler and has the small advantage of making the fact that passt/pasta is in use typically obvious from guest side packet dumps. This can still, of course, be overridden with the -M option. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
356de97e43
commit
90e83d50a9
3 changed files with 13 additions and 35 deletions
7
passt.h
7
passt.h
|
@ -26,6 +26,13 @@ union epoll_ref;
|
|||
#include "tcp.h"
|
||||
#include "udp.h"
|
||||
|
||||
/* Default address for our end on the tap interface. Bit 0 of byte 0 must be 0
|
||||
* (unicast) and bit 1 of byte 1 must be 1 (locally administered). Otherwise
|
||||
* it's arbitrary.
|
||||
*/
|
||||
#define MAC_OUR_LAA \
|
||||
((uint8_t [ETH_ALEN]){0x9a, 0x55, 0x9a, 0x55, 0x9a, 0x55})
|
||||
|
||||
/**
|
||||
* union epoll_ref - Breakdown of reference for epoll fd bookkeeping
|
||||
* @type: Type of fd (tells us what to do with events)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue