Добавить NATUPDATE
This commit is contained in:
44
NATUPDATE
Normal file
44
NATUPDATE
Normal file
@@ -0,0 +1,44 @@
|
||||
# Define the hostname and ports
|
||||
:local hostname "websrv0001"
|
||||
:local port1 "80"
|
||||
:local port2 "443"
|
||||
|
||||
:local interfaceList "WAN"
|
||||
|
||||
# Resolve the IP address from the DHCP lease
|
||||
:local resolvedIP ""
|
||||
|
||||
:foreach lease in=[/ip dhcp-server lease find] do={
|
||||
:local dhcpHostName [/ip dhcp-server lease get $lease host-name]
|
||||
:if ($dhcpHostName = $hostname) do={
|
||||
set resolvedIP [/ip dhcp-server lease get $lease address]
|
||||
}
|
||||
}
|
||||
|
||||
:log info $resolvedIP
|
||||
|
||||
:if ( [ :len $resolvedIP] > 0 ) do={
|
||||
:local natRule1 [/ip firewall nat find comment="HTTP NAT Rule"]
|
||||
:local natRule2 [/ip firewall nat find comment="HTTPS NAT Rule"]
|
||||
|
||||
# Check if HTTP NAT rule exists, create if it doesn't
|
||||
:if ( [ :len $natRule1 ] = 0 ) do={
|
||||
/ip firewall nat add chain=dstnat dst-port=$port1 protocol=tcp action=dst-nat in-interface-list=$interfaceList to-addresses=$resolvedIP to-ports=$port1 comment="HTTP NAT Rule"
|
||||
:log info "Created HTTP NAT Rule for $hostname"
|
||||
} else={
|
||||
/ip firewall nat set $natRule1 to-addresses=$resolvedIP to-ports=$port1
|
||||
:log info "Updated HTTP NAT Rule for $hostname"
|
||||
}
|
||||
|
||||
# Check if HTTPS NAT rule exists, create if it doesn't
|
||||
:if ( [ :len $natRule2 ] = 0 ) do={
|
||||
/ip firewall nat add chain=dstnat dst-port=$port2 protocol=tcp action=dst-nat in-interface-list=$interfaceList to-addresses=$resolvedIP to-ports=$port2 comment="HTTPS NAT Rule"
|
||||
:log info "Created HTTPS NAT Rule for $hostname"
|
||||
} else={
|
||||
/ip firewall nat set $natRule2 to-addresses=$resolvedIP to-ports=$port2
|
||||
:log info "Updated HTTPS NAT Rule for $hostname"
|
||||
}
|
||||
|
||||
} else={
|
||||
:log warning "Hostname $hostname not found in DHCP lease list"
|
||||
}
|
||||
Reference in New Issue
Block a user