2001 : 0DB8 ::/32 범위의 사람들에게 IPv6 주소를 할당하고 싶다고합시다. 대부분은 순차적으로 제공되지만 일부는 순차적이지 않습니다. 이 DB 테이블은 이미 할당 된 주소를 보여줍니다.다음 사용 가능한 IP 주소와의 거리 계산
+-----------------------------------------+
| Address |
+-----------------------------------------+
| 2001:0DB8:0000:0000:0000:0000:0000:0001 |
| 2001:0DB8:0000:0000:0000:0000:0000:0002 |
| 2001:0DB8:0000:0000:0000:0000:0000:0003 |
| 2001:0DB8:0000:0000:0000:0000:0000:0009 |
| 2001:0DB8:0000:0000:0000:0000:0F00:0001 |
| 2001:0DB8:0000:0000:0000:0000:0F00:0002 |
+-----------------------------------------+
이 부족하게 채워져 있음을주의 - 처음 3는 촬영 후 다음 중 하나가 수행 될 때까지 다음 다른 전에 수백만 주소의 차이가 촬영 5 개 사용 가능한 주소가 있습니다.
내가하고 싶은 일은 인 서브넷의 시작 부분부터 다음 번에 사용 가능한 주소를 할당하는 것입니다. 이 경우 처음부터 시작하기에 충분히 쉬우 며, 2001 : 0DB8 :: 4에 대한 레코드가 아직 없음을 발견하고이를 사용하십시오. 그러나 결국 사용 가능한 다음 주소는 서브넷 시작부터 수천 또는 수백만 단계 떨어져있을 수 있습니다. 한 번에 한 주소 씩 데이터베이스를 걷는 것은 좋지 않은 아이디어입니다. 각 주소는 자체 목록에서 다음 중 하나 사이에 얼마나 많은 사용 가능한 주소 가리 키도록
나는 테이블에 다른 필드를 추가 생각 :
+-----------------------------------------+--------------------+
| Address | Steps to next addr |
+-----------------------------------------+--------------------+
| 2001:0DB8:0000:0000:0000:0000:0000:0001 | 1 |
| 2001:0DB8:0000:0000:0000:0000:0000:0002 | 1 |
| 2001:0DB8:0000:0000:0000:0000:0000:0003 | 6 |
| 2001:0DB8:0000:0000:0000:0000:0000:0009 | 15728632 |
| 2001:0DB8:0000:0000:0000:0000:0F00:0001 | 2 |
| 2001:0DB8:0000:0000:0000:0000:0F00:0003 | |
+-----------------------------------------+--------------------+
하지만 난 그 날 도움이 확실하지 않다 . IP 주소가 스파 스 섹션의 중간에 할당 된 경우 해당 주소에서 다음 단계까지의 단계가 몇 개인 지 계산 한 다음 새 주소 앞에 할당 된 주소로 돌아가야합니다. "next addr"단계를 수정하십시오. 아직도 느린 과정처럼 보입니다.
더 좋은 방법이 있나요?
이 IPv6의 시작 주소를 할당하는 끔찍한 방법은 거의 확실하다. 나는 단지 (잘못 생각한) 숙제 임에 틀림 없다. –
@MichaelHampton 나는 주소 할당 알고리즘을 생각해내는 데 진정으로 관심이있다. 아마도이 질문에 대한 답변으로 화제가 될 수도 있지만 (기존 IPAM 데이터베이스를 보완하는 내용을 다루기 때문에) 새로운 질문에 대한 답변으로 기대됩니다. –
@JeremyVisser 그건 DHCP가 무엇을위한거야 ... –