Udostępnij za pośrednictwem


Niestandardowe ładunki ping w systemie Linux

W systemie Linux procesy nieuprzywilejowane nie mogą wysyłać nieprzetworzonych pakietów IP. Ping funkcjonalność jest implementowana poprzez interfejs z narzędziem ping . Jednak to narzędzie nie obsługuje określania niestandardowego ładunku dla pakietów ping protokołu ICMP (Internet Control Message Protocol). Platforma .NET 7 wprowadza mechanizm sprawdzania takich przypadków i zgłasza wyjątek, jeśli określono niestandardowy pakiet.

Poprzednie zachowanie

W poprzednich wersjach ładunek pakietu ping był ignorowany w trybie dyskretnym (czyli nie został wysłany) w nieuprzywilejowanych procesach systemu Linux.

Nowe zachowanie

Począwszy od .NET 7, wyjątek jest zgłaszany, PlatformNotSupportedException jeśli próbujesz wysłać niestandardowy pakiet ping podczas uruchamiania w nieuprzywilejowanym procesie Linux.

Wersja wprowadzona

.NET 7

Typ zmiany przełamującej

Ta zmiana może mieć wpływ na zgodność binarną.

Przyczyna zmiany

Lepiej jest zasygnalizować użytkownikowi, że nie można wykonać operacji zamiast dyskretnie upuszczać ładunku.

Jeśli wymagany jest ładunek ping, uruchom aplikację jako root, lub przyznaj uprawnienie cap_net_raw przy użyciu narzędzia setcap.

W przeciwnym razie użyj przeciążenia Ping.SendPingAsync, które nie przyjmuje niestandardowego ładunku lub przekaż pustą tablicę.

Interfejsy API, których dotyczy problem