터널은 토폴로지를 사는 것이지 암호화나 지연을 사는 것이 아니다
터널은 논리적 경로와 어쩌면 별도의 전달 컨텍스트를 제공합니다. 그 자체로 암호화하지도 않고 지연을 약속하지도 않습니다.
가정은 터널이 사설의 빠른 선이라는 것이며, 터널을 만들면 내부 트래픽이 암호화되고 경로가 더 짧아지며 링크가 두 사이트 사이의 케이블처럼 동작한다는 것입니다. 그 가정의 각 부분은 별개의 속성이며, 터널은 요청한 첫 번째 것, 즉 논리적 경로만 제공합니다. 나머지는 모두 의도적으로 선택하고 구성해야 합니다. 속성을 혼동하면 누구도 문제를 진단할 수 없는 암호화된 링크와 누구도 지킬 수 없는 지연 약속을 가진 설계가 됩니다.
신화: 터널 하나, 보장 셋
터널은 한 가지를 안정적으로 합니다. 직접 연결되지 않은 두 끝점이 어떤 목적을 위해 인접한 것처럼 동작하게 하고, 그 사이의 네트워크가 외부 패킷을 나릅니다. 그것은 토폴로지 변경이며, 그 자체로 정말 유용합니다.
암호화, 프로토콜 전달, 전달 격리는 그 위에 층층이 쌓이는 별개의 결정입니다. GRE 터널은 암호학적 의미에서 셋 중 어느 것도 없고, IP-in-IP 터널은 기밀성이 전혀 없는 유효한 설계입니다. 둘 다 실수가 아니라, 터널이 하는 일을 정확히 하는 터널입니다. 다이어그램의 라벨은 어떤 속성이 있는지 알려주지 않습니다.
속성을 분리하면 이 터널이 라우팅 인접성을 나르는지, 프레임을 나르는지, 내부 주소를 숨기는지, 지연에 대해 무엇인가를 약속하는지라는 질문에 답할 수 있게 됩니다. 그것은 네 가지 다른 답이며 네 가지 다른 구성 결과를 가집니다.
터널이 실제로 지도에 더하는 것
끝점은 이전에 없던 경로를 얻습니다. 그 경로가 라우팅된 홉처럼 동작하는지 이더넷 세그먼트처럼 동작하는지는 전적으로 캡슐화에 달려 있으며, 그 차이는 두 사이트가 그것으로 무엇을 할 수 있는지를 바꿉니다. 라우팅된 터널은 다음 홉과 프리픽스를 주고, 이더넷 확장은 브로드캐스트 동작과 훨씬 큰 장애 도메인을 줍니다.
IP 터널은 원격 사이트를 자동으로 같은 서브넷의 일부로 만들지 않으며, 구현이 그 인접성을 지원하지 않는 한 그 위에서 라우팅 프로토콜이 돌게 하지 않습니다. 멀티캐스트는 그 자체의 답을 가진 또 다른 별개의 질문입니다.
ip -d link show type gre ip route get 10.20.0.5 traceroute -n -T -p 443 10.20.0.5 mtr -n --report -c 20 10.20.0.5
그 명령들은 질문의 다른 부분에 답합니다. 첫 번째는 어떤 종류의 인터페이스가 있는지 알려주고, 두 번째는 커널이 어떤 경로를 선택할지 알려주며, 마지막 둘은 라벨의 약속이 아니라 하부의 실제 동작을 보여줍니다.
전달은 도달 가능성과 별개의 결정입니다
터널은 하부가 전달하지 않는 프로토콜을 나를 수 있습니다. IPv4 경로 위의 IPv6가 고전적인 사례이며, 끝점이 두 체계를 모두 이해하고 그 사이의 라우터는 외부 패킷을 전달하기만 하면 되기 때문에 동작합니다. 하부에는 터널 끝점까지의 동작하는 경로만 필요하고 그 이상은 필요하지 않습니다.
그러나 끝점에는 전달, 주소, 그리고 내부 체계를 실제로 사용하는 애플리케이션이라는 완전한 지원이 필요합니다. 터널에 IPv6 프리픽스를 할당해도 IPv4로만 동작하는 서비스가 IPv6를 통해 도달 가능해지지 않으며, 하부가 이중 스택이 되지도 않습니다.
프레임 전달은 프로토콜 전달보다 큰 약속입니다. 브로드캐스트 도메인을 터널 너머로 확장하면 스패닝 트리 동작, ARP, 장애 전파가 함께 이동하며, 이는 기능 토글이 아니라 설계 결정입니다.
격리는 기밀성이 아닙니다
공급자 VPN은 고객 경로와 트래픽을 별도의 전달 컨텍스트에 유지하며, 그 분리는 실제이며 가치가 있습니다. 그것은 암호화가 아닙니다. BGP/MPLS VPN 사양은 그 프라이버시가 암호가 아니라 전달 모델에서 온다고 명시하며, 바로 그 구분이 VPN이라고만 말하는 슬라이드에서 사라집니다.
기밀성이 필요하다면 인증과 키 관리를 갖춘 암호학적 메커니즘이 필요하고, 그것이 어디서 끝나는지 알아야 합니다. 분리를 제공하는 터널과 암호화를 제공하는 터널은 같은 터널일 수 있지만, 누군가 둘 다 구성했을 때만 그렇습니다.
실무적 결과는 «VPN 안에 있다»가 라우팅 컨텍스트에 대한 질문에 답할 뿐, 경로의 바이트를 누가 읽을 수 있는지에 대해서는 아무것도 말하지 않는다는 것입니다. 두 팀이 모두 옳으면서도 서로 다른 것을 설명할 수 있습니다. 보안 질문이 나오면 터널이 존재하는지가 아니라 암호가 어디서 끝나는지와 무엇이 피어를 인증하는지를 물으십시오.
지연과 QoS는 하부를 따릅니다
논리적 가장자리는 더 짧은 물리적 경로가 아닙니다. 외부 패킷은 여전히 같은 링크, 큐, 공급자를 통과하며, 캡슐화는 패킷당 오버헤드와 양 끝의 처리를 더합니다. 터널이 빠른 것은 하부가 좋기 때문이며, 터널이기 때문인 경우는 없습니다.
서비스 품질 처리는 통제하지 못할 수 있는 관리 영역에 의존하기 때문에 그보다 더 나쁩니다. 내부 표시는 의도적으로 외부 표시에 매핑되어야 하고, 경로의 모든 공급자가 기대하는 처리를 제공해야 합니다. 암호화는 우선순위를 만들지 않고, 중간 장치가 흐름을 분류하는 데 사용할 수 있었던 필드를 숨길 뿐입니다.
무엇인가를 약속하기 전에 하부를 측정하십시오. 외부 경로에서 안정적인 지연과 손실 없음을 보여주는 보고서는 증거이며, 터널이 그려진 다이어그램은 증거가 아닙니다.
필요한 네트워크 관계에 맞는 터널을 선택한 다음 암호화, 접근 정책, 패킷 크기, 성능을 별도로 지정하십시오. 네 가지 결정, 네 가지 증거, 그리고 그중 어느 것도 대신하지 않는 단일 라벨은 없습니다.