From fc7ab22741ef09802a37ec4ba80c2f8afe4c9a6c Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 7 Oct 2025 02:15:26 +0200 Subject: [PATCH] fix: Use gateway MAC for passt (#1045) --- src/network.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/network.sh b/src/network.sh index c8136aa..00d53e1 100644 --- a/src/network.sh +++ b/src/network.sh @@ -303,7 +303,7 @@ configurePasst() { PASST_OPTS+=" -t $exclude" PASST_OPTS+=" -u $exclude" PASST_OPTS+=" -H $VM_NET_HOST" - PASST_OPTS+=" -M $VM_NET_MAC" + PASST_OPTS+=" -M $GATEWAY_MAC" PASST_OPTS+=" -P /var/run/passt.pid" PASST_OPTS+=" -l $log" PASST_OPTS+=" -q" @@ -316,7 +316,7 @@ configurePasst() { PASST_OPTS=$(echo "$PASST_OPTS" | sed 's/\t/ /g' | tr -s ' ' | sed 's/^ *//') [[ "$DEBUG" == [Yy1]* ]] && printf "Passt arguments:\n\n%s\n\n" "${PASST_OPTS// -/$'\n-'}" - if ! $PASST ${PASST_OPTS:+ $PASST_OPTS}; then + if ! $PASST ${PASST_OPTS:+ $PASST_OPTS} >/dev/null 2>&1; then local msg="Failed to start passt, reason: $?" [ -f "$log" ] && cat "$log" error "$msg" @@ -325,6 +325,10 @@ configurePasst() { if [[ "$PASST_DEBUG" == [Yy1]* ]]; then tail -fn +0 "$log" & + else + if [[ "$DEBUG" == [Yy1]* ]]; then + cat "$log" && echo "" + fi fi NET_OPTS="-netdev stream,id=hostnet0,server=off,addr.type=unix,addr.path=/tmp/passt_1.socket" @@ -401,8 +405,6 @@ configureNAT() { fi fi - GATEWAY_MAC=$(echo "$VM_NET_MAC" | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/') - if ! ip link set dev "$VM_NET_TAP" address "$GATEWAY_MAC"; then warn "failed to set gateway MAC address.." fi @@ -660,6 +662,8 @@ getInfo() { error "Invalid MAC address: '$VM_NET_MAC', should be 12 or 17 digits long!" && exit 28 fi + GATEWAY_MAC=$(echo "$VM_NET_MAC" | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/') + if [[ "$PODMAN" == [Yy1]* && "$DHCP" != [Yy1]* ]]; then if [ -z "$NETWORK" ] || [[ "${NETWORK^^}" == "Y" ]]; then # By default Podman has no permissions for NAT networking