AWS Instance not access metadata server with IP
Solution 1:
In my case, this issue was caused by an invalid network route (specifically, an incorrect NextHop). Here's my patch implementation, inspired by @gonzales-gokhan comment above:
$destinationPrefix = '169.254.169.254/32'
$defaultNetIPConfig = @(Get-NetIPConfiguration | Sort-Object -Property 'InterfaceIndex')[0]
try {
if (@(Get-NetRoute -DestinationPrefix $destinationPrefix -PolicyStore 'ActiveStore').Length) {
Remove-NetRoute -DestinationPrefix $destinationPrefix -PolicyStore 'ActiveStore' -Confirm:$false -ErrorAction SilentlyContinue
Write-Host 'network route for instance metadata removed from ActiveStore'
}
if (@(Get-NetRoute -DestinationPrefix $destinationPrefix -PolicyStore 'PersistentStore').Length) {
Remove-NetRoute -DestinationPrefix $destinationPrefix -PolicyStore 'PersistentStore' -Confirm:$false -ErrorAction SilentlyContinue
Write-Host 'network route for instance metadata removed from PersistentStore'
}
New-NetRoute -DestinationPrefix $destinationPrefix -InterfaceIndex $defaultNetIPConfig.InterfaceIndex -NextHop $defaultNetIPConfig.IPv4DefaultGateway.NextHop -RouteMetric 1 -ErrorAction Stop
Write-Host 'network route for instance metadata added.'
}
catch {
Write-Host ('failed to add network route for instance metadata. {0}' -f $_.Exception.Message)
}