Unverified Commit fc7ab227 authored by Kroese's avatar Kroese Committed by GitHub
Browse files

fix: Use gateway MAC for passt (#1045)

parent 59cf59fa
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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