組み込み系機器(Wi-Fi APなど)がネットワークに繋がらなくなったりフリーズしたりする症状が発生したのでWiresharkで覗いたところ、Windows 11マシンがやたら22222ポートと10004ポート、3289ポート宛にUDPでブロードキャストしていた。
Windows 10では起きていない感じだが詳細不明。
とりあえず発生しているマシンで以下のプログラムを管理者権限で動かしてもらい上記ブロードキャストを強制的に発信しないようにしてもらった。
下記のプログラムをコンパイルするにはVisual Studio 2022にて「コンソールアプリ(.NET Framework)Visual Basic」でプロジェクトを作ってCOMのNetFwTypeLibを参照する必要があります。
Imports NetFwTypeLib
Module Module1
'Private Const NET_FW_IP_PROTOCOL_ICMPv4 = 1
'Private Const NET_FW_IP_PROTOCOL_TCP = 6
Private Const NET_FW_IP_PROTOCOL_UDP = 17
Private Const NET_FW_ACTION_BLOCK = 0
'Private Const NET_FW_ACTION_ALLOW = 1
'Private Const NET_FW_RULE_DIR_IN = 1
Private Const NET_FW_RULE_DIR_OUT = 2
'Private Const NET_FW_PROFILE2_DOMAIN = 1
'Private Const NET_FW_PROFILE2_PRIVATE = 2
'Private Const NET_FW_PROFILE2_PUBLIC = 4
Private Const NET_FW_PROFILE2_ALL = &H7FFFFFFF
Public Sub BlockUDP(ByVal RuleName As String, ByVal RuleDescription As String, ByVal RulePort As Long)
Dim fwPolicy2 As Object = CreateObject("HNetCfg.FwPolicy2")
Dim NewRule As Object = CreateObject("HNetCfg.FWRule")
Dim RulesObject As Object = fwPolicy2.Rules
NewRule.Name = RuleName
NewRule.Description = RuleDescription
NewRule.Protocol = NET_FW_IP_PROTOCOL_UDP
NewRule.Direction = NET_FW_RULE_DIR_OUT
NewRule.RemotePorts = RulePort
NewRule.Grouping = "@firewallapi.dll,-23255"
NewRule.Profiles = NET_FW_PROFILE2_ALL
NewRule.Enabled = True
NewRule.Action = NET_FW_ACTION_BLOCK
Try
RulesObject.Add(NewRule)
Catch ex As Exception
WriteLine(ex.Message & vbNewLine & ex.StackTrace)
End Try
End Sub
Sub Main()
BlockUDP("Block 22222", "", 22222)
BlockUDP("Block 10004", "", 10004)
BlockUDP("Block 3289", "", 3289) 'ADD NEW
End Sub
End Module