Hello,
Could DNAT To address use host name? It is requested because I sometimes change IP address for those hosts

Currently not. And I’m not sure how much it’s needed, static addresses are usually enough. But if you do need it, you can use scheduled script to update it. Simple example:
:local host
:set host "host.example.net"
:do {
:local newip
:set newip [:resolve $host]
foreach i in=[/ip firewall nat find comment="DNS:$host"] do={
if ($newip != [/ip firewall nat get $i to-addresses]) do={
/ip firewall nat set $i to-addresses=$newip
:log info ("dstnat rule updated (port = " . [/ip firewall nat get $i dst-port] . ", $host = $newip)")
}
}
} on-error={
:log info "unable to resolve $host"
}
Add comment “DNS:host.example.net” to rules that should be updated. Even better would be to load hostname from each rule, but I’m not good with RouterOS scripting and I needed only one, so I didn’t do it.