DNAT Coverage Enhancements
- Partial DNAT coverage severity now depends on coverage ratio:
- ≥ 2/3 networks covered: Recommended severity (score impact 6)
- < 2/3 networks covered: Critical severity (score impact 10)
- Add configurable VLAN ID exclusions for DNAT coverage checks
- Add settings UI for excluded VLANs (comma-separated) in Settings page
- Add settings tooltip to issue metadata for user guidance
Code Quality Improvements
- Remove duplicated protocol matching methods from DnsSecurityAnalyzer, use FirewallGroupHelper.AllowsProtocol instead
- Add logging for port range truncation in UpnpSecurityAnalyzer when ranges exceed 100 ports
- Fix fragile null-forgiving operator with null-coalescing fallback
- Consolidate JsonElementExtensions from DnatDnsAnalyzer to Core helpers