Manual:IP/TFTP

From MikroTik Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Summary

TFTP is a very simple protocol used to transfer files. It is from this that its name comes, Trivial File Transfer Protocol or TFTP. Each nonterminal packet is acknowledged separately. RouterOS has a built-in TFTP server since v3.22

/ip tftp

  • ip-address (required) - range of IP addresses accepted as clients
  • req-filename - requested filename as regular expression (regex) if field is left empty it defaults to .*
  • real-filename - if above two values are set and valid, the requested filename will be replaced with this. If this field is empty, the req-filename will be used. If multiple regex are specified in req-filename, with this field you can set which ones should match, so this rule is validated. real-filename format for using multiple regex is filename\0\5\6
  • allow (default: yes) - to allow connection if above fields are set. if no, connection will be interrupted
  • read-only (default: no) - sets if file can be written to, if set to "no" write attempt will fail with error
  • hits - how many times this configuration entry has been executed (viewable only)

2009-04-03 1314.png

req-filename field allowed regexp

allowed regexps in this field are

  • brackets ()
  • caret "^" - used at the beginning of the line means that line starts with,
  • asterisk "*" - match zero or more times preceding symbol,
    example 1 a* will match any length name consisting purely of symbols a or no symbols at all
    example 2 .* will match any length name 
    example 3 as*df will match adf, asdf, assdf, asssdf etc.
  • dot "." - matches any symbol
  • square brackets [] - variation between as[df] will match asd and asf
  • dollar "$" - means at the end of the line
  • question mark "?" will match one or none symbols, example asd?f will match asdf and asf
  • plus "+" will match one or more times preceding symbol, example: as+df will match asdf, assdf etc.

Examples

  • example 1 if file is requested return file from store called sata1:
/ip tftp add req-filename=file.txt real-filename=/sata1/file.txt allow=yes read-only=yes
  • example 2 if we want to give out one specific file no matter what user is requesting:
/ip tftp add req-filename=.* real-filename=/sata1/file.txt allow=yes read-only=yes
  • example 3 if user requests aaa.bin or bbb.bin then give them ccc.bin:
/ip tftp add req-filename="(aaa.bin)|(bbb.bin)" real-filename="/sata1/ccc.bin\\0" allow=yes read-only=yes