1.问题描述
V国A项目使用华为USG6330防火墙替换客户原有的防火墙,查看客户原有防火墙配置,发现原有防火墙上启动了BGP协议,AS号为“215 246”,众所周知,AS号有2字节和4字节两种格式,2字节AS号最大取值为65535,明显“215 246”是4字节形式。
USG6330仅支持点分形式的四字节AS号,在USG6630WEB界面中将AS号设置为215.246后,发现BGP邻居始终建立不成功。
2.告警信息
查看BGP debug信息,发现USG6330中设置的AS号明明是215.246,但debug信息显示的却是14090486。BGP邻居状态机始终处在connect之前的状态。
3.处理过程
查阅手册发现4字节AS号有两种表达方式,点分形式和整数形式,转换关系为:X*65536+Y=X.Y, 其中(X*65536+Y)为整数形式四字节AS号;X.Y即为点分形式的四字节AS号;
由上面公式可知,14090486恰好等于215*65536+246,也就是尽管在USG6330的web页面中AS号设置的是点分形式,但在命令行中还是以整数形式呈现。那客户原有防火墙的AS号“215 246”会不会是整数形式的AS号呢?
按照上面公式,由整数转换成点分形式为215246=3*65536+18638,即该整数形式AS号对应点分AS号为3.18638,据此修改USG6630的AS号后,BGP成功建立,说明在客户原有防火墙设备中AS号“215 246”实际是整数形式的4字节AS号。
4.根因
见处理过程.
5.解决方案
见处理过程.
6.建议与总结
BGP AS号有两种表示方式,2字节整数形式,4字节整数或4字节点分形式。
对于4字节AS号,如果AS号本身由两部分组成,且两部分中间没有"."分隔,就要理解为整数形式,如本例中的“215 246”。然后按照转换公式,将整数形式转换成点分形式配置在我司的设备上。