笔者上一章搭建了一台DNS server,本来想趁热打铁继续搭建DHCP server。但是考虑到DHCP是一个蛮复杂的过程,所以打算缓一缓,穿插进行。因此笔者准备做点简单的,搭建一台TFTP server。
TFTP(Trivial File Transfer Protocol/简单文件传输协议)是客户端和服务器进行文件交互的一个常用协议,一般客户端可以向服务器传输一个文件,而被授权的客户端可以从服务器获取这个文件,从而实现文件共享。明确了搭建的目的,笔者就开始着手操作了。
登陆笔者的服务器,关闭DNS服务: /bin/systemctl stop named.service
![](http://upload-images.jianshu.io/upload_images/9164362-25983bc12c47ec77.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/555)
/bin/systemctl status named.service确认一下状态,服务已经关闭。
一样采用yum安装。首先看一下yum关于TFTP的安装源:yum list | grep tftp
![](http://upload-images.jianshu.io/upload_images/9164362-8c4a2d7060a7163f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
和之前一样的方式安装tftp:
yum install tftp.x86_64
yum install tftp-server.x86_64
查看一下安装状态:yum list installed | grep tftp
![](http://upload-images.jianshu.io/upload_images/9164362-b34f47d14081663c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
在linux中很多轻量级服务都是使用xinetd来开启的,笔者继续安装:
yum install xinetd.x86_64
再查看一下安装状态:yum list installed | grep xinetd
![](http://upload-images.jianshu.io/upload_images/9164362-833a311c37208425.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
类似网站发布,笔者对tftp进行基础配置:cd /etc/xinetd.d
ls看一下文件:
![](http://upload-images.jianshu.io/upload_images/9164362-29f823faa847a88a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
编辑文件:vi tftp
其中server_args字段定义了tftp存放文件的路径。
笔者把disable字段修改为no,表示不关闭服务,即开启tftp服务。
wq!保存退出。
![](http://upload-images.jianshu.io/upload_images/9164362-3681ff8685b16fa7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/477)
启动tftp服务:/bin/systemctl start xinetd.service
打开防火墙的UDP69端口,并重启防火墙:
firewall-cmd --zone=public --add-port=69/udp–permanent
firewall-cmd –reload
![](http://upload-images.jianshu.io/upload_images/9164362-29a0883ceb6cfed3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
到此为止tftp的服务器已经安装完成了。笔者在自己电脑上进行一次文件传输测试:
由于windows不带tftp传输的功能,因此笔者随便找了一款tftp的软件3cdaemon。
http://3cdaemon.updatestar.com/
软件使用非常简单,页面展示如下:
![](http://upload-images.jianshu.io/upload_images/9164362-4296d8a081d303f8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
点击文件-配置选定的服务。在TFTP设置中设置好文件所在路径。
![](http://upload-images.jianshu.io/upload_images/9164362-e64f9e41550884fe.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
以接收文件为例笔者进行一次TFTP文件传输的操作:
首先进入笔者搭建的服务器192.168.101.2,进入之前设置的文件目录:cd /var/lib/tftpboot/
新建一个文档名为server-get,内容为hbai1234:
vi server-get
hbai1234
wq!
![](http://upload-images.jianshu.io/upload_images/9164362-439517772bd74b8d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/442)
在笔者的windows电脑上关闭防火墙,或者在防火墙策略新增同上udp69端口。
https://jingyan.baidu.com/article/a17d528559c5b48098c8f29e.html
在windows客户端点击3CDaemon左侧TFTP客户机的选项,设置TFTP服务器地址为笔者的linux服务器IP地址192.168.101.2,设置远端文件名为server-get,在本地文件名选择希望下载到的文件夹,并将本地保存的文件名同样设置为server-get,点击开始。传输完成后进度会显示接收完成!
![](http://upload-images.jianshu.io/upload_images/9164362-5a4e44bfae579ad9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
笔者打开刚刚文件传输的目录,发现已经生成了一个名为server-get的文件,使用notepad++打开后,发现文件内容为笔者在服务器上设置的hbai1234。文件传输完成!
![](http://upload-images.jianshu.io/upload_images/9164362-13d373c8b18eadfc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
一个小应用:利用TFTP实现交换机版本升级。
作为一名网管,难免会遇到网络设备版本升级,举个例子,笔者在新采购一批交换机设备时,发现设备的出场版本存在一些小bug,考虑到网络的稳定性,计划升级一下版本。
笔者一批H3C交换机版本为e6103的版本,计划升级到s5130s_hi-cmw710-system-e6108p10
首先,笔者从网站上下载这个ipe的版本包:
![](http://upload-images.jianshu.io/upload_images/9164362-725a2e7bc7e303ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
在linux环境下,提供了一种简单的linux和window文件互传的方法,即lrzsz。
登陆笔者的服务器:yum list | grep lrzsz
![](http://upload-images.jianshu.io/upload_images/9164362-db96f008c58cda1f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
安装该软件: yum install lrzsz.x86_64
在tftp默认文件目录(/var/lib/tftpboot)中输入:rz,会弹出如下窗口。
![](http://upload-images.jianshu.io/upload_images/9164362-5610f08aa52ad0f8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
找到刚刚下载的ipe文件,并点击add,之后ok
![](http://upload-images.jianshu.io/upload_images/9164362-ffcd3431f04673b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/580)
等到文件传输完成之后,笔者ls -l查看一下文件夹,发现多了一个新版本的ipe文件。
![](http://upload-images.jianshu.io/upload_images/9164362-e2edc1b2a913ed26.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
之后笔者登陆H3C交换机,在执行tftp 192.168.101.2 get S5130S_HI-CMW710-E6108P10.ipe
![](http://upload-images.jianshu.io/upload_images/9164362-d98703615ebcb830.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
这样,只需几分钟的时间就可以将版本上传至交换机完成版本升级了~
问题:
1. 对于TFTP而言,传输端口为UDP 69。TCP的端口测试我们很熟悉是telnet,那么如何测试一台服务器DUP某端口是否打通?
2. 笔者基于TFTP的传输为交换机的版本升级提供了一种方案,对比U盘copy升级文件,TFTP传输有何优势?
3. 在交换机版本升级中,可以同时对多台交换机进行TFTP文件传输,从而大大减少了升级所需的时间,之后可以通过脚本设置一个switch-list列表,将需要升级的交换机管理IP设置到列表中,统一升级。试从流程图的角度简单列一下脚本中除”switch-list”外还需什么字段。
转自:https://www.jianshu.com/u/0d31bfec82e7