feat(new-tool): generate ula based on timestamp and mac address (#344)
* feat(ipv6-ula-generator): new tool: generate ula based on timestamp and mac address This new tool generates a random unique ula based on the current timestamp and the provided mac address. An ULA is your "secondary" IPV6-Address only for internal use. It can also be used as a backup address if your provider gets offline and your Prefix-IPs are not longer valid.Also you can create the most of your internal firewall rules based on your ULAs. * feat(ipv6-ula-generator): changes requested by review * Update src/tools/ipv6-ula-generator/index.ts * Update src/tools/ipv6-ula-generator/ipv6-ula-generator.vue --------- Co-authored-by: Corentin THOMASSET <corentin.thomasset74@gmail.com>
This commit is contained in:
		
							parent
							
								
									1d7f8b9a8c
								
							
						
					
					
						commit
						a1e983538c
					
				| @ -2,7 +2,7 @@ | |||||||
|   <div> |   <div> | ||||||
|     <n-space vertical :size="50"> |     <n-space vertical :size="50"> | ||||||
|       <n-alert title="Info" type="info"> |       <n-alert title="Info" type="info"> | ||||||
|         This page uses the first method suggested by IETF using the current timestamp plus the mac address, sha1 hashed, |         This tool uses the first method suggested by IETF using the current timestamp plus the mac address, sha1 hashed, | ||||||
|         and the lower 40 bits to generate your random ULA. |         and the lower 40 bits to generate your random ULA. | ||||||
|       </n-alert> |       </n-alert> | ||||||
| 
 | 
 | ||||||
| @ -40,19 +40,20 @@ const calculatedSections = computed(() => { | |||||||
|   const hex40bit = SHA1(timestamp + macAddress.value) |   const hex40bit = SHA1(timestamp + macAddress.value) | ||||||
|     .toString() |     .toString() | ||||||
|     .substring(30); |     .substring(30); | ||||||
|  | 
 | ||||||
|   const ula = 'fd' + hex40bit.substring(0, 2) + ':' + hex40bit.substring(2, 6) + ':' + hex40bit.substring(6); |   const ula = 'fd' + hex40bit.substring(0, 2) + ':' + hex40bit.substring(2, 6) + ':' + hex40bit.substring(6); | ||||||
| 
 | 
 | ||||||
|   return [ |   return [ | ||||||
|     { |     { | ||||||
|       label: 'IPv6 ULA : ', |       label: 'IPv6 ULA:', | ||||||
|       value: `${ula}::/48`, |       value: `${ula}::/48`, | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       label: 'First routable block: ', |       label: 'First routable block:', | ||||||
|       value: `${ula}:0::/64`, |       value: `${ula}:0::/64`, | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       label: 'Last routable block: ', |       label: 'Last routable block:', | ||||||
|       value: `${ula}:ffff::/64`, |       value: `${ula}:ffff::/64`, | ||||||
|     }, |     }, | ||||||
|   ]; |   ]; | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| import { useValidation, type ValidationAttrs } from '@/composable/validation'; | import { useValidation } from '@/composable/validation'; | ||||||
| import type { Ref } from 'vue'; | import type { Ref } from 'vue'; | ||||||
| 
 | 
 | ||||||
| function macAddressValidation(value: Ref) { | function macAddressValidation(value: Ref) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user