ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [F5] DNS TCflag 관련 테스트(DNS64,GSLB)
    Network 2023. 11. 13. 06:17
    728x90
    반응형

    테스트 구성
    Client -  DNS64 - GSLB(or Dns Cache)

    UDP 512byte 동작에 대한 확인 테스트
    https://support.f5.com/csp/article/K91537308


    GSLB(v13.1.5)의 wide ip 에 60개 이상의 member등록 후 Maximum Answers Returned 을 최대치인 500 으로 설정


    TC관련 db 기본값 확인


    1. udptruncate 기본 값 + edns


    EDNS를 사용하고 있기에 512byte 넘어도 데이터를 그대로 처리

     

    2. udptruncate 기본 값 + noedns

     
    EDNS를 미사용 하고 있기에 512byte를 초과하여,
    Answer 헤더 없이 TCflag 설정하여 응답.
    Cname이 있을경우엔 Cname Answer전달 확인.
    이후 정상적은 TCP query 를 통해서 응답 받아감.

    Answer를 구성하는 rule은 아래 원문 참조

    Here are some of the truncating rules: 
    
    a. If the merged response is over 512 bytes, the response will be truncated.
    b. The least additional RRs will be removed to make sure the whole response is less than 512 bytes, the TC flag will not be set.
    c. If all of the additional RRs are removed already, but the whole response is still larger than 512 bytes, the least Authority RRs will be removed, TC flag will be set.
    d. If all of the additional RRs and Authority RRs are all removed already, but the whole response is still larger than 512 bytes, all of the Answer RRs will be removed except for the CNAME RR(see the scenario described in the Cause Section), TC flag will be set.
    e. When the TC flag is set, LDNS should establish a TCP connection with the listener to transfer the DNS response.

     


    3. gslb udptruncate disable + edns


    EDNS query 이기에 db 변경에 따른 차이는 확인되지않음.

    4. gslb udptruncate disable + noedns

      
    512 byte가 넘는 상황이지만 edns 응답인것마냥 TCflag 설정 없이 Answer 실어 보냄
    DNS64에서는 512가 넘었기에 answer없이 TCflag 설정하여 전달
    이에 클라이언트가 tcp query 를 하여 응답 받아감.

    5. gslb,dns64 udptruncate disable + edns


    edns기 때문에 512이상 데이터를 주고 받음
    TCflag가 없기에 tcp query 없음.

    6. gslb,dns64 udptruncate disable + noedns


    noedns임에도 512이상의 데이터를 전송함
    TCflag 가 없어 tcpquery 는 하지 않음
    dig에서는 특이사항없이 데이터를 인식했지만 다른 어플리케이션은 malformed로 인식하지는 않을지 
    이 동작에대해선 단정지을 수 없음.


    정리하면, F5 장비는 udptruncate라는db를 통해서 TCflag 사용 유무를 정할 수 있으며 disable시
    512를 초과하더라도 TCflag 지정하지 않고 데이터를 실어 보낸다.
    하지만, 이에대해서 어플리케이션이 정상인지 할지 알 수 없다.

    PS) DNS64 정상 동작시에도 옵션 잘 반영됨. GLSB 말고 Cache DNS 놓았을때도 정상반영 확인됨.

    728x90
    반응형
Designed by Tistory.