Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

kdump でサポートされる VLAN 設定

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 8
  • VLAN 上のリモートターゲットに vmcores をダンプするように設定されたkdump

Issue

  • kdump で動作する VLAN ネットワーク設定とは?

Resolution

Red Hat Enterprise Linux 8

  • ローカルシステムの kdump でサポートされる VLAN 設定

    • シングルデバイス
    • ボンディング
    • チーム
  • ローカルシステムの kdump でサポートされない VLAN 設定

    • ブリッジ

Red Hat Enterprise Linux 7

  • ローカルシステムの kdump でサポートされる VLAN 設定

    • シングルデバイス
    • ボンディング
  • ローカルシステムの kdump でサポートされない VLAN 設定

    • ブリッジ
    • チーム

Root Cause

Red Hat Enterprise Linux 8

  • ローカルシステムの VLAN 設定をチェックする kdump (執筆時は kexec-tools-2.0.20-46.el8_4.2.x86_64) のソースコードを以下に示します。この kdump はブリッジデバイス上の VLAN がサポートされないことをコンソールに明示的に報告します。

    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

  • ローカルシステムの VLAN 設定をチェックする kdump (執筆時は kexec-tools-2.0.15-21.el7_6.3.x86_64) のソースコードを以下に示します。この kdump はブリッジデバイスまたはチーム上の VLAN がサポートされないことをコンソールに明示的に報告します。

    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