Skip to main content

Tutorial: Upgrade the OpenVPN DCO Module

Abstract

Upgrade the OpenVPN DCO module on Access Server. Learn when upgrades are automatic, how to update manually, and how to reload DCO without rebooting.

Overview

This tutorial shows you how to upgrade the OpenVPN Data Channel Offload (DCO) module installed on your Access Server.

In Access Server 3.x, DCO is enabled by default.

  • If you install or upgrade Access Server using the installation script (install.sh), the DCO module is installed and enabled automatically.

  • If you install or upgrade Access Server using your system package manager (apt, yum, etc.), the DCO module may not be installed and may need to be installed manually.

Prerequisites

  • Access Server with OpenVPN DCO enabled.

  • Root access to the server console.

How you upgrade DCO depends on how you installed or upgraded Access Server.

If you used your system package manager

If you installed or upgraded Access Server using your system package manager (apt, yum, etc.), you need to install the DCO module manually.

Continue with the steps below.

Upgrade DCO on Ubuntu or Debian

  1. Connect to the console and get root privileges.

  2. Update the system:

    apt update
    apt upgrade
  3. Install or update the DCO module:

    • For Access Server 3.2.0 or newer:

      apt install ovpn-dkms
    • For Access Server 3.1.0 or earlier:

      # No additional package required

Upgrade DCO on Red Hat Enterprise Linux

  1. Connect to the console and get root privileges.

  2. Update the system:

    yum update
  3. Install or update the DCO module:

    • For Access Server 3.2.0 or newer:

      yum install kmod-ovpn
    • For Access Server 3.1.0 or earlier:

      # No additional package required

After upgrading, you need to load the updated DCO module.

Option B: Reload the module without rebooting

Note

Use this option if you can't reboot your server.

  • For Access Server 3.2.0 or newer:

    systemctl stop openvpnas
    modprobe -r ovpn
    modprobe ovpn
    systemctl start openvpnas
  • For Access Server 3.1.0 or earlier:

    systemctl stop openvpnas
    modprobe -r ovpn_dco_v2
    modprobe ovpn_dco_v2
    systemctl start openvpnas

After the upgrade, confirm that DCO is active.

From the Admin Web UI

  1. Sign in to the Admin Web UI.

  2. Click Status.

  3. On the Overview tab, locate Server Details.

  4. Confirm that DCO is shown as enabled. Result:

    • Pass: DCO is shown as enabled → no further action needed.

    • Fail: DCO is not enabled → return to Step 1 or review troubleshooting.

  5. Click VPN Server.

    • The Network Settings tab is displayed.

  6. Click the Data Channel Offload tab.

    • The DCO status displays with additional details.

From the CLI

You can also confirm DCO availability and usage from the command line.

  1. Connect to the console and get root privileges.

  2. Check DCO availability:

    sacli support | grep 'ovpn-dco availability'
    • Example output for Access Server 3.2.0 or newer:

      ovpn-dco availability: True, ovpn version: ovpn-net-next/main-7.x
    • Example output for Access Server 3.1.0 or earlier:

      ovpn-dco availability: True, ovpn-dco version 0.2.x
  3. Verify that DCO is actively in use by the OpenVPN daemon:

    ip -details link show
  4. Look for:

    • 3.2.0 or newer: ovpn

    • 3.1.0 or earlier: ovpn-dco

    Tip

    If DCO is available but not active, it may not be enabled or loaded correctly.

  5. Check DKMS module status:

    dkms status
    • Example output for 3.2.0 or newer:

      ovpn/7.x.x, <kernel>, x86_64: installed
    • Example output for 3.1.0 or earlier:

      ovpn-dco/0.2.x, <kernel>, x86_64: installed
  6. Check module details:

    • For 3.2.0 or newer, run:

      modinfo ovpn
    • For 3.1.0 or earlier, run:

      modinfo ovpn-dco-v2
    • Result:

  7. Review the outputs from the commands above and use them to determine whether DCO is active:

    • ✅ Pass:

      • ovpn-dco availability: True

      • The correct module appears (ovpn for 3.2.0+, or ovpn-dco for earlier versions).

      • The DKMS module shows as installed.

    • Fail:

      • Availability is False

      • The DCO module is missing or not loaded.

      • No DCO interface appears in the output.