juniper防火墙地址簿加域名一直报错?zone地址簿不认FQDN要加在全局地址簿
在 Juniper 防火墙上配安全策略,想让某条策略的目的直接写成域名(比如邮件网关用的是类似 mtp.mail.com 的地址),于是往 untrust 区域的地址簿里 set address-book 加这条域名,命令一提交就报错。反复换写法还是不行,很容易怀疑是自己语法背错了。
这个报错其实和权限、语法细节关系都不大。Junos 里各个安全区域自带的区域地址簿,只接受 IP 前缀、地址范围和地址集这几种对象,压根没有域名这个类型,往里填 FQDN 会被设备管理进程直接拒绝——报错不是你写错了,是这条路本身不通。域名对象要走另一条道:加在全局地址簿里,用 dns-name 类型的条目,由设备自己解析后参与策略匹配。这要求 Junos 版本在 12.1 之后,而且设备配置了可用的 DNS 服务器。
按这个顺序配,五步从验版本到留后手:
- 确认版本:命令行 show version 查看 Junos 版本。12.1 之前的老版本不支持 dns-name 条目,只能手动把域名解析成 IP 再建静态条目。
- 全局地址簿里建域名对象:执行 set security address-book global address MAIL_GW dns-name mtp.mail.com(对象名和域名换成你自己的),只走 IPv4 时在结尾追加 ipv4-only 参数。
- 配好设备的 DNS:用 set system name-server 指向两台可靠的 DNS 服务器后提交配置;用 show security dns-cache 确认域名已经解析出地址,解析没成功策略就匹配不上。
- 策略里直接引用:安全策略的目的地址直接填全局地址簿里的对象名。全局条目对任何区域的策略都可见,不需要再往区域地址簿复制一份。
- 留一条后手:域名解析失败时策略匹配会落空,关键业务别把可靠性全押在 FQDN 上。对端 IP 长期不变的,干脆解析出来建静态条目并在描述里注明域名,定期核对更新。
预防记两条:地址对象按用途统一命名前缀,策略里引用对象而不是裸写 IP,改起来一处生效;配置变更用 show | compare 比对后再提交,必要时用 commit confirmed 给自己留退路。
贵州诚鑫致达科技维护过多品牌设备混跑的机房,Juniper、华为、H3C 各说各的方言,靠一本分品牌建册的配置台账把语法差异管得明明白白。