책상 위 프린터는 터널이 올라오는 순간 응답을 멈추지만, 터널 설정 어디에도 프린터에 대한 언급은 없습니다. 보통은 보호 범위가 프린터까지 포함할 만큼 넓게 작성되어, 이제 기계가 로컬 세그먼트에 남아 있어야 할 트래픽을 암호화하려는 상황입니다. 설치된 정책을 읽으면 이 포착이 설명되고, 올바른 위치에서 범위를 좁히면 원격 트래픽은 계속 보호됩니다. 실패한 요청에서 일치하는 정책까지 가는 길은 몇 분이면 됩니다.

선택자를 바꾸기 전에 흐름을 따라가 보십시오

실패한 요청에서 시작해 기계가 쓰는 원본 주소, 정확한 목적지, 커널이 고르는 경로, 그 쌍에 맞는 정책의 네 가지 값을 적으십시오.

이 네 가지 사실이 포착이 의도된 것인지 우연인지 결정합니다. 원격 선택자 안에 들어가는 목적지는 설계상 보호되며, 설계가 잘못되었더라도 마찬가지입니다. 그 밖에 있는 목적지가 그래도 포착된다면 다른 무언가가 일치한다는 뜻이고, 선택자를 바꿔도 도움이 되지 않습니다. 두 경우 모두 흔하며, 명령 하나로 구분됩니다.

무엇이든 편집하기 전에 이렇게 하는 이유는, 흥미로운 경우가 연결이 보호하는 사설 범위와 겹치는 로컬 서브넷이기 때문입니다. 192.168.0.0/16 같은 익숙한 접두사는 많은 네트워크에 나타나며, 그중 하나를 위해 작성된 선택자가 조용히 당신의 것을 덮을 수 있습니다.

다르게 동작하는 세 가지 로컬

이 호스트에 할당된 목적지, 같은 링크 위의 목적지, 다른 인터페이스 뒤의 목적지는 세 가지 다른 경우입니다. 커널은 트래픽에 보호가 필요한지 결정할 때 각각을 다르게 다룹니다.

게이트웨이 자체가 만든 트래픽도 클라이언트에서 전달된 트래픽과 같지 않습니다. 전달 트래픽에 맞아 보이는 정책이 게이트웨이 자신의 관리 세션을 포착할 수 있고, 관리자는 터널을 고치는 동안 그렇게 접근을 잃습니다.

유용한 습관은 이 패킷이 나에게서 오는지, 내 링크로 가는지, 아니면 나를 통과하는지 경우를 소리 내어 이름 붙이는 것입니다. 각 답은 좁힐 다른 위치를 가리킵니다. 경우를 적어 두면 다음 사람이 같은 작업을 다시 하지 않습니다.

보호 범위가 사설 공간 전체라면 세 경우가 동시에 그 안에 들어갈 수 있고, 증상은 터널 끝점 외에는 아무 곳에도 닿지 않는 기계가 됩니다.

파일이 아니라 설치된 정책을 읽으십시오

설정 파일은 의도를 설명하고, 커널은 실제로 일치하는 정책을 보관합니다. 둘 다 보여 주고 불일치를 첫 발견으로 취급하십시오.

다음 명령은 목적지에 대해 선택된 경로와 각 방향으로 설치된 정책을 보여 줍니다:

ip route get 192.168.50.20
ip xfrm policy list
sudo swanctl --list-conns

경로는 패킷이 어느 인터페이스를 쓸지 알려 줍니다. 정책 목록은 그 패킷에 이어서 템플릿이 적용되는지 알려 줍니다. 연결 목록은 데몬이 어떤 선택자를 설치했다고 생각하는지 보여 주며, 목적지가 원격 선택자에 나타난다면 추측하지 않고 포착을 찾은 것입니다.

선택자를 좁히거나 목적지를 우회하십시오

지원되는 복구 방법은 두 가지이며 서로 다른 질문에 답합니다. 선택자를 좁히는 것은 이 연결이 더 작은 범위만 보호한다는 뜻이며, 넓은 범위가 실수였을 때 맞습니다. 우회를 추가하는 것은 이 특정 목적지를 절대 보호하지 않는다는 뜻이며, 보호 범위가 정말 넓고 한 목적지만 예외일 때 맞습니다.

가능하면 작은 선택자가 이해하기 쉽고 연결 정의에 나타나므로 첫 번째를 고르십시오. 넓은 범위가 의도된 것이고 예외가 이름 붙일 수 있는 단일 호스트나 서브넷이라면 두 번째를 고르십시오.

둘 다 연결을 소유한 설정에 속합니다. 손으로 추가한 런타임 규칙은 다음 재연결에서 사라지고, 아무도 그 임시방편을 기억하지 못하는 순간에 장애가 돌아옵니다.

재설치에도 살아남는 예외

변경 후 같은 무해한 요청을 반복하고 같은 카운터를 보십시오. 로컬 목적지는 응답해야 하고, 의도한 원격 목적지는 여전히 암호화된 트래픽을 보여야 합니다.

이 두 검사는 예외가 살아남았고 보호는 그렇지 않았음을 확인합니다:

ip xfrm policy list | grep -c out
ping -c 3 192.168.50.20

그다음 터널을 일부러 끊고 다시 연결한 뒤 둘 다 반복하십시오. 재연결 전에는 작동하고 후에는 실패하는 예외는 잘못된 계층에 적용된 것이며, 이것이 이 문제가 돌아오는 가장 흔한 방식입니다.

관련 글