IPv6 또는 IPv4 소켓에서 수신 연결 수신

UNIX 플랫폼은 IPv4 및 IPv6 수신 연결을 모두 동일한 소켓에서 수신합니다. Microsoft Windows는 수신 IPv4 및 IPv6 연결을 모두 동일한 소켓에서 수신할 수 없습니다. IPv6이 사용 불가능한 경우, Microsoft Windows는 IPv4 연결만 수신합니다. IPv6이 사용 가능하고 포트가 주소에 바인드되지 않은 경우 IPv6 연결만 수신합니다. IPv4 및 IPv6 연결을 모두 수신하려면 하나는 IPv4 주소에 바인드하고 하나는 IPv6 주소에 바인드하는 두 개의 포트를 정의합니다. NRPC의 경우 이 작업은 쉽게 수행되지만, 지금까지 인터넷 서버는 단일 HCLNotes® 포트에 대한 지원만 제공했습니다.

HCLDomino®에서는 인터넷 서버를 위해 두 개의 Notes® 포트를 지원합니다. 사용자 인터페이스는 NOTES.INI 변수 SMTPNotesPort에 두 개의 Notes® 포트 이름을 지정합니다. 예를 들어, 다음과 같습니다.

SMTPNotesPort=TCPIP,TCPIP6 

포트 중 하나가 종료될 경우(stop port tcpip) 인터넷 서버는 잠시 두 개의 포트를 모두 종료하고 나머지 하나의 포트에서 수신을 재시작합니다. 또한 임의의 주소에 대한 아웃바운드 연결은 모든 TCP 포트에서 성공합니다. 아웃바운드 연결의 경우, Domino®는 시도한 대상 주소를 처리하기 위해 적합한 소켓을 작성합니다.

TCP 포트를 IP 주소에 바인드하여 아웃바운드 연결 설정

아웃바운드 연결을 설정하는 클라이언트 또는 서버가 NOTES.INI 설정 SMTPNotesPorts= <TCPIPAddress>를 사용하여 TCP 포트를 특정 IP 주소에 바인드하면, 바인드된 포트는 바인드된 IP 주소 유형의 아웃바운드 연결만 설정할 수 있습니다. 예를 들어, 서버가 Notes® 포트 TCPIP를 IPV4 주소로 바인드하고 Notes® 포트 TCPIP6을 IPV6 주소로 바인드하면, 포트 TCPIP는 IPV4 주소에 대한 아웃바운드 연결을 설정하고 포트 TCPIP6은 IPV6 주소에 대한 아웃바운드 연결만 설정할 수 있습니다.

IP 주소에 바인드된 IPV4 및 IPV6 Notes® 포트를 포함하는 구성에서 연결 문서에 나열된 포트는 연결할 수 있는 모든 TCP 포트를 포함해야 합니다. 예를 들어, 서버A에서 서버B로의 서버 연결 문서를 작성하고 서버B의 DNS 이름이 IPV4 주소와 IPV6 주소로 모두 확인될 수 있으며 IPV4 또는 IPV6 상에서 연결하려는 경우 연결 문서에 두 개의 포트를 모두 포함해야 합니다.

IPv4 또는 IPv6 소켓을 작성 및 사용하는 경우

다음 규칙 집합을 사용하여 IPv4 또는 IPv6 소켓의 사용 여부를 결정합니다.

  • 연결하거나 수신할 때 IPv6이 사용 가능하지 않으면 항상 IPv4 소켓을 작성합니다.
  • 바인드된 주소로 연결하거나 수신할 경우 주소 유형과 일치하는 소켓을 사용합니다.
  • 수신 중이고 바인드된 주소가 없으며 IPv6이 사용 가능한 경우 IPv6 소켓을 사용합니다.
  • 수신 중이고 바인드된 주소가 없으며 IPv6이 사용 불가능한 경우 IPv4 소켓을 사용합니다.
주: 주소 0은 수신인(listener)이 모든 주소를 수신함을 나타냅니다. 위의 규칙 세트를 적용할 때 다음 사항을 참고하십시오.
  • 임의의 IPv6 주소를 수신하는 IPv6 소켓을 작성하려면 주소로 바인드하지 마십시오.
  • 임의의 IPv4 주소를 청취하는 IPv4 소켓을 작성하려면 다음 주소로 바인드하십시오. ::ffff:0.0.0.0

UNIX 서버에서 임의의 주소로 바인드된 IPv6 소켓은 모든 수신 연결을 수신하지만, Windows에서 동일한 소켓은 수신 IPv6 연결만 수신합니다.

Linux에서 한 포트가 "임의의" 주소로 바인드되고 IPv6이 사용 가능한 경우 두 번째 포트는 특정 IPv4 또는 IPv6 주소로 바인드할 수 없습니다. 이렇게 하면, 주소가 이미 사용 중입니다 오류가 리턴됩니다.