링크 장애 후 지사가 돌아오는 모습을 보십시오. 게이트웨이는 평소에는 결코 나타나지 않는 것을 봅니다. 수십 대의 노트북이 하나의 공인 주소에서 동시에 도착하는 것입니다. 각각은 정당한 장치이고 각각은 아직 끝나지 않은 IKE 교환을 시작합니다. 그 폭주가 성공할지는 서버가 몇 명의 직원을 감당할 수 있는지와 무관한 한계에 달려 있습니다. 폭주는 짧고, 바로 그 작업 부하를 견디도록 수락 경로가 만들어졌습니다.

노트북 한 대가 네트워크로 돌아오는 과정을 따라가기

클라이언트는 초기 요청을 보내고 기다리며, 교환이 끝날 때까지 게이트웨이는 그 시도에 대한 수락 상태를 유지합니다. 같은 주소 뒤의 다른 장치들은 첫 장치가 아직 기다리는 동안 도착하고, 사용자가 아니라 주소를 세는 한계 뒤에 줄을 섭니다. 밖에서 보이는 증상은 소수의 사용자는 연결되고 더 큰 집단은 시간 초과되는 것입니다.

그 순서 어디에도 결함은 없습니다. 수락 경로가 설정된 대로 동작하는 것입니다.

반개방 작업을 별도 자원으로 세기

strongSwan은 두 집단을 분리합니다. 완전히 설정된 연관과 아직 연결 중이거나 처리를 기다리는 시도입니다. 차단 임계값은 하나의 피어 주소에 귀속된 반개방 연관에 적용되고, 쿠키 임계값은 전역 및 주소별로 적용됩니다. 이 카운터는 인증되지 않은 작업으로 데몬이 소모되는 것을 막으며, 그것이 바로 재연결 폭풍의 형태입니다. 그 상태는 설정된 터널 목록 에 나타나지 않습니다.

이를 직원 세션의 상한으로 읽는 것이 모든 것을 한꺼번에 올리는 실수입니다. 사백 개의 설정된 터널을 감당하는 서버가 사백 개의 동시 첫 패킷을 자동으로 흡수할 수는 없습니다. 두 비용은 서로 다른 곳에서 발생하기 때문입니다.

인증 지연은 각 시도가 반개방 수에 얼마나 오래 남는지를 결정합니다. 응답이 느린 백엔드는 도착률이 완만해도 짧은 폭주를 긴 대기열로 바꿉니다.

swanctl --stats
swanctl --list-sas | grep -c ESTABLISHED

수락 설정을 바꾸기 전에 읽기

실행 중인 데몬이 실제로 로드한 값을 먼저 찾으십시오. 설정은 흔히 기본 파일과 플러그인별 조각 디렉터리로 나뉘므로, 한곳에서 설정한 값이 다른 곳에서 재정의될 수 있습니다. 아래 검색은 이 설정을 언급하는 모든 파일을 보여 줍니다.

그다음 어느 숫자가 너무 작은지 결정하십시오. 하나의 주소가 정당하게 사무실 전체를 나타낸다면 주소별 차단 임계값이 그 집중을 수용해야 하는 값입니다. 전역 쿠키 임계값은 더 넓은 홍수로부터 데몬을 보호하며, 한 사이트가 재연결한다고 해서 완화해서는 안 됩니다. 그 주소별 값을 실제로 보유한 가장 큰 사이트와 비교하십시오.

쿠키 메커니즘은 켜 둡니다. 쿠키는 데몬이 교환에 실제 작업을 쓰기 전에 클라이언트가 주장하는 주소에서 수신할 수 있음을 증명하게 합니다. 이를 끄는 것은 중립적인 용량 업그레이드가 아닙니다. 측정된 도착률과 그 뒤의 명시된 인증 예산이 있을 때만 임계값을 올리십시오.

grep -rn -E 'block_threshold|cookie_threshold' /etc/strongswan.conf /etc/strongswan.d/
swanctl --stats | grep -i half

정상 상태만이 아니라 복귀를 계획하기

설정된 세션만 세는 가용성 목표는 조용한 오후를 묘사하며 복구를 묘사하지 않습니다. 대신 공유 네트워크 사건 후에 의도된 집단이 어떻게 돌아오는지, 수락 경로가 그 형태를 흡수할 수 있는지 물으십시오.

관리되는 플릿 전체에 재연결을 분산하는 것이 한계를 키우는 것보다 흔히 더 저렴합니다. 인위적인 폭주를 제거하고 그 비용을 영구히 치르지 않기 때문입니다. 설정 성공 옆에서 반개방 상태와 수락 사건을 감시하고, 성공이 평평한데 반개방 수가 오르면 호기심이 아니라 조기 경보로 취급하십시오.

이 설정에 대한 공급업체 참조는 strongswan.conf 문서 이며, 여기에는 카운터와 주소별 쿠키 임계값을 도입한 릴리스가 명시되어 있습니다. 최신 페이지가 아니라 설치된 버전의 절을 읽으십시오. 기본값은 릴리스 사이에 바뀝니다.

관련 글