junos 交换机ztp 安装
基于centos7
首先安装依赖包
依赖两个服务,dhcp ftp
安装dhcp ftp
yum install -y yum install dhcp vsftpd
dhcpd.conf
ddns-update-style interim;
set vendor-string = option vendor-class-identifier;
ignore client-updates;
option space NEW_OP;
option NEW_OP.image-file-name code 0 = text;
option NEW_OP.config-file-name code 1 = text;
option NEW_OP.image-file-type code 2 = text;
option NEW_OP.transfer-mode code 3 = text;
option NEW_OP-encapsulation code 43 = encapsulate NEW_OP;
option NEW_OP.image-file-type "symlink";
option option-150 code 150 = ip-address;
class "ex3300-48" {
match if (
(substring (option vendor-class-identifier,0,18) =
"Juniper-ex3300-48p")
or
(substring (option vendor-class-identifier,0,18) =
"Juniper-ex3300-48t")
);
}
class "juniper-qfx5110" {
match if (option vendor-class-identifier = "Juniper-qfx5110-48s-4c");
}
class "ex4200-24" {
match if (
(substring (option vendor-class-identifier,0,18) =
"Juniper-ex4200-24p")
or
(substring (option vendor-class-identifier,0,18) =
"Juniper-ex4200-24t")
);
}
subnet 10.105.5.0 netmask 255.255.255.0 {
option domain-name-servers 8.8.8.8, 8.8.4.4;
option routers 10.105.5.1;
default-lease-time 600;
max-lease-time 7200;
authoritative;
pool {
allow members of "ex3300-48";
range dynamic-bootp 10.105.5.20 10.105.5.40;
option NEW_OP.transfer-mode "ftp";
option OPTION-150 10.105.5.254;
option NEW_OP.config-file-name "/4200/4200.set";
option NEW_OP.image-file-name
"/3300/jinstall-ex-3300-13.2X50-D19.2-domestic-signed.tgz";
}
}
subnet 10.105.5.0 netmask 255.255.255.0 {
option domain-name-servers 8.8.8.8, 8.8.4.4;
option routers 10.105.5.1;
default-lease-time 600;
max-lease-time 7200;
authoritative;
pool {
allow members of "ex4200-24";
range dynamic-bootp 10.105.5.41 10.105.5.60;
option NEW_OP.transfer-mode "ftp";
option OPTION-150 10.105.5.254;
option NEW_OP.config-file-name "4200/4200.conf";
# option NEW_OP.image-file-name
#"/3300/jinstall-ex-3300-13.2X50-D19.2-domestic-signed.tgz";
}
}
这里有两种配置方法,一种是我写的这种,根据设备dhcp vendor-class-identifier的字段做过滤,不同的交换机走不同的固件版本,另外一种是要事先收集交换机的mac地址,然后根据mac地址指定的ip和固件地址,这个看最下面
在服务器端,如果需要在指定的网络设备上广播dhcp的包需要
修改 /etc/sysconfig/dhcpd
添加
DHCPDARGS=em2
然后启动服务
systemctl start dhcpd
然后配置vsftp
/etc/vsftpd/vsftpd.conf 默认可以非用户登陆
然后在/var/ftp/下面放交换机的配置文件
测试一下
wget ftp://anonymous@10.105.5.254/4200/4200.conf
## Last commit: 2017-09-19 09:31:09 CEST by root
version 15.1R6.7;
system {
host-name DD-EX4200-test;
root-authentication {
encrypted-password "加密过的密码"; ## SECRET-DATA
}
services {
ssh;
netconf {
ssh {
port 830;
}
}
}
}
在上面这个配置里,我碰到了有时候会提示dhcp拿不到地址的问题,因此我觉得更好的我注释掉了
allow members of "ex4200-24";
就解决了,但是这样等于上面的class类不起左右了,没有继续弄下去了
-----------------分割线------------------------------------------
简单机翻一下官方文档
配置零接触配置
注意:如果要升级软件,则必须执行完整的软件升级。完整升级包括升级Junos OS软件和主机软件包。
零接触配置(ZTP)允许您自动配置网络中的新交换机或路由器,无需人工干预。您可以使用交换机上的管理端口或网络端口连接到网络。当您将交换机或路由器物理连接到网络并使用默认配置引导它时,它会尝试使用动态主机控制协议(DHCP)服务器上检测到的信息自动升级Junos OS软件。您可以将此信息作为要执行的脚本或作为要在路由器或交换机上加载的配置文件包含在DHCP服务器上。根据是否存在字符!#脚本解释器决定文件是作为脚本还是作为配置文件处理。如果未将DHCP服务器配置为提供此信息,则交换机或路由器将使用预安装的软件和默认配置进行引导。
注意:如果同时启用了DHCP和ZTP,则交换机或路由器每六分钟广播一次DHCP DISCOVER数据包。如果网络上的DHCP服务器响应DHCP ACK数据包,并且DHCP供应商选项设置了必要的值以启动ZTP,则ZTP继续进行。
要在不执行ZTP过程的情况下每六分钟禁用广播DHCP DISCOVER数据包,请手动删除位于层次结构中的auto-image-upgrade语句。如果ZTP完成且没有错误,则会自动删除auto-image-upgrade语句。
警告:HTTP URL的长度限制为256个字符。
警告:在交换机或路由器执行软件更新过程时,您无法提交配置。如果在交换机或路由器执行配置文件自动安装过程时提交配置,则该过程将停止,并且不会从网络下载配置文件。
要为交换机或路由器配置零接触配置:
确保交换机或路由器已安装默认出厂配置。
在要配置的交换机或路由器上发出
request system zeroize命令。
注意:PTX1000路由器不支持请求系统归零命令。您必须在PTX1000路由器上发出请求vmhost zeroize命令(而不是请求系统归零)以进行出厂默认配置。
将软件映像文件和配置文件下载到交换机或路由器将从中下载这些文件的FTP,HTTP或TFTP服务器。
您可以下载其中一个或两个文件。
配置DHCP服务器以向交换机或路由器提供必要的信息。
配置IP地址分配。
您可以为交换机或路由器的管理地址配置动态或静态IP地址分配。要确定静态IP地址映射的管理MAC地址,请在开始此过程之前将开头或路由器的MAC地址的最后一个字节添加1。 (没懂)
host jn-switch35 {
hardware ethernet ac:4b:c8:29:5d:02;
fixed-address 10.100.31.36;
option tftp-server-name "10.100.31.71";
option host-name "jn-switch35";
option log-servers 10.100.31.72;
option ntp-servers 10.100.31.73;
option NEW_OP.image-file-name "/dist/images/jinstall-ex-4200-13.2R1.1-domestic-signed.tgz";
option NEW_OP.transfer-mode "ftp";
option NEW_OP.config-file-name "/dist/config/jn-switch35.config";
}