What VLAN configurations are supported for kdump?
Environment
- Red Hat Enterprise Linux 7.
- Red Hat Enterprise Linux 8.
- Red Hat Enterprise Linux 9.
kdump
configured to dump vmcores to a remote target on a VLAN
Issue
- What VLAN network configurations work with
kdump
?
Resolution
Red Hat Enterprise Linux 8 & 9.
-
Supported VLAN configurations for
kdump
on the local system- Single device
- Bonds
- Teams
-
Unsupported VLAN configurations for
kdump
on the local system- Bridges
Red Hat Enterprise Linux 7
-
Supported VLAN configurations for
kdump
on the local system- Single device
- Bonds
-
Unsupported VLAN configurations for
kdump
on the local system- Bridges
- Teams
Root Cause
Red Hat Enterprise Linux 9.
- The source code for kdump (kexec-tools-2.0.23-9_1.el9_0.x86_64 at the time of writing) which checks the VLAN configuration on the local system is listed below, wherein kdump explicitly reports to the console that VLAN over a bridged device is unsupported:
kdump_setup_vlan() {
local _netdev=$1
local _phydev
local _netmac
local _kdumpdev
_phydev="$(awk '/^Device:/{print $2}' /proc/net/vlan/"$_netdev")"
_netmac="$(kdump_get_mac_addr "$_phydev")"
#Just support vlan over bond and team
if kdump_is_bridge "$_phydev"; then
derror "Vlan over bridge is not supported!" <-----
exit 1
elif kdump_is_bond "$_phydev"; then
(kdump_setup_bond "$_phydev" "$(get_nmcli_connection_apath_by_ifname "$_phydev")") || exit 1
echo " vlan=$(kdump_setup_ifname "$_netdev"):$_phydev" > "${initdir}/etc/cmdline.d/43vlan.conf"
else
_kdumpdev="$(kdump_setup_ifname "$_phydev")"
echo " vlan=$(kdump_setup_ifname "$_netdev"):$_kdumpdev ifname=$_kdumpdev:$_netmac" > "${initdir}/etc/cmdline.d/43vlan.conf"
fi
}
Red Hat Enterprise Linux 8
-
The source code for
kdump
(kexec-tools-2.0.20-46.el8_4.2.x86_64
at the time of writing) which checks the VLAN configuration on the local system is listed below, whereinkdump
explicitly reports to the console that VLAN over a bridged device is unsupported:kdump_setup_vlan() { local _netdev=$1 local _phydev="$(awk '/^Device:/{print $2}' /proc/net/vlan/"$_netdev")" local _netmac="$(kdump_get_mac_addr $_phydev)" local _kdumpdev #Just support vlan over bond and team if kdump_is_bridge "$_phydev"; then derror "Vlan over bridge is not supported!" <----- exit 1 elif kdump_is_bond "$_phydev"; then kdump_setup_bond "$_phydev" echo " vlan=$(kdump_setup_ifname $_netdev):$_phydev" > ${initdir}/etc/cmdline.d/43vlan.conf else _kdumpdev="$(kdump_setup_ifname $_phydev)" echo " vlan=$(kdump_setup_ifname $_netdev):$_kdumpdev ifname=$_kdumpdev:$_netmac" > ${initdir}/etc/cmdline.d/43vlan.conf fi }
Red Hat Enterprise Linux 7
-
The source code for
kdump
(kexec-tools-2.0.15-21.el7_6.3.x86_64
at the time of writing) which checks the VLAN configuration on the local system is listed below, whereinkdump
explicitly reports to the console that VLAN over a bridged device or over a team is unsupported:kdump_setup_vlan() { local _netdev=$1 local _phydev="$(awk '/^Device:/{print $2}' /proc/net/vlan/"$_netdev")" local _netmac="$(kdump_get_mac_addr $_phydev)" local _kdumpdev #Just support vlan over bond, it is not easy #to support all other complex setup if kdump_is_bridge "$_phydev"; then derror "Vlan over bridge is not supported!" <--- exit 1 elif kdump_is_team "$_phydev"; then derror "Vlan over team is not supported!" <--- exit 1 elif kdump_is_bond "$_phydev"; then kdump_setup_bond "$_phydev" echo " vlan=$_netdev:$_phydev" > ${initdir}/etc/cmdline.d/43vlan.conf else _kdumpdev="$(kdump_setup_ifname $_phydev)" echo " vlan=$_netdev:$_kdumpdev ifname=$_kdumpdev:$_netmac" > ${initdir}/etc/cmdline.d/43vlan.conf fi }
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments