의도는 밀어 넣은 경로 하나를 떨어뜨리는 것이었습니다. 변경 후 다른 라우팅 옵션이 빠지거나 클라이언트가 루프에서 다시 연결됩니다. 두 결과 모두 텍스트를 비교하는 필터를 서브넷 규칙으로 읽은 데서 나옵니다. 클라이언트는 밀어 넣은 옵션이 지정한 문자로 시작하는지만 확인하며, 어느 단계에서도 주소 논리는 관여하지 않습니다.

필터가 실제로 비교하는 것

밀어 넣은 각 옵션은 이름과 그 인자로 이루어진 줄로 도착합니다. 필터는 여러분의 문자를 그 줄의 시작과 비교하며, 주소가 해석되기 전이고 경로가 설치되기 전입니다. 그래서 이름에 맞춰 쓴 규칙은 그 글자로 시작하는 모든 옵션을 잡고, 보고 있던 하나만 잡지 않습니다. 그래서 필터는 단독으로는 맞아 보이면서도 무관한 것을 지울 수 있습니다.

네트워크 범위처럼 보이는 문자열도 여전히 문자일 뿐입니다. 접두사를 고르지 않고, 네트워크 비트를 계산하지 않으며, 목적지 집합을 표현할 수 없습니다. 그런 규칙이 작동하는 듯하다가 나중에 멈추면, 밀어 넣은 텍스트의 모양이 바뀐 경우가 보통입니다.

공백 하나가 일치 집합을 바꿉니다

같은 옵션 이름이라도 끝 구분자가 있을 때와 없을 때 다른 줄을 고릅니다. 구분자가 없으면 일치가 열린 채로 남고, 구분자가 있으면 인자가 시작되기 전에 옵션 이름이 바로 그 자리에서 끝나야 합니다.

pull-filter ignore "route"
pull-filter ignore "route "

열린 형태는 같은 글자로 시작하기만 하는 옵션도 잡으며, 그렇게 떨어뜨리려던 경로와 함께 무관한 라우팅 동작까지 사라집니다. 필터를 쓰기 전에 로그에서 밀어 넣은 줄을 복사하세요. 편집한 프로필 옆에 편집하지 않은 사본을 두세요, 넓은 일치를 되돌리는 일은 기억보다 파일에서 더 쉽기 때문입니다.

순서와 동작이 서로 다른 증상을 만듭니다

규칙은 순서대로 평가되고 첫 일치가 결과를 정하므로, 앞에 놓인 넓은 규칙은 뒤의 구체적인 규칙을 모두 도달 불가능하게 만듭니다. 동작도 장애를 바꿉니다: 일치를 무시하면 옵션이 빠지고 세션은 계속되며, 거부하면 연결을 다시 시작시키는 오류가 발생합니다. 따라서 반복해서 밀려 오는 줄과 거부 동작이 결합되면 재연결 주기가 생깁니다. 그 주기는 네트워크 장애로 잘못 읽기 쉽고, 일치한 옵션을 지목하는 로그 줄이 둘을 구분합니다.

ActionEffect on the sessionHow it gets reported
IgnoreOption dropped, session continuesSomething is missing afterwards
RejectError raised, connection restartsThe VPN keeps dropping

어느 줄이 일치했고 어느 동작이 실행되었는지 기록하세요. 빠진 경로와 재시작 루프는 서로 다른 수리가 필요하며, 메모에는 둘 다 열어 두는 대신 어느 쪽이 일어났는지 적어야 합니다.

호스트가 무엇을 설치했는지 확인하세요

다시 연결한 뒤 적용된 경로를 읽고, 유지하려던 목적지와 제거하려던 목적지를 모두 시험하세요. 밀어 넣은 경로를 떨어뜨리면 대체가 제공되지 않으므로, 원치 않는 경로가 사라진 동안 자원이 다른 경로로 도달 불가능해질 수 있습니다. 이름이 이제 다른 곳에서 확인되면, 밀어 넣은 리졸버 옵션이 같은 넓은 접두사에 걸렸는지 확인하세요. 실행한 시험을 통과하고 의도한 시험에서 실패하는 변경은 여기서 흔한 결과입니다.

그 차이를 티켓에 남기세요: 제거한 경로, 유지하려던 경로, 그리고 표가 지금 보여 주는 내용입니다. 다음 변경은 그 기록과 견주어 판단됩니다.

신뢰 경계로 다루지 마세요

텍스트에 대한 필터는 설정 편의일 뿐, 신뢰하지 않는 서버에 대한 통제가 아닙니다. 형식 차이만으로도 무너지므로 설명서는 그 주장을 제한합니다. 서버가 여러분 조직의 것이라면 로컬 예외를 쌓는 것보다 밀어 넣기 정책을 고치는 편이 분명합니다.

로컬 필터가 애초에 왜 존재하는지 적어 두세요: 다음 사람이 아직 필요한지 판단할 수 있습니다. 필터는 이유가 사라진 훨씬 뒤에도 쌓입니다.

관련 글