Requirement
|
Overview
I'm not sure if this is still the case now, but back in 1999, I had the opportunity to managed multiple VPNs at a very huge French Service Provider. I'm saying huge as in this type of MPLS muti-service core network, you could have hundreds of VRF in the same PE router connecting a myriads of CPE via X25 (XOT), frame-relay and ATM PVC at best. In that context, some companies could have several thousands of routers in their VPNs and it was not common to follow a high pace deployment which was at ~10 CPEs per day for a new customer VPN implementation. So one of my favorite CLI command was:
copy tftp run Address or name of remote host []? <x.y.z.t> Source filename []? <router-cpe-config-file-name> Destination filename [running-config]? ...
That being said, I'm not sure if this has evolved since then as TFTP occurred inside a very protected out of band management network, it was very good and did a perfect job. Keep in mind that we could be hundreds of "VPN owner" deploying CPEs at the same time. This has to be highly available.
That was for the anecdote, but recently I attempted to upgrade my OpenWRT wifi router from 18.06.02 to the latest code train: 19.07.4. As a I'm lazy, I just sticked with OpenWRT web upgrade via LuCI. Not sure if I was right ... I don't know why and how but the upgrade failed and my wifi router got "bricked".
After a lot of googling and reading, i concluded that I had only one solution: restore from factory and re-install OpenWRT 19.07.04 installation by hand. You have guess the rest of the article, the factory-reset procedure requires a TFTP server.
Note
But before that, I had to solder an USB - UART module as described here.
Article objective
As again i was lazy on installing a TFTP server on my MAC and disconnect my current LAN access in order to have a direct connectivity with the OpenWRT box, I had an idea (this is not often ) off the top of my head: "Hey, maybe freeRouter has a TFTP server that I can activate in few lines ?"... Well, after a terminal connection to my home router let me introduce you to freeRouter/TFTP server:
[ #004 ] - Saving private OpenWRT", thanks freeRouter's TFTP server !
Note
Discussion
You can deploy freeRouter manually in a VM or container and bind it to a linux interface if you need a TFTP server in order to apply configuration to all your equipment. When final staging are done in a secure Out of Band management network context having a TFTP server is a blessing as it correspond to a gain of time in a production environment. Imaging hundreds of people working in a SP environment and working at the same time.
Conclusion
In this 4th article:
- We presented freeRouter TFTP embedded server
- You can use it in order to undertake network equipment deployment requiring TFTP
- This TFTP server is compatible with IPv4/IPv6
TFTP is a basic but a common tool in SP environment (or it was? If it is still used, yes please confirm !) In this example, I demonstrated the use of TFTP server in order to flash a wifi router to factory default. I have 802.11ac back up and running !
Final words
freeRouter can be perceived not only as a router but it is a networking Swiss army knife. in further articles we will shed some lights in various treasures hidden into freeRouter... And for free !
Last but not least, you can play with these different servers from this sandbox: (You'll be able to spot amazing server that will be the object of further article.)
Trying 193.224.23.5... Connected to dl.nop.hu. Escape character is '^]'. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXX XXX XXX XXX XX XX XXXX XXXXXXXXXXXXXXXXXXX XXXX XXXX XX XXXX XX XXXX XX XX XX XXXX XXXXX/~~~~~~\XXXXXX XXXX X XXX XX XXXX XX XXXX XX XX XX XXXX XXXX| player |XXXXX XXXX XX XX XX XXXX XX XXX XX XXXX XXXXX\______/XXXXXX XXXX XXX X XX XXXX XX XXXXXXX XX XX XXXX XXXXXXXXXXXXXXXXXXX XXXX XXXX XX XXXX XX XXXXXXX XX XX XXXX XXXXXXXXXXXXXXXXXXX XXXX XXXXX XXX XXX XXX XXX XX XXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX welcome line ready menu lab: # - reboot router1 $ - reboot router2 % - reboot router3 1 - connect to router1 2 - connect to router2 3 - connect to router3 ^ - rebuild routers l - connect to lg.nop.dn42 x - exit choose:1 - attach vdc lab1 welcome line ready yourname#conf t warning user.userLineHandler.doExec:userLine.java:606 <nobody> configuring from tty1 yourname(cfg)#server ? bmp2mrt - configure an bmp to mrt server bstun - configure a bstun server chargen - configure a chargen server daytime - configure a daytime server dcp - configure a dcp server dhcp4 - configure a dhcp4 server dhcp6 - configure a dhcp6 server discard - configure a discard server dns - configure a dns server echo - configure an echo server etherip - configure a etherip server forwarder - configure a forwarder server ftp - configure a ftp server geneve - configure a geneve server gopher - configure a gopher server gre - configure a gre server gtp - configure a gtp server honeypot - configure a honeypot server http - configure a http server irc - configure an irc server iscsi - configure an iscsi server l2f - configure a l2f server l2tp2 - configure a l2tp v2 server l2tp3 - configure a l2tp v3 server loadbalancer - configure a loadbalancer server lpd - configure a lpd server modem - configure a modem server mplsip - configure a mplsip server mplsudp - configure a mplsudp server multiplexer - configure a multiplexer server netflow - configure an netflow server nrpe - configure a nrpe server ntp - configure a ntp server openflow - configure an openflow server p4lang - configure an p4lang server pcep - configure a pcep server pckodtls - configure a pckodtls server pckotcp - configure a pckotcp server pckotxt - configure a pckotxt server pckoudp - configure a pckoudp server pop3 - configure a pop3 server pptp - configure a pptp server prometheus - configure a prometheus server quote - configure a quote server radius - configure a radius server rfb - configure a rfb server rpki - configure a rpki server sip - configure a sip server smtp - configure a smtp server snmp - configure a snmp server socks - configure a socks server streamingmdt - configure a streaming telemetry server stun - configure a stun server syslog - configure a syslog server tacacs - configure a tacacs server telnet - configure a telnet server tftp - configure a tftp server time - configure a time server udpfwd - configure an udp forwarder server udptn - configure an udptn server upnpfwd - configure an upnp forwarder server upnphub - configure an upnp hub server voice - configure a voice server vxlan - configure a vxlan server yourname(cfg)#server ...
In order to exit the sandbox session use the following escape sequence: Ctrl-c + Ctrl-x