
문제
인터페이스에 블록을 추가하는 방법을 알고 있습니다. 하지만 특정 주소를 동적으로 사용하는 방법을 정말로 모르겠습니다.
내가 원하는 것
예를 들어:
- 내 응용 프로그램에는 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는 가상입니다.