ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [IPv6] ENETUNREACH
    TIL 2024. 4. 22. 14:33

    nest를 사용하는 관제 서버에서 telegram api를 이용하고,

    api 메소드 중 sendMessage를 사용해서 보낼 떄 

     

    AggregateError

     

    code: 'ENETUNREACH',

    code: 'ETIMEDOUT',

     

    두가지 오류로 인해 제대로 작동하지 않던 현상

    처음엔 간헐적으로 발생하다가, 어느 시점부터는 대부분 이 오류로 인해 메세지가 가지 않았다.

     

    ETIMEDOUT은 ENETUNREACH로 인해 발생한 오류고,

    결국엔 ENETUNREACH를 해결하면 됨.

     

    IPv6를 사용하지 않도록 서버 인스턴스에서 아래 명령어를 입력하면 귀신같이 해결되긴 함.

    sudo sysctl net.ipv6.conf.all.disable_ipv6=1

     

    물론 임시방편이긴 한데, 강력하고 편한 방법이라 IPv6에서도 문제가 없도록 세팅하는것보다 그냥 이렇게 두는것도 나쁘지 않을거같다...

     

    아래는 영구적용방법

    sudo vi /etc/sysctl.conf
    
    
    // sysctl.conf 파일 맨 아래에 아래 라인 추가
    net.ipv6.conf.all.disable_ipv6 = 1 
    
    
    //저장 후 아래 명령어 실행
    sudo sysctl -p

     


     

    근본적 해결 방법

     

    내 관제서버는 동일한 인스턴스에서 nginx를 사용하고 있었고,
    nginx의 서버블록 설정에

     

    listen [::]:80;

    listen [::]:443 ssl ipv6only=on;

    (ipv6only=on 구문은 옵션임, 관례적으로 쓰는게 좋긴 함)

     

    와 같은 IPv6 설정이 되어있지 않았기 때문이었다

     

    이 설정을 해주고,

    인스턴스의 보안규칙을 IPv6에 대해서도 적절히 설정해주면 해결 완료

     

    이거아니네 허허

    'TIL' 카테고리의 다른 글

    [서버] http 502 서버 메모리 부족  (0) 2024.04.30
    [https] redirect  (0) 2024.04.17
    [https] nginx로 간단하게 https 설정  (0) 2024.04.16
    [Nest] 모듈 export  (0) 2024.04.01
    [.env] 환경변수 로드 순서  (0) 2024.03.26
Designed by Tistory.