fix: Do not set MTU size for legacy Windows versions (#190)
This commit is contained in:
parent
3ea684141d
commit
65cea83713
1 changed files with 30 additions and 6 deletions
|
@ -59,8 +59,10 @@ configureDHCP() {
|
||||||
fi ;;
|
fi ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if ! ip link set dev "$VM_NET_TAP" mtu "$MTU"; then
|
if [[ "$MTU" != "0" ]] && [[ "$MTU" != "1500" ]]; then
|
||||||
warn "Failed to set MTU size.."
|
if ! ip link set dev "$VM_NET_TAP" mtu "$MTU"; then
|
||||||
|
warn "Failed to set MTU size.."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while ! ip link set "$VM_NET_TAP" up; do
|
while ! ip link set "$VM_NET_TAP" up; do
|
||||||
|
@ -226,8 +228,10 @@ configureNAT() {
|
||||||
error "$tuntap" && return 1
|
error "$tuntap" && return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! ip link set dev "$VM_NET_TAP" mtu "$MTU"; then
|
if [[ "$MTU" != "0" ]] && [[ "$MTU" != "1500" ]]; then
|
||||||
warn "Failed to set MTU size.."
|
if ! ip link set dev "$VM_NET_TAP" mtu "$MTU"; then
|
||||||
|
warn "Failed to set MTU size.."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GATEWAY_MAC=$(echo "$VM_NET_MAC" | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
|
GATEWAY_MAC=$(echo "$VM_NET_MAC" | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
|
||||||
|
@ -361,6 +365,22 @@ getInfo() {
|
||||||
MTU=$(cat "/sys/class/net/$VM_NET_DEV/mtu")
|
MTU=$(cat "/sys/class/net/$VM_NET_DEV/mtu")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$MTU" -gt "1500" ]; then
|
||||||
|
info "MTU size is too large: $MTU, ignoring..." && MTU="0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${ADAPTER,,}" != "virtio-net-pci" ]]; then
|
||||||
|
if [[ "$MTU" != "0" ]] && [[ "$MTU" != "1500" ]]; then
|
||||||
|
warn "MTU size is $MTU, but cannot be set for $ADAPTER adapters!" && MTU="0"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${BOOT_MODE:-}" == "windows_legacy" ]]; then
|
||||||
|
if [[ "$MTU" != "0" ]] && [[ "$MTU" != "1500" ]]; then
|
||||||
|
warn "MTU size is $MTU, but cannot be set for legacy Windows versions!" && MTU="0"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$MAC" ]; then
|
if [ -z "$MAC" ]; then
|
||||||
local file="$STORAGE/$PROCESS.mac"
|
local file="$STORAGE/$PROCESS.mac"
|
||||||
[ -s "$file" ] && MAC=$(<"$file")
|
[ -s "$file" ] && MAC=$(<"$file")
|
||||||
|
@ -402,7 +422,10 @@ getInfo
|
||||||
html "Initializing network..."
|
html "Initializing network..."
|
||||||
|
|
||||||
if [[ "$DEBUG" == [Yy1]* ]]; then
|
if [[ "$DEBUG" == [Yy1]* ]]; then
|
||||||
info "Host: $HOST IP: $IP Gateway: $GATEWAY Interface: $VM_NET_DEV MAC: $VM_NET_MAC MTU: $MTU"
|
mtu=$(cat "/sys/class/net/$VM_NET_DEV/mtu")
|
||||||
|
line="Host: $HOST IP: $IP Gateway: $GATEWAY Interface: $VM_NET_DEV MAC: $VM_NET_MAC MTU: $mtu"
|
||||||
|
[[ "$MTU" != "0" ]] && [[ "$MTU" != "$mtu" ]] && line+=" ($MTU)"
|
||||||
|
info "$line"
|
||||||
[ -f /etc/resolv.conf ] && grep '^nameserver*' /etc/resolv.conf
|
[ -f /etc/resolv.conf ] && grep '^nameserver*' /etc/resolv.conf
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
@ -456,7 +479,8 @@ else
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NET_OPTS+=" -device $ADAPTER,romfile=,netdev=hostnet0,mac=$VM_NET_MAC,host_mtu=$MTU,id=net0"
|
NET_OPTS+=" -device $ADAPTER,id=net0,netdev=hostnet0,romfile=,mac=$VM_NET_MAC"
|
||||||
|
[[ "$MTU" != "0" ]] && [[ "$MTU" != "1500" ]] && NET_OPTS+=",host_mtu=$MTU"
|
||||||
|
|
||||||
html "Initialized network successfully..."
|
html "Initialized network successfully..."
|
||||||
return 0
|
return 0
|
||||||
|
|
Loading…
Reference in a new issue