服务器不在同一个VLAN时,核心思路是让网关设备开启三层路由,通过SVI接口或单臂路由在不同VLAN网段之间转发数据,同时服务器侧要么修改默认网关指向各自VLAN网关,要么给服务器配置多VLAN子接口或双网卡绑定不同VLAN。
服务器不在同一个vlan怎么通信?三层转发是核心
很多机房扩容后,新增服务器被划到另一个VLAN,结果老服务器和新服务器互相ping不通,这其实是VLAN的基本设计逻辑:二层广播域被隔离,不同VLAN之间不能直接靠交换机二层转发通信,必须经过三层设备。
行业共识认为,VLAN间通信必须依赖三层路由,没有三层设备,不同VLAN就是两个孤岛。
要让服务器跨VLAN通信,需要同时满足三个条件:
- 交换机上存在对应VLAN,服务器所接端口已经划入各自VLAN
- 三层设备上存在每个VLAN的网关接口,例如VLANIF接口或路由器子接口
- 服务器网卡配置的默认网关地址与所在VLAN的网关IP一致
很多人只配了交换机VLAN,却忘记在三层交换机上创建VLANIF接口,结果服务器网关指向一个根本不存在的地址,通信自然失败,这属于最常见的配置遗漏。
跨vlan服务器互通配置:核心交换机上这样操作
华为/华三核心交换机SVI配置步骤
以华为或华三三层交换机为例,假设服务器A在VLAN10,IP为192.168.10.10,网关192.168.10.1;服务器B在VLAN20,IP为192.168.20.20,网关192.168.20.1。
创建VLAN并分配端口。
system-view vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit
创建VLANIF接口并配置网关IP。
interface Vlanif10 ip address 192.168.10.1 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.1 255.255.255.0 quit
确认三层路由功能已开启,华为部分三层交换机默认开启,但华三部分型号需要在系统视图下执行ip routing,如果设备本身是二层交换机,则根本没有VLANIF接口,只能外接路由器做单臂路由。
验证连通性,在服务器A上ping 192.168.20.20,如果能通,说明三层转发已经生效,如果还不通,再继续排查。
服务器双网卡不同vlan的配置思路
有些服务器本身就有双网卡,需要同时访问两个VLAN的资源,比如备份服务器既要从业务网段拉数据,又要往管理网段推备份文件,这种情况有两种常见做法。
双网卡分别接两个VLAN的access口,服务器网卡1接VLAN10,配置192.168.10.10,网关192.168.10.1;网卡2接VLAN20,配置192.168.20.10,网关192.168.20.1,但这样配置后,操作系统里会出现两个默认网关,Windows系统会按跃点自动选择,可能导致回程数据从错误网卡出去,解决办法是手动设置跃点,或者删除其中一个默认网关,只保留主用网关,另一网段走静态路由。
服务器网卡接trunk口,在操作系统内创建VLAN子接口,Linux下操作如下:
ip link add link eth0 name eth0.10 type vlan id 10 ip link add link eth0 name eth0.20 type vlan id 20 ip addr add 192.168.10.10/24 dev eth0.10 ip addr add 192.168.20.10/24 dev eth0.20 ip link set eth0.10 up ip link set eth0.20 up
然后在交换机侧把该端口配置为trunk,放行VLAN10和VLAN20,这样做的好处是服务器只占用一个物理接口,但要求网卡驱动和操作系统支持802.1Q,Windows服务器也可以做,但部分网卡需要在驱动高级属性里手动开启VLAN功能。
服务器跨vlan访问不通原因排查清单
服务器跨VLAN访问不通时,不要一上来就怀疑交换机坏了,多数情况下是配置细节出问题,按照下面的顺序逐层排查。
| 排查位置 | 常见错误 | 现象 |
|---|---|---|
| 服务器网卡 | 网关地址填错或没填 | 本网段能通,跨网段全不通 |
| 交换机端口 | access口划错VLAN | 服务器网关不通,ARP解析失败 |
| 核心交换机 | 没创建VLANIF或IP配错 | 网关ping不通,路由表缺少直连路由 |
| 三层功能 | 设备实为二层交换机 | 根本找不到VLANIF命令 |
| 防火墙/ACL | 策略默认禁止跨网段 | 能ping通但业务端口不通 |
| 双网卡服务器 | 回程路由走错网卡 | 单向能通,反向不通 |
排查时先在本机执行ipconfig或ip addr确认IP和网关,然后在服务器上ping自己的网关地址,网关不通,问题在交换机和服务器之间的二层链路,网关通但跨网段不通,问题在三层设备或路由,如果网关通、路由也正常,但业务端口不通,就检查核心交换机或防火墙上有没有ACL拦截。
双网卡服务器还有一种典型坑:服务器两个网卡都在同一个网段,这种配置会导致路由表冲突,系统不知道该从哪个网卡发包,双网卡必须配置不同网段,并且最好关闭其中一个网卡的自动跃点。
不同vlan之间如何通信实验:单臂路由与SVI对比
如果机房现有设备是二层交换机加一台路由器,没有三层交换机,也可以实现跨VLAN通信,这种做法叫单臂路由。
单臂路由的核心操作:
interface GigabitEthernet0/0 no shutdown interface GigabitEthernet0/0.10 encapsulation dot1Q 10 ip address 192.168.10.1 255.255.255.0 interface GigabitEthernet0/0.20 encapsulation dot1Q 20 ip address 192.168.20.1 255.255.255.0
路由器一个物理口通过子接口同时充当VLAN10和VLAN20的网关,交换机连接路由器的端口必须配置为trunk,并放行VLAN10和VLAN20。
单臂路由最大的问题是性能瓶颈,所有跨VLAN流量都要挤在路由器物理接口的一条链路上,如果服务器之间有大流量传输,比如数据库同步或备份,单臂路由很容易打满链路带宽,SVI方式依赖三层交换机的硬件转发芯片,多数情况下转发性能远超单臂路由,成本上,一台入门级三层交换机价格从几千到上万不等,单臂路由用现成路由器省设备钱,但可能付出性能代价。
服务器跨vlan配置费用一般多少?先看现有设备
服务器跨vlan配置费用一般多少,这个问题主要取决于你现有设备条件,如果核心交换机本身就是三层交换机,自己配置SVI几乎不产生额外费用,如果只有二层交换机,就要么购买三层交换机,要么利用现有路由器做单臂路由。
不少北京机房的托管服务器默认只给一个VLAN,扩容后新增服务器被划到另一个VLAN,这时就需要做跨VLAN互通,现场如果找运维代配置,人工费通常按次或按小时计算,设备投入另算,若选择购买二手三层交换机,成本能压得更低,但需要注意设备稳定性和端口数量。
实际项目中,如果只是偶尔跨VLAN访问,单臂路由也能应付,如果是核心业务服务器之间频繁交互,还是建议直接上三层交换机做SVI,长期来看更稳妥。
服务器不在同一个VLAN常见问题快答
服务器不在同一个VLAN能ping通吗?
默认不能ping通,不同VLAN之间二层隔离,没有三层路由就无法转发ICMP报文,只有当三层交换机或路由器上配置了对应VLAN的网关接口,并且服务器默认网关设置正确,ping才能通。
服务器跨vlan访问很慢是什么原因?
可能原因包括:使用单臂路由导致物理链路带宽不足,跨VLAN流量绕行到性能较弱的路由器,MTU问题导致分片,或者核心交换机上存在大量广播影响转发,排查时先看流量路径中是否存在单臂路由,再看链路利用率和设备CPU负载。
服务器双网卡不同VLAN需要配置路由吗?
需要,双网卡接入不同VLAN后,操作系统会同时生成两个网段的直连路由,但默认网关只有一个,如果回程流量需要从非默认网关的网卡出去,就必须手动添加静态路由,否则容易出现单向能通、反向不通的情况,双网卡跨VLAN通信的稳定性依赖正确的路由策略,这是客观事实。
只要把三层设备上的VLANIF接口配好,服务器网关指对,大多数跨VLAN通信问题都能在十分钟内解决,真正的难点往往不在命令本身,而在排查双网卡回程路由和防火墙策略这些容易被忽略的角落。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/644632.html





