브리지로 연결된 사이트에도 여전히 로컬 인터넷 출구 결정이 필요하다
공유 Ethernet 세그먼트는 클라이언트가 어떤 라우터를 쓰는지 결정하지 않습니다. 브리지와 DHCP 라우터 옵션을 분리하고 각 사이트의 출구를 의도적으로 정하십시오.
VLAN 확장 테스트는 깔끔하게 통과했다. 두 사이트의 호스트가 서로를 보고, 파일 공유가 되고, 프린터가 응답한다. 그런데 작은 사이트의 누군가가 모든 다운로드가 다른 사이트의 인터넷 회선을 쓰고 있다는 것을 알아차리고, 티켓은 대역폭 불만으로 들어온다. 브리지는 요청받은 대로 정확히 했다. 두 건물 사이에서 프레임을 실어 날랐고, 그 프레임이 인터넷에 어떤 라우터를 써야 하는지에 대해서는 애초에 의견이 없었다.
브리지는 프레임을 나르지 결정을 나르지 않는다
레이어 2 확장은 두 위치를 하나의 브로드캐스트 도메인처럼 보이게 하므로 ARP 요청, DHCP 브로드캐스트, 같은 서브넷의 트래픽이 모두 터널을 건넌다. 그것이 이 서비스가 제공하는 전부다. 브리지 안에서는 목적지 주소를 검사하지도, 사이트의 업링크와 비교하지도, 트래픽을 더 가까운 출구로 유도하지도 않는다. 각 클라이언트는 구성된 주소와 마스크를 사용해 로컬인지 원격인지 스스로 결정한다.
그 공유 서브넷에 라우터를 두 대 두면 둘 다 그럴듯한 게이트웨이가 된다. 사용하는 클라이언트 가까이에 있든 아니든 상관없다.
클라이언트가 게이트웨이를 고르는 방식
RFC 1122에 설명된 IPv4 결정은 단순하다. 클라이언트의 연결된 서브넷 안에 있는 목적지는 ARP로 직접 도달하고, 그 밖의 목적지는 구성된 기본 게이트웨이로 간다. 그래서 사이트 사이의 같은 서브넷 트래픽이 라우터의 개입 없이 브리지를 건널 수 있고, 인터넷 트래픽은 클라이언트가 받은 게이트웨이 주소에 전적으로 의존한다. 두 동작은 독립적이며, 동작하는 파일 공유는 첫 번째만 증명한다.
작은 사이트의 클라이언트가 큰 사이트의 라우터로 구성되었다면, 그 인터넷 프레임은 먼저 터널을 건너 그곳에서 나간다.
VPN 어플라이언스 자체의 기본 경로를 바꿔도 그 클라이언트의 게이트웨이는 움직이지 않는다. 클라이언트는 어플라이언스를 라우터로 전혀 쓰지 않기 때문이다. 어플라이언스는 그 프레임을 나르는 터널이 유지되도록 원격 피어로 가는 별도 경로도 필요하며, 이 둘을 혼동하는 것이 브리지 확장이 자기 전송로를 무너뜨리는 방식이다.
DHCP가 의도한 출구를 표현하게 하라
DHCP 응답의 옵션 3은 클라이언트 서브넷의 라우터 주소 목록을 우선순위대로 제공하고, 클라이언트는 보통 응답하는 첫 번째를 고른다. 메커니즘은 괜찮다. 설계가 어긋나는 곳은 소유권이다. 가장 가까운 DHCP 서버가 가장 가까운 게이트웨이를 준다고 가정하지 말고 각 사이트에서 실제 임대가 무엇을 주는지 기록하라.
조정된 할당자 하나를 운영하거나, 같은 정책으로 명시적으로 구성된 둘을 운영하고 그 정책에 소유자를 지정하라. 원격 사이트에 추가한 두 번째 독립 할당자는 지역성을 만들지 않고, 같은 브로드캐스트 도메인에 두 개의 권한을 만든다.
두 사이트의 설정이 같아 보이게 하려고 하나의 게이트웨이 주소를 독립적으로 활성인 라우터 두 대에 할당하지 마라. 브리지된 세그먼트를 가로지르는 공유 가상 주소는 자체 요구 사항이 있는 첫 홉 이중화 설계이며, 직접 만든 버전은 간헐적 패킷 손실처럼 보이는 ARP 충돌을 낳는다. 애플리케이션이 공유 레이어 2 세그먼트를 정말로 필요로 하지 않는다면, 로컬 기본값을 가진 분리된 라우팅 프리픽스가 운영하기 더 간단하고 장애 때 설명하기도 더 쉽다.
네 가지를 따로 시험하라
관찰 하나가 아니라 네 개를 요구하라. 각 사이트에서 새 DHCP 임대를 받고 받은 라우터와 마스크를 기록하라. 다른 사이트에서 같은 서브넷의 서비스에 도달해 경로가 라우팅 우회가 아니라 브리지임을 확인하라. 각 사이트에서 공용 인터넷의 무언가를 가져와 어느 업링크가 그것을 실어 날랐는지 확인하라. 그런 다음 터널을 끊고 무엇이 깨지는지 보라. 브리지가 실패할 때 모든 연결을 잃는 사이트는 아무도 모르는 사이에 원격 게이트웨이에 의존하고 있었던 것이다.
그 네 가지 결과는 사이트 간 브리지인지, 로컬 출구인지, 우발적인 백홀인지 알려 주며, 모으는 데 십 분이 걸린다.
설계 원칙은 화려하지 않다. 브리징이 도달성을 정하고, DHCP가 게이트웨이를 정하며, 어플라이언스의 라우팅 테이블이 터널 자체의 경로를 정한다. 이 셋을 별개의 대화로 유지하라. 셋 모두를 고치려는 단일 변경은 보통 둘을 망가뜨린다.