[Discord] lavalink 1006 에러 해결기

2026. 3. 16. 16:58·Programming/트러블슈팅
반응형

참조 사이트


문제발생

wavelink 3.0.0 버전 기반의 discord client bot과 Lavalink(v4.1.2)의 조합으로 Discord 노래봇을 만들어 사용하던 중, 3월부터 위와같은 1006 Connection Error가 발생하면서 노래재생이 되지 않는 문제가 발생했습니다.

마침, 이번달에 인터넷 변경으로 서버와 연결된 공유기 앞단에 모뎀이 추가되어 이중 NAT환경이 되어버려 기본적인 설정을 끝마친 상태였는데 이러한 환경에서 생긴 문제점이라 판단했습니다.
이에대해 아래와 같은 잠정적 원인들에 대해 문제해결 시도를 해보았지만, 아무런 진전이 없었습니다.

  • 이중 NAT 형성으로 인한 UDP 패킷 손실
    • 모뎀 -> 공유기 과정중 UDP 패킷이 방화벽에 걸리거나 제대로 전달이 되지 않았을 거 같았음.
    • 시도: DMZ 설정 및 포트포워딩 재설정을 시도 -> 해결되지 않음.
    • 시도: 모뎀을 브릿지모드로 변경 -> 해결되지 않음
  • MTU(Maximum Transmission Unit) 불일치
    • 패킷 크기가 MTU(기본값 1500)에 걸려 조각화 되면서 드랍되었을 가능성
    • 시도: ping 테스트 후, MTU를 하향조정& docker network MTU 하향조정 -> 해결되지 않음
  • UDP 포트 고갈 및 매핑이슈
    • Lavalink가 사용하는 동적 UDP 포트들이 제대로 매핑되지 않았을 가능성
    • 시도: 50000~65535/UDP를 강제할당 -> iptables 오버헤드로 서버다운됨 -> 해결되지 않음
  • IPv6 우선순위 문제
    • 디스코드 미디어 서버가 IPv6를 사용하다가 타임아웃이 발생되었을 가능성
    • 시도: 'java.net.preferIPv4Stack=true' 옵션 강제 적용 -> 해결되지 않음

원인 발견

https://discord.com/blog/bringing-dave-to-all-discord-platforms

 

Bringing DAVE to All Discord Platforms

From March 1st, 2026, all clients and apps must be updated to utilize DAVE’s end-to-end encryption support for voice and video calls. In this blog, we explore the challenges we encountered bringing E2EE to browsers, and share what you may need to do to e

discord.com

 

몇시간을 해결하던 중, Lavalink의 error log 레벨을 DEBUG로 올리고 확인 중, E2EE에 관한 에러가 나오고, 이를 확인해보니 2026년 3월 1일부터 Discord 모든 통화과정에 DAVE(Discord's Audio Video Encryption) 기반의 E2EE(종단간 암호화) 프로토콜 사용을 위무화한 것을 발견했습니다.

  Legacy DAVE(E2EE)
암호화 방식 SRTP(간이 암호화) MLS(Messaging Layer Security) 기반 E2EE
키 관리 디스코드 서버에서 키를 가짐 Cilent 간에만 키 공유
보안 수준 서버에서 감청가능 서버에서도 데이터 확인 불가
요구사항 기존 라이브러리 호환 Ntive 암호화 라이브러리(dave-jvm) 필수

 

해당 암호화는 음성과 영상에만 적용되고 텍스트에는 적용되지 않아, 기존에 Embed로 음악 플레이어를 구현하고 있었는데 이러한 부분에서 아무런 문제가 발생하지 않아 예상을 못했습니다. 또한, 제가 쓰던 Legacy에서 Handshake 자체를 할 수 없기에, 1006에러가 발생했던 것 이였습니다.

문제 해결

원인을 파악했으니 문제 해결을 위해 Lavalink 엔진과 이에 맞는 Bot Library를 찾아 전면 교체했습니다.

https://github.com/lavalink-devs/lavalink/releases

 

Releases · lavalink-devs/Lavalink

Standalone audio sending node based on Lavaplayer. - lavalink-devs/Lavalink

github.com

 

4.1.2 버전의 다음버전부터 바로 DAVE를 지원한다.

기존에 사용중인 Lavalink 4.1.2 버전의 다음버전부터 바로 DAVE를 지원하기에, Latest버전인 4.2.2를 채택하고 client측 library도 안정성있게 wavelink -> lavalink 5.10.0으로 교체를 진행, 그에 맞는 코드를 리팩토링 작업 후, 정상적으로 작동했습니다.

 

잘된다!

 

 


틀린 부분이 있거나 인용한 부분에 대해 문제가 있을 시
댓글로 알려주시면 감사하겠습니다.

반응형

'Programming > 트러블슈팅' 카테고리의 다른 글

[Jenkins] DooD 방식의 Jenkins에서 파이프라인 중 Permission 문제  (1) 2025.05.30
[보안] NGINX ip 직접 접속 차단하기  (0) 2025.05.18
'Programming/트러블슈팅' 카테고리의 다른 글
  • [Jenkins] DooD 방식의 Jenkins에서 파이프라인 중 Permission 문제
  • [보안] NGINX ip 직접 접속 차단하기
wwwjong
wwwjong
wwwjong 님의 블로그 입니다.
  • wwwjong
    wwwjong 님의 블로그
    wwwjong
  • 전체
    오늘
    어제
    • 분류 전체보기 (42)
      • Programming (12)
        • 트러블슈팅 (3)
        • Dev notes (9)
      • CS (2)
        • Infra (2)
      • 개발환경 (6)
        • Ubuntu (6)
      • Algorithms (15)
        • 백준 (8)
        • Algorithm (3)
        • 코드트리 (3)
        • Programmers (1)
      • Study (6)
        • 면접을 위한 CS 전공지식 노트 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    docker compose
    면접을 위한 CS 전공지식 노트
    트랜스포머
    ubuntu
    transformer
    Server
    딥러닝
    skala
    CS
    코테공부
    백준
    코드트리
    ubuntu server
    docker
    Jenkins
    LLM
    computer science
    코딩테스트
    AI
    Nginx
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.1
wwwjong
[Discord] lavalink 1006 에러 해결기
상단으로

티스토리툴바