두 도식은 서로 다른 패킷을 설명할 수 있기 때문에 모두 옳으면서도 다르게 보일 수 있습니다. 협상 메시지와 애플리케이션 데이터 패킷은 한 세션 안에서도 같은 배치를 공유하지 않으며, 전송 모드와 터널 모드도 마찬가지입니다. 어느 쪽이 어떤 패킷과 어떤 모드를 나타내는지 밝히지 않고 그림을 비교하면 애초에 맞을 리 없던 헤더를 두고 논쟁하게 됩니다. 비교를 시작하기 전에 네 개의 라벨이 이를 정리합니다.

각 그림 옆에 구현과 모드, 채널, 외부 전송, 운반되는 페이로드를 적으세요.

전송 모드와 터널 모드는 헤더를 다르게 옮깁니다

전송 모드에서는 ESP가 IP 헤더 뒤, 운반되는 프로토콜 앞에 자리하므로 원래 IP 헤더는 보호 밖에 남습니다. 터널 모드에서는 새 외부 IP 헤더가 두 IPsec 피어를 지정하고 보호된 내부 패킷은 자기 IP 헤더를 유지합니다. 둘 다 RFC 4303에 정의되어 있으며 둘 다 해당 모드에 맞습니다. 트레일러와 무결성 필드를 생략한 단순한 스케치는 배치 설명에는 좋지만 바이트 계산에는 쓸모없습니다.

전송은 특별히 TCP나 UDP를 뜻하지 않습니다. 운반되는 다음 계층 프로토콜은 무엇이든 될 수 있고, 전송 모드를 한 프로토콜과 동일시하는 도식은 조용히 가정을 하나 더한 것입니다.

제어 메시지는 데이터 메시지가 아닙니다

L2TP는 PPP 프레임을 나르는 데이터 메시지와 터널과 그 호출을 설정하고 유지하고 해제하는 제어 메시지, 이렇게 두 가지 메시지 유형을 구분합니다. 제어 채널은 신뢰할 수 있지만, 잃어버린 데이터 메시지는 L2TP가 다시 보내지 않습니다. 따라서 PPP가 들어 있는 그림은 데이터 메시지가 나르는 페이로드를 설명할 수 있을 뿐, 보호되는 모든 세션이 포함해야 하는 헤더를 설명하는 것은 아닙니다. L2TP를 보호와 결합하면 선택한 보안 배치가 위에 더해질 뿐 모든 메시지가 같아지지는 않습니다.

도식이 두 메시지 유형이 똑같아 보인다고 주장한다면, 그것은 다른 프로토콜이나 다른 범위를 설명하는 것입니다.

동등한 캡처 지점을 비교하세요

외부 인터페이스에서 캡처하면 보호와 전송 헤더가 보이고, 캡슐화를 해제한 뒤에 잡은 내부 캡처는 운반되는 패킷을 보여 줍니다. 어느 쪽도 틀리지 않으며, 하나를 다른 하나와 비교하면 헤더가 빠졌거나 중복된 것처럼 보입니다. NAT 통과를 위해 정의된 UDP 캡슐화는 기본 ESP 그림에는 없는 외부 계층을 하나 더 더합니다. 두 그림 모두 서로 다른 전송 배치를 정확히 묘사한 것일 수 있습니다.

도식과 함께 캡처 지점을 밝히고, 동등한 모드의 동등한 메시지를 비교하세요. 빠진 헤더가 결함의 증거가 되는 것은 두 그림이 같은 지점과 같은 패킷 유형을 주장할 때뿐입니다.

라벨을 그림과 함께 두세요

라벨이 없는 도식은 다음 독자가 자기 가정을 보태기 때문에 빨리 낡습니다. 네 개의 라벨을 넣고, 보호 경계를 표시하고, 그림이 배치용인지 치수용인지 적으세요. 치수용이라면 스케치 대신 전체 명세를 쓰세요. 라벨의 비용은 일 분이고, 그것이 막는 논쟁의 비용은 반나절입니다.

두 문서가 어긋날 때는 먼저 그 라벨을 비교하세요. 모드나 채널 수준의 불일치는 차이를 완전히 설명하며, 실제로 빠진 헤더는 없습니다.

도식이 어떤 패킷, 어떤 모드, 어떤 캡처 지점을 보여 주는지 기록하세요. 그 기록이 도식의 나머지 절반입니다.

관련 글