HTTP 프록시 체인의 DNS 실패: 어느 홉이 이름을 해석하는가?
체인형 포워드 프록시를 진단할 때 로컬 프록시 도달, 부모 해석, 웹사이트 해석을 구분하세요.
client → local forward proxy → HTTP parent → website모든 DNS가 “프록시”의 것이라고 말하기보다 실패하는 이름부터 시작합니다:
| 필요한 이름 | 도달해야 하는 홉 |
|---|---|
| 로컬 프록시 엔드포인트 | 클라이언트 |
| HTTP 부모 엔드포인트 | 로컬 포워드 프록시 |
| 웹사이트 엔드포인트 | 최종 연결을 열 때의 부모 |
엔드포인트가 호스트 이름이면 이 홉들은 서로 다른 리졸버를 쓸 수 있습니다. HTTPS에서는 포워드 프록시가 CONNECT의 목적지 호스트와 포트를 부모에게 넘기고, 부모가 최종 연결을 맺습니다. 원래 클라이언트가 먼저 웹사이트를 해석할 필요는 없습니다. 일반 HTTP 전달도 목적지 정보를 앞으로 전달합니다.
이것은 각 이름을 정확히 한 대의 기계만 조회한다는 약속이 아닙니다. ACL 평가, 캐싱, 정책, 구현 세부 사항 때문에 추가 조회가 생길 수 있습니다.
부모를 사용할 수 없을 때 폴백 정책을 확인하세요. 직접 접근이 허용되면 로컬 프록시가 자체 리졸버와 소스 주소 결정을 가진 웹사이트 방향 홉이 될 수 있습니다. 부모를 설정했다는 것만으로 모든 요청이 그것을 사용했음이 증명되지는 않습니다.
실패 시에는 hosts 파일을 편집하기 전에 그 이름과 해석을 시도하는 프로세스를 확인하세요. 클라이언트 측 편집으로는 하위의 모든 결정을 고칠 수 없습니다. 최종 공개 소스는 웹사이트 연결을 여는 홉에 속합니다; 그 소스를 관찰하는 것은 DNS가 어디서 일어났는지를 측정하는 것과 같지 않습니다.