문제

문제

문제

인터페이스에 블록을 추가하는 방법을 알고 있습니다. 하지만 특정 주소를 동적으로 사용하는 방법을 정말로 모르겠습니다.

내가 원하는 것

예를 들어:

  • 내 응용 프로그램에는 fe80::/32 블록이 있습니다.
  • 내 사용자가 자격 증명이 있는 단일 ipv4 주소로 서버에 액세스하도록 허용하겠습니다.
  • IPV6로 후크를 보내겠습니다.
  • 모든 사용자에게 보낼 특정 주소를 제공하고 싶습니다.
  • 사용자A: fe80::1사용자B:fe80::2

나는 그것에 대한 전체 블록을 가지고 있으므로 이 서비스를 사용하는 사용자가 엄청나게 많을 것입니다.

내가 뭘 한거지

하지만 특정 주소로 요청을 바인딩할 수 없어서 errno99가 발생한다는 것을 알았습니다.

나는 Linux가 내가 원하는 기능을 지원하는지 테스트하기 위해 컬을 사용하고 있었지만 그럴 수 없다는 것을 알았습니다.

테스트 방법:

범위가 포함된 테스트 서버

섬기는 사람

python3 -m http.server --bind ::

고객

curl -vvv -6  "http://[fe80::3]:8000"
curl -vvv -6  "http://[fe80::4]:8000"

이것은 작동합니다. 서버가 모든 주소를 수신하고 있기 때문입니다. 그래서 당신은 그들 중 누구와도 접근할 수 있습니다.

범위가 있는 테스트 클라이언트

섬기는 사람

python3 -m http.server --bind ::

고객

curl -vvv -6 -i "fe80::2" "http://[fe80::1]:8000"
curl -vvv -6 -i "fe80::3" "http://[fe80::1]:8000"

이것은 작동하지 않습니다. Curl은 errno99를 던질 것입니다

모든 IP를 인터페이스에 바인딩

나는 전체 범위의 IP를 가지고 있는데 각 IP를 /32 아래에 바인딩해야 한다는 것이 얼마나 미친 짓입니까? 그래서 더 나은 해결책을 찾고 있습니다.

토론에 대하여

약간의 토론이 삭제되었습니다. 그리고 나는 그것의 역사를 찾을 수 없습니다.

부인 성명:

  • "내가 원하는 것"에 "예:"를 입력했습니다.
  • 이 문제의 편집 기록을 확인하면 처음으로 "예:"가 여기에 있음을 알 수 있습니다.
  • 이 문제는 클라이언트가 요청한 기능에서 발생합니다.
  • 간단하게 해결하고 싶은데, 이 얘기는 더 이상 하고 싶지 않습니다.
  • IPV6 전용 VPS에서 서비스를 호스팅하는 고객을 만족시켜야 한다는 이유만으로 해고당하는 이유를 모르겠습니다.
  • 내가 가진 문제는 이 문제를 해결하기 위해 하드웨어나 소프트웨어에 뭔가를 설정해야 할지 모르겠다는 것입니다. 하지만 이것이 서버 문제인 것 같아서 주제에서 벗어났습니다. 그리고 나는 해결책을 찾았습니다.

답변1

현실 점검이 필요하고 - 기침 - 약간의 RTFM이 필요합니다.

  • 주소 블록 FE80은 링크 로컬입니다. 최후의 수단으로 사용된다는 의미입니다. 이더넷 세그먼트의 모든 엔드포인트에는 IPv6이 활성화된 경우 주소가 있습니다. 감사합니다.
  • 즉, 컴퓨터에는 무작위로 주소가 있기 때문에 모든 주소를 사용할 수는 없습니다. 이는 MAC을 기준으로 무작위입니다.
  • 이 접두사는 링크 로컬이고 모든 링크에 자동으로 할당되므로 라우팅되지 않습니다. 따라서 사용자가 로컬이 아닌 이상 IT로 보낼 수 없습니다.
  • 마지막으로, 당신은 건축학적으로 큰 어리석음을 범했습니다. IPv4 주소에서 사용자를 종료합니다. 사용자는 IPv4 액세스 권한을 갖게 된 다음 IPv6에 도달할 수 있도록 제공합니다. IPv6가 활성화되어 있다고 가정하면(정말 어리석은 생각입니다). 이것은 사실이 아닐 것입니다. ipv4를 얻고 ipv4를 유지하십시오. IPv6을 확보하고 IPv6를 유지하세요. 하지만 이 경우에는 라우팅이 불가능하기 때문에 관련이 없습니다. 그러나 일반적으로 프로토콜을 전환해서는 안 됩니다. 이중 스택을 가정하면 99.9%의 사람들에게는 그렇지 않습니다.

답변2

corosync 및 Pacemaker를 사용하여 클러스터를 생성하고 블록의 가상 IP를 사용하여 두 개의 노드와 두 개의 서비스를 사용하는 것을 고려할 수 있습니다. 서비스는 노드 1과 노드 2에서 사용될 예정이므로 노드 1과 노드 2가 이를 사용할 수 있어야 하므로 IP는 가상입니다.

관련 정보