概述
NSX 从诞生起就是一个主要面向云环境的网络虚拟化解决方案,随着 IT 技术的演变,NSX 从一开始只支持 vSphere 到现在支持各种异构的环境,比如 OpenStack、Kubernetes 以及裸金属服务器。
裸金属服务器在企业 IT 里一直有很重要的位置:承载重要的核心业务,比如数据库等,现在虽然很多企业已经走向虚拟化或者容器化,但对于数据库等业务,有些企业依然选择通过裸金属服务器支持部署,这时候如果一部分虚拟化 VM 使用 NSX 提供网络,数据库使用传统物理交换机提供网络,则面临如何打通 NSX 与传统网络连接的问题。
本文讲述的是其中一种将 NSX 与裸金属打通的方式:
直接将裸金属服务器纳管到 NSX 体系中,提供和 VM 一样的 Overlay 网络,使得裸金属服务器在逻辑上可以和 VM 二层互联,并具备 DFW 等功能。
环境逻辑拓扑
本文最终的逻辑拓扑如下,创建一个Overlay分段 seg-10.29.8,然后将 VM 和物理服务器连接在同一个二层网络中:
裸金属节点准备
OS准备
参考文档:
NSX 4.0支持的OS类型如下:
Linux
- RHEL 7.6, 7.7, 7.9, 8.2, 8.4
- CentOS 7.6, 7.7, 7.9, 8.2, 8.4
- Ubuntu 16.04, 18.04, 20.04
- SUSE 12 SP3, SP4, SP5
- OEL 7.6~7.9, 8.6
Windows
- Windows Server 2016,2019
本文测试使用 CentOS 7.9版本。OS 安装过程略
安装依赖
参考文档:
在进行配置之前,需要安装下列依赖:
yum install -y libvirt-libs
yum install -y tcpdump boost-filesystem PyYAML boost-iostreams boost-chrono python-mako python-netaddr python-six gperftools-libs libunwind elfutils-libelf-devel snappy boost-date-time c-ares redhat-lsb-core wget net-tools yum-utils lsof python-gevent libev python-greenlet libvirt-libs python-netifaces python3 wget redhat-lsb-core
准备网卡配置文件
本环境中 ens160 作为管理网卡,通过 Access 口接在交换机,ens192 作为数据网卡,通过 Trunk 口与外部互联(未来 VTEP 侧会设置 VLAN,因此物理口使用 Trunk,放行 VTEP 使用的 VLAN)。
在安装完 OS 后,需要为 ens192 添加配置文件,其内容可以为空(最终此配置文件的内容会被 NSX 覆写)。
NSX 配置文件
VTEP 地址池配置
环境中使用下列 VTEP 地址池:
上行链路配置文件
环境中使用下列上行链路配置文件:
通过GUI安装裸金属服务器
参考文档:
添加节点
在下列位置添加主机节点:
输入节点的 IP、用户名及密码等信息,此处使用 root 权限用户
(如果需要使用其他权限用户,参考下列文档设置 sudo:https://docs.vmware.com/cn/VMware-NSX/4.0/installation/GUID-0A806E13-CF6C-4208-98BC-7FB14F70EF70.html)
将该主机加入 overlay 传输区域中,为其使用上个章节准备的 VTEP 地址池和上行链路配置文件:
点击下一步,系统会自动执行 NSX 安装:
等待片刻,系统提示准备完成,设置选择分段:
将该裸金属服务器加入 10.29.8 分段,然后添加分段端口:
点击连接应用程序接口:
为接口分配IP及路由(此处添加的路由表仅针对业务网卡nsx-eth生效,10.10.52.0/24是需要访问裸金属服务器的其他网段,如果不确定未来有哪些网段访问该服务器的业务,也可以指定默认路由,但相应的也需要针对管理网和VTEP网指定静态路由,具体见最后一个章节)。
点击保存后,系统自动跳到摘要页面:
访问测试
在服务器上安装 httpd,在外部访问 Overlay 地址 10.29.8.8:
yum -y install httpd
systemctl enable httpd
systemctl start httpd
在外部追踪路径如下:
其中:
- 10.10.52.1 为 PC 网关
- 10.10.50.120 为 Edge 与物理交换机的互联口
- 100.64.144.3 为 T0 与 T1 内连口
- 10.29.8.8 为最终裸金属服务器 IP
在 NSX 中同样可以执行 Traceflow 操作,查看访问路径,可以看到裸金属服务器的请求分别经过了 DFW、分段、T1 及 T0,最终经过 Edge-1 发给物理网络(目标 IP 10.10.52.100 在 NSX 外部)。
裸金属服务器端配置
在安装完 NSX 后,裸金属服务器上会出现下列配置:
ens192 数据网卡的 MTU 发生变化,此网卡并无任何 IP:
新增一个 nsx-vtep0.0 的网卡,配置了 VTEP IP 10.29.9.8
当为裸金属服务器配置应用程序接口 nsx-eth 后,此网卡会出现在裸金属服务器中,并自动配置 UI 下发的地址:
通过 ovs-vsctl 查看 nsx-switch.0 所连接的接口,包含 ens192 和 nsx-vtep0.0
路由配置
在复杂的组网下,管理、VTEP 网卡及业务口需要设置不同的路由,以保证到任何网络都可以按照预期通信。在本环境中,路由有下列需求:
管理网:
裸金属服务器和NSX Manager在同网段,无需特殊路由配置,但如果不在同段,需要设置到NSX Manager的路由,例如
目标网络 | 下一跳 | 出接口 |
NSX Manager 网段 例如 10.10.49.0/24 | 10.10.50.1(ens160的网关) | ens160 |
VTEP网:
目标网络 | 下一跳 | 出接口 |
所有 VTEP 网段 例如10.10.51.0/24 | 10.29.9.1(VTEP网卡的网关) | nsx-vtep0.0 |
业务网:
目标网络 | 下一跳 | 出接口 |
默认路由 | 10.29.8.1(业务网段网关) | nsx-eth |
具体配置如下:
管理网:
VTEP网:
业务网:
完成上述配置后,裸金属服务器的路由表如下:
标签:网卡,VTEP,金属,NSX,服务器,纳管,路由 From: https://blog.51cto.com/sparkgo/6081629