요약
- RFC 3011은 DHCP 요청자가 자신의 패킷이 서버에 도달한 네트워크와 다른 할당 서브넷을 지명할 수 있게 하여, 관측된 출발지와 요청된 자원 위치를 분리했습니다.
- 서버가 옵션 118을 동일하게 되돌려주는 것은 좁은 처리 수신 확인일 뿐, 요청자 신원·풀 사용 자격·경로 가능성·실제 사용 성공의 증명이 아니며, 새로운 재량은 풀 고갈 가능 표면도 넓혔습니다.
DHCP 서버는 주소를 선택하기 전에 한 가지 질문에 답해야 합니다: 어느 풀을 사용해야 하는가?RFC 2131이 기술한 보통 설계에서는 토폴로지가 그 답을 제공했습니다. 릴레이가giaddr을 채웠다면 서버는 그 필드로 클라이언트의 서브넷을 찾을 수 있었습니다.giaddr이 0이라면 수신 인터페이스가 단서를 제공했습니다. 패킷의 경로가 클라이언트의 할당 맥락을 대신했습니다.
이 지름길이 유용했던 이유는 대부분의 요청과 대부분의 임대가 같은 보이는 네트워크에 속했기 때문입니다. 그러나 접속 장치는 아키텍처를 위반하지 않으면서 그 가정을 깨뜨릴 수 있었습니다. 원격 접속 서버는 내부 사설 서브넷을 통해 DHCP 서버와 통신하면서 하나 이상의 외부 네트워크의 가입자에게 주소를 할당할 수 있습니다. 그 외부 네트워크는 내부 네트워크에서 IP 라우팅 가능하지 않을 수도 있습니다. 요청은 한 곳에서 도착해야 했고, 주소는 다른 곳에서 나와야 했습니다.
2000년 11월에 발표된RFC 3011은 그 불일치에 공개 필드를 부여했습니다. 이 IPv4 서브넷 선택 옵션은 4옥텟 서브넷 주소 하나를 실었습니다. 요청자는 의도한 서브넷의 주소를 취해 호스트 비트를 0으로 마스킹하여 값을 만들었습니다. IANA는 이 메커니즘에 DHCP 옵션 118을 배정했으며, 현재BOOTP/DHCP 레지스트리에도 길이 4로 기록되어 있습니다.
이 옵션은 단순히 또 하나의 힌트를 추가한 것이 아니었습니다. 서버가 이를 존중하도록 구성되어 있다면, 선택된 서브넷이giaddr이나 수신 인터페이스에서의 통상적 추론보다 우선했습니다. 서버는 지정된 서브넷 또는 같은 네트워크 세그먼트에 연결된 다른 서브넷의 주소를 선택해야 했고, 그 경계 밖의 주소를 제안하는 것은 금지되었습니다.
이 역사적 변화는 옵션 프레이밍 6바이트 안에 들어가기 때문에 놓치기 쉽습니다. 옵션 118 이전에는 서버가 관측된 도착 토폴로지를 할당 선택자로 취급할 수 있었습니다. 옵션 118 이후에는 패킷이 다른 할당 표면에 대한 주장을 담을 수 있게 되었습니다. 관측과 지시는 더 이상 같은 사실이 아니었습니다.
동기를 제공한 장치는 두 역할을 동시에 수행했습니다. DHCP 서버 쪽에서는 내부 네트워크에서 접근 가능한 요청자였고, 가입자 쪽에서는 외부 네트워크의 주소 관리자였습니다. 프로토콜은 내부 반환 경로를 보존하면서 그 경로가 내부 풀에서의 선택을 강제하지 않도록 해야 했습니다. 따라서 RFC 3011은 옵션 118이 할당을 대체하면서도giaddr을 통신용으로 살려 두었습니다.
그 분리는 갱신 과정에서 명시적으로 드러납니다. DHCP 서버는 할당된 주소로 DHCPACK을 직접 보낼 수 있지만, 그 외부 주소는 서버에서 라우팅 가능하지 않을 수 있습니다. 따라서 옵션 118을 담은 모든 요청은 요청자가 DHCP 패킷을 수신할 수 있는 IPv4 주소를giaddr에 넣어야 했습니다. 응답 목적지를 고르는 규칙은 변하지 않았습니다. 한 필드는 응답이 돌아올 수 있는 곳을, 다른 필드는 임대를 가져와야 할 곳을 명명했습니다.
RFC 3011은 작은 호환성 수신 확인도 만들었습니다. 옵션 118을 지원하도록 구성된 서버는 클라이언트가 Parameter Request List에 요청하지 않았더라도, 그 옵션을 보낸 클라이언트에 대한 모든 응답에 동일한 복사본을 돌려야 했습니다. 참여 클라이언트는 옵션이 없는 DHCPOFFER나 DHCPACK을 폐기해야 했습니다.
이 폐기 규칙은 혼합 네트워크에서 중요했습니다. 구형 서버는 낯선 옵션을 무시하고 평소 풀 선택 알고리즘을 따르며 응답에서 옵션 118을 생략합니다. 관리자가 기능을 비활성화한 신형 서버도 마찬가지입니다. 요청자는 문법상 유효한 제안을 받았다는 이유만으로 주소를 안전하게 수용할 수 없습니다. 에코가 없다는 것은 특별한 할당 계약이 발효되지 않았다는 뜻이었습니다.
그러나 에코가 증명하는 것은 그뿐이었습니다. 이는 RFC 3011이 지배하는 처리 경로를 옵션이 통과했다는 것을 보여줄 뿐, 요청을 발생시킨 주체가 누구인지, 그 주체가 명명된 풀을 소비할 자격이 있는지, 할당된 주소로의 경로가 존재하는지, 그 주소가 외부 링크에서 충돌 없는지, 가입자가 실제로 서비스를 받았는지는 증명하지 못했습니다. 동일한 바이트는 하나의 프로토콜 결정에 대한 증거였지, 모든 하류 사실을 압축한 인증서가 아니었습니다.
보안 절은 그 귀결을 날카롭게 도출했습니다. 당시 DHCP 자체는 인증 메커니즘을 제공하지 않았습니다. 비로컬 서브넷을 지명할 수 있는 클라이언트는 자기 로컬 풀 이상을 공격할 수 있었습니다. 도착 토폴로지가 선택한 주소만 고갈시키는 대신, 요청을 더 넓은 풀 집합으로 겨냥할 수 있었습니다.
그래서 RFC 3011은 지원을 기본 비활성으로 만들었습니다. 운영자가 의도적으로 활성화해야 했고, 서버가 기능을 제한하도록 권장되었습니다. 예를 들어 구성된 클라이언트 식별자, 선택된 서브넷의 요청, 목표 서브넷의 유한 목록으로 제한하는 방식입니다. 옵션은 선택을 표현하는 방법을 표준화했을 뿐, 모든 발화자에게 그 선택을 승인하지 않았습니다.
이 구분이 이 역사의 핵심입니다. 공개 옵션 번호는 구현체 간 상호운용성 문제를 해결합니다. 그러나 요청자가 자신이 관측되는 장소 밖에서 할당을 지시할 수 있게 되었을 때 생기는 위임-대리인 문제는 해결하지 못합니다. 서버에는 여전히 다른 질문에 답할 수 있는 로컬 정책이 필요합니다. 어떤 요청자가 어느 풀에 영향을 줄 수 있는가?
RFC 2132는 코드, 길이, 값을 담을 수 있는 옵션 문법을 제공했습니다. RFC 3011은 그 문법에서 하나의 새 값을 의미 있게 만들었습니다. 이전 문법이 지시를 해석 가능하게 만들었고, 새 메모가 구성 아래에서 실행 가능하게 만들었습니다. 어느 층도 스스로 지시를 인증하지 않았습니다.
이후 작업은 관련된 토폴로지 주장을 릴레이 경계 쪽으로 옮겼습니다.RFC 3046은 운영자의 신뢰 모델 아래 릴레이가 추가할 수 있는 회로 식별자와 원격 식별자를 포함한 Relay Agent Information을 정의했습니다. 이어서RFC 3527은 릴레이와의 통신에 쓰이는 주소와 할당 링크가 달라야 하는 릴레이를 위한 링크 선택 서브옵션을 정의했습니다.
RFC 3527은 삼분 구조를 보존했습니다. 릴레이가 도달 가능한 주소는giaddr에 남을 수 있고, 링크 선택 값은 풀 선택을 이끌며, 최종 할당된 주소는 클라이언트 쪽 링크에 속합니다. 패킷에 RFC 3011의 클라이언트 옵션과 RFC 3527의 릴레이 서브옵션이 모두 있다면 링크 선택이 우선합니다. 이 규칙은 4옥텟 값이 두 개 존재한다는 사실이 아니라 운영자가 통제하는 릴레이 맥락에 더 큰 무게를 두었습니다.
그러한 경우에도 에코는 자동으로 확인 응답이 아니었습니다. RFC 3527은 Relay Agent Information이 컨테이너로 복사될 수 있기 때문에, 릴레이가 자신의 서브옵션이 응답에 나타나는지만으로 처리를 추론하지 말라고 했습니다. 서버와 릴레이가 같은 동작을 지원한다는 행정적 확인은 여전히 필요했습니다.RFC 3118은 DHCP 인증을 규정했지만, 인증 옵션의 존재 역시 특정 배포가 그것을 사용한다는 증명이 아니었습니다.
RFC 7969는 이후 서브넷 선택, 링크 선택, 가상 서브넷 선택을 포함한 더 큰 DHCP 토폴로지 맞춤화 계열을 조사했습니다. 그 확산은 토폴로지가 무의미해졌다는 증거가 아니었습니다. "이 메시지는 어디에서 도착했는가?"라는 질문이 더 이상 접속 네트워크, 릴레이, VPN, 분리된 제어 평면이 요구하는 모든 의미를 담을 수 없다는 것을 보여주었습니다.
지속되는 교훈은 하나의 근거 도식입니다. 캡처된 패킷은 관측된 출발지, 수신 인터페이스,giaddr, 옵션 118 값을 확립할 수 있습니다. 서버 로그는 선택된 정책 분기와 풀을 확립할 수 있습니다. 임대 기록은 할당을 확립할 수 있습니다. 릴레이 기록은 전달 결정을 확립할 수 있습니다. 경로 및 이웃 관측은 일부 도달 가능성을 확립할 수 있습니다. 가입자 세션과 애플리케이션 응답은 이후의 사용을 확립할 수 있습니다. 어느 것도 다음 것으로 조용히 대체되어서는 안 됩니다.
Lu Heng의 러닝 코드 관점에서 옵션 118은 최소 공통 메커니즘이었습니다. 모든 DHCP 서버에 모든 운영의 재설계를 강요하지 않았습니다. 응답 선택과 무관한 DHCP 동작을 그대로 두면서 입력 하나, 즉 할당에 쓰이는 서브넷만 바꾸었습니다. 그 좁음이 구현을 가능하게 했지만, 책임을 국소적으로 남겨 두기도 했습니다. 서버 운영자가 재정의가 안전한 때를 판단해야 했습니다.
이 옵션의 가장 강력한 아이디어는 토폴로지를 무시할 수 있다는 것이 아니었습니다. 토폴로지 관측과 할당 결정은 서로 다른 범주라는 것이었습니다. 일단 두 것이 갈라지면, 프로토콜은 둘 다를 실어야 하고, 클라이언트는 그 갈라짐이 이해되었음을 입증하는 증거를 필요로 하며, 운영자는 새로운 자유가 모든 풀에 걸친 추출 경로가 되지 않도록 정책을 필요로 합니다.
패킷은 내부 서브넷에서 왔습니다. 응답은 그곳으로 돌아갈 수 있었습니다. 주소는 여전히 외부 풀에 속했습니다. RFC 3011은 세 진술을 동시에 참으로 만들었고, 요청이 관측된 장소를 가리키는 것만으로 할당을 방어하는 것을 불가능하게 만들었습니다.
출처
- RFC 3011, The IPv4 Subnet Selection Option for DHCP
- RFC 3011 RFC Editor 정보 페이지
- RFC 2131, Dynamic Host Configuration Protocol
- RFC 2132, DHCP Options and BOOTP Vendor Extensions
- RFC 3046, DHCP Relay Agent Information Option
- RFC 3118, Authentication for DHCP Messages
- RFC 3527, Link Selection sub-option for DHCPv4
- RFC 7969, Customizing DHCP Configuration on the Basis of Network Topology
- IANA BOOTP/DHCP 매개변수
- Lu Heng, Running-Code Primacy
- Lu Heng, Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- Lu Heng, On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





