Я использую ASP.NET Core API в Kubernetes за обратным прокси, который отправляет заголовки X-Forwarded-For
, X-Forwarded-Proto
и X-Forwarded-Host
.
Я обнаружил, что мне нужно использовать UseForwardedHeaders()
, чтобы принять значения от прокси, поэтому я написал следующий код:
var forwardedOptions = new ForwardedHeadersOptions()
{
ForwardedHeaders = Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.All
};
forwardedOptions.KnownNetworks.Add(new IPNetwork(IPAddress.Parse(configuration["network:address"]), int.Parse(configuration["network:cidrMask"])));
app.UseForwardedHeaders(forwardedOptions);
Я использую мой API и обратный прокси-сервер в Kubernetes, и API виден только в кластере. Из-за этого я не беспокоюсь о том, что кто-то в кластерной сети подделывает заголовки. Я хотел бы автоматически определить внутреннюю подсеть кластера и добавить ее в список KnownNetworks
. Это возможно? Если да, то как?