diff --git a/frontend/src/NetworkConfigManager.jsx b/frontend/src/NetworkConfigManager.jsx index 4bafa7c..5514324 100644 --- a/frontend/src/NetworkConfigManager.jsx +++ b/frontend/src/NetworkConfigManager.jsx @@ -146,6 +146,8 @@ const getEmptyInterface = () => ({ ipsecPasswordId: '', // ID IPSec пароля (опционально, только для IPSec) ipPoolId: '', // ID IP пула для выбора IP адресов (опционально) mtu: '', // MTU (опционально) + ptrZoneReplaceFrom: '', // Что заменить в DNS домене для PTR зоны (например, "rt.shx") + ptrZoneReplaceTo: '', // На что заменить (например, "shrt") }); const getEmptyIpPool = () => ({ @@ -1480,6 +1482,18 @@ function NetworkConfigManager() { } }; + // Функция для генерации PTR зоны с учетом замены + const generatePtrZone = (serverDns, iface) => { + if (!serverDns) return '—'; + + // Если указана замена PTR зоны, применяем её + if (iface?.ptrZoneReplaceFrom && iface?.ptrZoneReplaceTo) { + return serverDns.replace(iface.ptrZoneReplaceFrom, iface.ptrZoneReplaceTo); + } + + return serverDns; + }; + // === Получение реестра всех используемых IP адресов === const ipRegistry = useMemo(() => { const registry = []; @@ -1495,7 +1509,7 @@ function NetworkConfigManager() { interfaceName: iface.name || iface.id, server: server, // localIp привязан к serverId serverName: server?.dns || server?.ip || iface.serverId || '—', - ptrZone: server?.dns || '—' // PTR зона = доменное имя сервера + ptrZone: generatePtrZone(server?.dns, iface) // PTR зона с учетом замены }); } if (iface.remoteIp && iface.remoteIp.trim()) { @@ -1507,7 +1521,7 @@ function NetworkConfigManager() { interfaceName: iface.name || iface.id, server: server2, // remoteIp привязан к serverId2 serverName: server2?.dns || server2?.ip || iface.serverId2 || '—', - ptrZone: server2?.dns || '—' // PTR зона = доменное имя сервера + ptrZone: generatePtrZone(server2?.dns, iface) // PTR зона с учетом замены }); } }); @@ -4228,6 +4242,59 @@ function NetworkConfigManager() { ) : null; })()} + + {/* Поля для замены PTR зоны */} +
{originalDns}
+ {ptrZone}
+