시험 환경
- VPN: OpenVPN 2.6.16as1 x86_64-pc-linux-gnu
- OS: Rocky Linux 9.5
- CPU: 1 core
- RAM: 2GB
DCO를 사용하는 이유
DCO(Data Channel Offload)는 OpenVPN 프로토콜의 성능 향상 기능으로, 데이터 패킷의 암호화 및 복호화 작업을 애플리케이션(사용자 공간)에서 운영체제 커널(커널 공간)로 이동시켜 처리 속도를 크게 높이고 CPU 사용량을 줄이는 기술이다. OpenVPN Access Server(이하 OpenVPN-AS)에서 자원 사용률이 낮은데 트래픽 처리량도 낮을 때는 DCO를 설정하면 다소 개선이 가능하다. 자원 사용률이 최대치인데 실제 사용 가능한 네트워크 대역폭을 다 활용하지 못 하는 상황일 때도 DCO를 설정하면 트래픽 처리성능을 개선하여 사용하지 못 하고 있던 네트워크 대역폭을 최대치로 사용할 수 있다.
현상 및 결과
실제 네트워크에서 사용가능한 대역폭은 1 Gbps 이지만 VPN을 연결한 상태에서 통신할 시 3.4KB/s 의 통신 속도가 나타나면서 CPU 사용률이 매우 낮았다. 결과부터 설명하자면 DCO를 활용한 후에는 통신 속도가 상대적으로 매우 높아졌지만 네트워크 대역폭과 컴퓨팅 리소스를 충분히 사용하지 못 하는 현상이 있었다. 좀 더 연구해서 개선안을 찾을 예정이다.



패키지 업그레이드 및 업데이트
아래의 명령어를 입력하여 패키지를 업그레이드한다.
sudo yum upgrade
아래의 명령어를 입력하여 패키지 정보를 업데이트한다.
sudo yum update
아래의 명령어를 입력하여 추가 패키지를 다운로드 할 수 있는 저장소 설정 패키지를 설치한다.
sudo yum install epel-release

아래의 명령어를 입력하여 DKMS(Dynamic Kernel Module Support)를 설치한다.
sudo yum install dkms


아래의 명령어를 입력하여 커널 개발용 헤더 파일과 라이브러리 패키지를 설치한다.
sudo yum install kernel-devel kernel-headers

아래의 명령어를 입력하여 kmod-ovpn-dco 패키지를 설치한다. kmod-ovpn-dco는 OpenVPN의 데이터 채널(Data Channel) 처리 과정을 유저 스페이스에서 커널 스페이스로 오프로딩(Offload)하여 VPN 성능을 크게 향상시키는 커널 모듈이다.
sudo yum install kmod-ovpn-dco

기본 Rocky Linux 9.5에서 ovpn-dco가 설치되지 않아서 아래의 명령어로 등록된 모든 외부 커널 모듈을 자동으로 다시 빌드하고 설치했다.
sudo dkms autoinstall

아래의 명령어를 입력하여 DCO를 활성화한다.
sudo modprobe ovpn-dco-v2
lsmod | grep ovpn

아래의 명령어를 입력하여 OpenVPN-AS가 DCO를 사용하도록 설정한다.
echo ovpn-dco-v2 | sudo tee /etc/modules-load.d/ovpn-dco-v2.conf

아래의 명령어를 입력하여 OpenVPN-AS를 재기동하여 DCO 설정이 적용되도록 한다.
sudo systemctl restart openvpnas

OpenVPN-AS 관리자 대시보드에 접속하면 아래의 사진처럼 DCO가 활성화된 것을 볼 수 있다.

참고문서
- "OpenVPN Data Channel Offload (DCO): The Definitive Guide to the Performance Boost Making OpenVPN The Fastest VPN Protocol", OpenVPN 블로그, 2026년 2월 24일.
'웹 서버, WAS, 미들웨어 > OpenVPN' 카테고리의 다른 글
| OpenVPN-AS 인터넷 차단 정책 설정 (0) | 2026.06.30 |
|---|---|
| OpenVPN-AS 3.1.0 에서 3.2.1 로 업데이트 하기 (0) | 2026.06.24 |
| OpenVPN Access Server 3.2 출시 및 변경점 정리 (0) | 2026.06.08 |
| OpenVPN Access Server 디버그 및 로그 확인하는 방법 (0) | 2026.03.25 |
| OpenVPN Access Server가 사용하는 포트를 명령어로 변경하는 방법 (0) | 2026.03.18 |
댓글