인터페이스는 올라오고 피어 구성도 올바르게 보이지만 핸드셰이크는 끝내 완료되지 않습니다. 터널을 통해 기본 경로를 추가하는 것이 이를 자주 일으키는 단계입니다. 같은 라우팅 테이블이 이제 터널 자체의 암호화된 패킷이 어디로 가야 하는지를 결정하고, 그 테이블이 내놓는 답은 다시 터널 안입니다. 안쪽 패킷을 실어 나를 바깥 패킷을 실어 나를 것이 없으므로 연결은 시작하기도 전에 멈춥니다. 수리는 작지만 순서가 있고, 편집보다 검증이 더 중요합니다.

경로를 바꾸기 전에 루프를 확인하십시오

피어의 현재 엔드포인트 주소를 읽고, 그 주소로 가는 패킷이 어디로 갈지 라우팅 스택에 물어보십시오. 답이 터널 인터페이스를 가리키면 루프가 확인된 것이며 더 이상의 진단은 필요하지 않습니다. 무엇이든 건드리기 전에 두 출력을 변경 기록에 저장하십시오. 수리 후의 비교는 같은 두 명령이기 때문입니다. 루프는 한 번 보면 미묘하지 않습니다. 어려운 점은 그것이 일어나는 동안 인터페이스가 건강해 보인다는 것입니다.

sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show

그 캡처에 정책 규칙도 포함하십시오. 기본 테이블에서 올바르게 보이는 기본 경로라도 표시되거나 표시되지 않은 트래픽에 다른 테이블을 선택하는 규칙에 질 수 있으며, 라우팅 테이블이 괜찮아 보여도 루프는 다시 나타납니다.

터널 경로가 아니라 엔드포인트 경로를 읽으십시오

엔드포인트 경로는 암호화된 데이터그램이 피어의 공용 주소로 가는 경로이며, 터널이 존재하는 동안 터널 밖에 있어야 합니다. 터널 경로는 피어가 실어 나를 수 있는 모든 것입니다. 이 두 경로는 하나의 라우팅 테이블을 공유하며, 바로 그 때문에 하나의 전체 포괄 항목이 둘을 서로 안으로 무너뜨릴 수 있습니다. 터널 트래픽과 터널 자체의 전송을 분리하는 것이 설계 문제의 전부이며, 지원되는 모든 도구는 어딘가에서 조금씩 다르게 해결합니다.

인터페이스가 둘 다 실어 나르면 두 주소 체계를 따로 확인하십시오. 동작하는 IPv4 제외는 IPv6 엔드포인트에 아직 도달할 수 있는지에 대해 아무것도 말해 주지 않으며, 혼합 구성은 피어의 IPv6 주소가 선택될 때까지 동작하는 것처럼 보일 수 있습니다.

하나의 일관된 변경으로 엔드포인트 경로를 복원하십시오

지원되는 접근 방식은 두 가지이며, 그것들을 섞는 것이 동작하는 설정을 예측 불가능하게 만드는 방법입니다. 첫째는 인터페이스를 소유한 도구가 전체 터널을 처리하도록 맡기는 것입니다. wg-quick에는 기본 피어 범위에 대한 전용 처리가 있어서 별도 테이블, 정책 규칙, 소켓 마크를 설치합니다, 이는 바깥 패킷을 터널 밖에 유지합니다. 그 기계 장치를 그대로 두고 절반만 손으로 재현하지 마십시오. 수동으로 추가한 기본 경로를 이미 마크와 규칙을 설치하는 관리자와 섞는 설정은 다시 연결한 뒤 실패하기 쉽습니다. 관리자가 수동 단계가 전제한 상태를 다시 쓰기 때문입니다.

둘째는 수동 설계로, 엔드포인트가 물리적 게이트웨이를 통해 명시적인 호스트 경로를 얻습니다. 그 경로를 기본 경로보다 먼저 추가하고, 오래된 항목이 이기지 못하도록 추가가 아니라 교체하며, 그다음 조회를 확인하십시오.

sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1

검증하고, 그다음 돌아갈 길을 남겨 두십시오

앞으로 나아가는 핸드셰이크 타임스탬프가 첫 번째 증거이며, 단지 존재하는 인터페이스보다 강합니다. 터널을 통한 애플리케이션 테스트로 이어 가고, 그다음 의도적으로 인터페이스를 내린 뒤 호스트가 아무것도 가리키지 않는 기본 경로를 붙들고 있는 대신 사용 가능한 상태로 돌아오는지 확인하십시오. 그 마지막 단계를 사람들이 건너뛰며, 재부팅이 머신을 연결 없이 남길지를 결정하는 것도 그 단계입니다.

sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20

이 모든 것 전에 현재 라우팅 상태를 저장하고 터널에 의존하지 않는 진입 경로가 있는지 확인하십시오. 콘솔, 대역 외 관리 주소 또는 현장의 동료입니다. 기본 경로를 잃은 원격 머신은 방금 잃은 연결로는 복구할 수 없으며, 런북에서 가장 안전한 단계는 첫 명령 전에 취하는 단계입니다.

관련 글