"Incoming TCP limits reached"
::= { stats 152 }
+ecsMissing OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of answers where ECS info was missing"
+ ::= { stats 153 }
+
---
--- Traps / Notifications
---
maxChainLength,
maxChainWeight,
chainLimits,
- tcpOverflow
+ tcpOverflow,
+ ecsMissing
}
STATUS current
DESCRIPTION "Objects conformance group for PowerDNS Recursor"
thread_local TCPOutConnectionManager t_tcp_manager;
std::shared_ptr<Logr::Logger> g_slogout;
bool g_paddingOutgoing;
-bool g_ECSHardening{false};
+bool g_ECSHardening;
void remoteLoggerQueueData(RemoteLoggerInterface& rli, const std::string& data)
{
'pname': 'proxy-mapping-total-n-0', # For multicounters, state the first
# No SNMP
},
+ {
+ 'name': 'ecs-missing',
+ 'lambda': '[] { return g_Counters.sum(rec::Counter::ecsMissingCount); }',
+ 'desc': 'Number of answers where ECS info was missing',
+ 'snmp': 153,
+ },
]
}
g_paddingTag = ::arg().asNum("edns-padding-tag");
g_paddingOutgoing = ::arg().mustDo("edns-padding-out");
+ g_ECSHardening = ::arg().mustDo("edns-subnet-harden");
RecThreadInfo::setNumDistributorThreads(::arg().asNum("distributor-threads"));
RecThreadInfo::setNumUDPWorkerThreads(::arg().asNum("threads"));
''',
'versionadded': '4.5.0'
},
+ {
+ 'name' : 'edns_subnet_harden',
+ 'section' : 'outgoing',
+ 'type' : LType.Bool,
+ 'default' : 'false',
+ 'help' : 'Do more strict checking or EDNS Client Subnet information returned by authoritative servers',
+ 'doc' : '''
+Do more strict checking or EDNS Client Subnet information returned by authoritative servers.
+Answers missing ECS information will be ignored and followed up by an ECS-less query.
+ ''',
+ 'versionadded': ['5.2.x', '5.1.x', '5.0.x']
+ },
{
'name' : 'enable_old_settings',
'section' : 'recursor',
"""
def _checkStatsValues(self, results):
- count = 152
+ count = 153
for i in list(range(1, count)):
oid = self._snmpOID + '.1.' + str(i) + '.0'
self.assertTrue(oid in results)