회사 개요 #
VoIP는 Voice Over Internet Protocol의 약자로 , 인터넷을 통해 이루어지는 모든 전화 통화를 포괄하지만, 이를 실제로 구현하기 위해서는 SIP 프로토콜이 정의되었습니다.
SIP ( Session Initiation Protocol) 는 통화(음성 및 영상)를 포함한 멀티미디어 통신 세션을 관리하는 프로토콜이므로, VoIP가 의존하는 특정 프로토콜 중 하나라고 할 수 있습니다.
미디어 통신 세션에서 SIP 프로토콜은 음성 또는 화상 통화의 시작 및 종료와 같은 신호 처리를 담당합니다. SIP를 통해 설정할 수 있는 통신은 두 당사자 간의 유니캐스트 또는 여러 당사자 간의 멀티캐스트입니다. SIP 프로토콜을 사용하면 기존 통화를 수정하여 다른 참가자를 초대할 수 있습니다. SIP 는 하위 전송 계층 프로토콜에 독립적으로 설계되었으며 UDP , TCP 및 SCTP ( 스트림 제어 전송 프로토콜 )와 함께 사용할 수 있습니다. SIP는 미디어 형식을 지정하고 SIP가 통화를 설정한 후 미디어를 전송하는 다른 프로토콜과 함께 작동할 수도 있습니다. 또한 PBX ( 사설 교환기 ) 전화 시스템에서 외부 네트워크로 전화 통화를 라우팅할 수도 있습니다. 여기서 PBX 는 여러 내부 장치를 갖춘 사설 조직에 설치된 전화 교환 시스템입니다.
이 가이드는 Asterisk , Websphere SIP proxy , SIP Foundry , Elastix , FreeSWITCH , OpenPBX by Voicetronix , PBXInAFlash , FreePBX , OpenSIPs , Kamailio , 3CX , Office SIP Server 등과 같은 인기 있는 SIP 서비스를 고가용성 및 확장성으로 설정하는 데 유용합니다.
SIP 프로토콜은 어떻게 작동하나요? #
보니와 클라이드라는 두 발신자가 있다고 가정해 보겠습니다. 보니가 클라이드에게 전화를 겁니다. 먼저, 보니와 클라이드의 전화기가 모두 SIP 서버에 등록되어 있어야 합니다. 클라이언트와 등록 서비스 간의 등록 절차는 다음과 같습니다.
1. 소프트폰 클라이언트가 다음을 보냅니다. 바이낸스(BINANCE) 가입하기 SIP 서버에 메시지를 보냅니다.
2. SIP 서버는 다음과 같이 응답합니다. 무단 401 헤더를 포함한 메시지 WWW-인증.
3. 그런 다음 클라이언트는 다음을 다시 보냅니다. 바이낸스(BINANCE) 가입하기 SIP 서버에 대한 요청 포함 권한 부여 헤더.
4. 인증이 올바르면 SIP 서버는 다음을 반환합니다. 200 OK 고객에게 응답합니다. 이 단계에서 고객은 전화를 받고 전화를 걸 수 있습니다.
이 등록 프로세스는 이 문서에서 제안하는 프록시 로드 밸런서를 통해서도 높은 가용성을 제공할 것입니다.
Bonnie와 Clyde 간의 통화가 어떻게 수행되는지 더 잘 이해하려면 프로토콜에 정의된 아래 단계를 참조하세요.
1. Bonnie는 Clyde에게 전화를 걸기 위해 다음과 같은 메시지를 보냅니다. 초대 메시지
2. SIP 서버 A ~을 지나치다 초대 수신자 SIP 서버에 대한 메시지 B
3. 한편, SIP 서버 A 대답 100번 노력하다 보니에게 보내는 메시지
4. SIP 서버 B ~을 지나치다 초대 클라이드에게 보내는 메시지
5. 한편, 100번 노력하다 SIP 서버에 대한 메시지 A
6. 클라이드의 장치는 이제 180 울림 그리고 이를 SIP 서버로 전송합니다. B
7. SIP 서버 B 이것을 보냅니다 180 울림 SIP 서버로 A
8. SIP 서버 A 이것을 전달한다 180 울림 보니에게
9. 클라이드는 전화를 받고 보냅니다. 200 OK 메시지
10. 그리고 그것을 전달합니다 200 OK SIP 서버에 대한 메시지 B
11. SIP 서버 A 이것을 전달한다 200 OK 보니에게 보내는 메시지
12. Bonnie와 Clyde 사이에 연결이 설정되고 Bonnie는 직접 보냅니다. ACK 클라이드에게, 그리고 보니와 클라이드는 둘 다 서로 직접 소통합니다.
13. 어느 쪽이든 통화를 끊으면 안녕
14. 상대방이 확인서를 다시 보냅니다. 200 OK
SIP 부하 분산 환경 #
SIP 프로토콜의 세부 사항을 이해한 후, 이 글에서 다루고자 하는 시나리오는 더 많은 수의 소프트폰을 등록하고 더 많은 통화를 처리할 수 있도록 SIP 서버를 확장하는 것입니다. 아래 다이어그램은 데이터 센터의 서비스 아키텍처를 보여줍니다.
아래에서 구성 방법을 살펴보겠습니다.
SIP 부하 분산 구성 #
가상 서비스를 설정하기 전에 TCP 또는 UDP 프레임을 수신할 수 있는 전용 가상 IP 주소 를 생성해야 합니다 . 이를 위해 네트워크 > 가상 인터페이스 로 이동한 다음 작업 > 가상 인터페이스 생성을 클릭합니다.
다음으로 상위 인터페이스 , 인터페이스 이름 및 IP 주소를 선택합니다.
이제 SIP 서비스에서 사용하는 표준 포트인 TCP 및/또는 UDP 5060 또는 5061 에 SIP 가상 서비스를 간편하게 설정할 수 있습니다 . 5060 포트 는 일반적으로 암호화되지 않은 신호 트래픽에 사용되고, 5061 포트는 일반적으로 TLS ( 전송 계층 보안 ) 로 암호화된 트래픽에 사용됩니다.
와 RELIANOID 로드 밸런서, 우리는 이 구성을 만들어 달성합니다. LSLB 농장 프로필 L4xNAT 포트가 있는 5060 or 5061가상 서비스에서는 포트가 가상 서비스에 나열되어 있는 경우 암호화된 통신과 암호화되지 않은 통신이 모두 동시에 지원됩니다.
그러려면 LSLB > 농장 으로 이동하여 아래 그림과 같이 새 농장을 만드세요.
생성 후 [고급] 을 클릭하고 프로토콜 유형 으로 SIP를 선택합니다 . 이 단계에서 현재 가상 서비스에 레이어 4 SIP 프록시가 활성화되어 사용자 등록 및 통화에 대한 로드 밸런싱이 적절하게 수행됩니다. 또한 NAT 유형 으로는 NAT를 권장 하지만, 클라이언트의 소스 IP를 얻기 위해 DNAT를 사용할 수도 있습니다. 마지막으로 [업데이트]를 클릭하여 변경 사항을 적용합니다.
마지막으로 백엔드를 설정하려면 [서비스] 를 클릭하고 [백엔드] 섹션 에서 [작업] > [백엔드 추가]를 클릭합니다.
IP 주소 , 포트 번호 , 가중치를 입력하고 '저장 ' 버튼을 클릭하여 변경 사항을 적용하세요.
서비스 확장에 필요한 만큼 SIP 서버를 추가하세요. 이제 가상 IP를 소프트폰 및 클라이언트에서 SIP 가상 서비스로 사용하여 고가용성, 안정성 및 확장성을 확보할 수 있습니다.
고급 SIP 상태 점검 #
최근에 RELIANOID 릴리스를 사용하면 SIP 서비스에 대한 고급 상태 검사를 사용할 수 있습니다. 여기서 로드 밸런서는 백엔드로 구성된 모든 SIP 서버에 더미 SIP 호출을 수행하여 SIP 읽기 서비스가 제대로 작동하고 실행되는지 확인할 수 있습니다.
check_sip Farm Guardian 명령이 아직 생성되지 않은 경우 , 아래 그림과 같이 모니터링 > Farmguardian 섹션 에서 생성하십시오 .
check_sip 명령어 에 포함된 옵션을 더 잘 이해하려면 상태 점검 도구의 도움말을 참조하십시오.
사용법: ./check_sip [옵션] FROM TO FROM에서 TO로 SIP 호출을 하고, 여러 파일의 음성을 피어로 전송합니다. 파일의 내용은 PCMU/8000이어야 하며 samples/invite_and_recv.pl로 기록할 수 있음 옵션: -d|--debug 디버깅 활성화 -h|--help 도움말(이 정보) -P|--proxy host[:port] 발신 프록시 사용, 등록자가 지정되지 않은 경우 해당 프록시에 등록 -R|--registrar host[:port] 지정된 주소에 등록 -S|--send filename 파일 내용 전송, 여러 번 지정 가능 -L|--leg ip[:port] 발신 레그에 지정된 로컬 ip[:port] 사용 -T|--timeout T 시간 초과 및 T초 후 초대 취소, 기본값 30 --username name 권한 부여를 위한 사용자 이름 --password 권한 부여를 위한 비밀번호 전달 예: ./check_sip -T 10 -S welcome.data -S announce.data sip:30@192.168.178.4 sip:31@192.168.178.1 ./check_sip --사용자 이름 30 --비밀번호 비밀 --proxy=192.168.178.3 -S holy.data sip:30@example.com 31
예시를 바탕으로, 아래와 같이 농장 관리자 섹션 에서 건강 검사기를 정의할 수 있습니다 .
./check_sip -T 9 -S welcome.data -S announce.data sip:Bonnie@192.168.56.201 sip:Clyde@HOST
팜에 구성된 모든 SIP 백엔드에서 런타임에 토큰 HOST가 변경된다는 점에 유의하세요.
SIP 애플리케이션 전달 클러스터링 #
RELIANOID 두 개의 중복 유닛 간 클러스터링 서비스를 사용하여 SIP 확장 가능 전송 서비스를 고가용성으로 설정하는 기능도 제공합니다. 다른 유닛을 배포하세요. RELIANOID 단위를 참조합니다 시스템 > 클러스터 고가용성으로 구성하려면 섹션을 참조하세요.
SIP 보안 강화 #
IPDS 모듈을 사용하면 블랙리스트, 실시간 블랙홀 목록, DoS 공격 방지 등 다양한 보안 기능을 통해 공용 SIP 서비스에 손쉽게 보안 계층을 적용할 수 있습니다. 공용 SIP 서비스 보호에 대한 자세한 내용은 메인 메뉴의 IPDS 섹션을 참조하십시오.
VoIP 전화 클라이언트 구성 #
SIP 서비스의 확장성, 고가용성 및 강화된 보안 설정이 완료되면 소프트폰과 클라이언트에 새 서비스를 구성해야 합니다. 이 경우 가상 서비스의 VIP 주소 또는 공용 IP 주소로 확인되는 DNS 항목을 설정하는 것이 좋습니다. 클라이언트 측에서는 실제 SIP IP 주소를 구성하는 대신 가상 SIP 서비스에 대한 이러한 DNS 또는 FQDN 이름을 사용하게 됩니다. 이러한 구성을 통해 클라이언트의 로드 밸런싱을 쉽고 자동으로 수행할 수 있습니다.
반면, 등록을 더 자주 강제로 실행하기 위해 클라이언트 측에서 연결 유지 시간 제한을 낮추는 것이 좋습니다. SIP 서버가 다운된 것으로 감지되면 클라이언트가 이를 알아차리고 다른 서버에 빠르게 다시 연결을 시도할 수 있기 때문입니다.
이제 SIP 확장형 서비스를 즐겨보세요!







