0
点赞
收藏
分享

微信扫一扫

网卡子接口之别名子接口和vlan子接口

1.网卡子接口

    网卡上配置的子接口,主要有两种:

  • 网卡别名子接口
  • vlan子接口

1.1 网卡别名子接口eth0:1

工作原理​​:这是一种简单的​​IP层虚拟化​​技术。它允许你在一块物理网卡上绑定多个IP地址,但这些IP地址都位于同一个网络段(同一个广播域)内。它不涉及修改数据帧的结构。 ​​典型场景​​:在一台服务器上托管多个Web站点(每个站点一个IP)、进行网络服务测试,或者为服务提供一个浮动虚拟IP(VIP)用于高可用性方案。 配置方法

# 临时创建并启用一个IP别名子接口
sudo ip addr add 192.168.1.100/24 dev eth0 label eth0:1
sudo ip link set dev eth0:1 up

1.2 vlan子接口eth0.100

1.2.1 vlan子接口基本原理

    工作原理​​:这是遵循​​IEEE 802.1Q标准​​的虚拟局域网技术,需要内核加载8021q模块。它在原始的以太网数据帧中插入一个4字节的VLAN标签(Tag),用以标识该数据帧属于哪个VLAN(通过VLAN ID,范围1-4094)。这样,一个物理网卡就可以像多个逻辑端口一样工作,承载多个不同的、相互隔离的广播域流量。     ​​典型场景​​:企业网络中为不同部门(如财务、研发)划分安全隔离的网络;云计算中为不同租户提供独立的网络环境。在一台物理服务器上为不同租户(或不同服务)托管多个虚拟机或容器。通过VLAN子接口(如 eth0.1001, eth0.1002),可以轻松地将不同租户的流量隔离到不同的VLAN中,实现网络安全隔离,同时最大化硬件利用率。

注意:     我开始想的是,主机有vlan tag,发出的包到交换机也会增加vlan tag(假设交换机启用vlan)那么岂不是又两个vlan tag?但其实并不是这样的。     如果将主机内部配置成vlan子接口模式,那么主机里面收发的包就都带有vlan tag了,这个时候,主机接入交换机的接口必须配置成trunk接口,而不是access接口。如果配置成access模式会导致通信失败。

配置方法

# 创建VLAN ID为10的子接口
sudo ip link add link eth0 name eth0.10 type vlan id 10
# 为其配置IP并启用
sudo ip addr add 192.168.10.1/24 dev eth0.10
sudo ip link set dev eth0.10 up

    这种情况下,主机不再是一个被动的终端,而是像一个理解VLAN的路由器或三层交换机接口那样主动地处理VLAN标签。这体现了网络功能虚拟化的一种基本思想:通过软件(内核模块)在不增加硬件的情况下,赋予标准服务器更灵活的网络角色。相当于逻辑上将交换机处理vlan的动作,移动到了linux内核里面的8021q模块来实现了。在主机上配置VLAN子接口,就像是给服务器安装了一个​​软件定义的“迷你交换机”​​。它打破了终端主机只能被动接入单一网络的限制,让你能以一种更软件化、更灵活的方式来定义和管理服务器的网络连接。     传统方式主机网口接入交换机,交换机中划分vlan的方式,主机的一个网口功能很单一。但是近些年上了虚拟机、容器这类虚拟化技术时,不可能增加一个租户就多增加一个网卡,只能是多个租户共用网卡,这样的话,可以将vlan功能放到主机的网口上,这样一个网口也能划分出很多vlan出来,达到不同租户共用服务器网口的目的。     vlan子接口本质上是在物理网络基础上划分出的一个​​逻辑广播域​​。在宿主机上,它表现为一个与特定VLAN ID关联的虚拟交换机或网桥。这个逻辑交换机的作用是​​在同一台主机内,为连接到它的所有虚拟机提供二层交换功能​​,并通过上联的物理网卡和物理网络,与其他主机上同一VLAN的成员进行通信。

1.2.2 vlan子接口配置ip

    vlan子接口配置ip与不配置ip,其在网络中的地位完全不同。     (1)配置ip     配置ip之后,这个vlan子接口的核心功能就变成了​​三层路由​​。 工作原理​​:它成为了该VLAN(例如VLAN 10)内所有设备的​​默认网关​​。当VLAN 10内的一台电脑想要访问VLAN 20的另一台电脑时,数据包会发送到这个网关地址。子接口 eth0.10收到数据包后,会​​剥离VLAN 10的标签​​,根据IP头部信息进行路由查询,发现目标在VLAN 20,然后就将数据包转发给子接口 eth0.20,由 eth0.20​​重新封装上VLAN 20的标签​​后发送出去。 ​​    配置了IP地址的VLAN子接口,其网关功能是一个完整的、标准的三层路由功能,而绝非仅限于本机VLAN间的路由。​

    (2)不配置ip     在虚拟化或云计算环境中,VLAN子接口的用法有所不同。这时,它通常​​不配置IP地址​​,其核心工作是​​二层交换和VLAN标签处理​​。 ​​    工作原理​​:宿主机的物理网卡上创建一个VLAN子接口(如 eth0.100),但这个子接口不配IP。它的任务是识别和处理特定的VLAN标签。当数据帧从虚拟机发出,通过虚拟交换机到达这个子接口时,子接口会确保数据帧带有正确的VLAN标签(例如100)后才从物理网卡送出。反之,从物理网络接收到的带VLAN 100标签的帧,也由这个子接口接收并传递给正确的虚拟机。在这个过程中,子接口不进行路由,只负责“盖章”(打上或识别VLAN标签)和“传递”。     进阶理解:为什么虚拟化场景可以不要IP?     虚拟化环境追求的是​​灵活性和规模​​。如果每个VLAN子接口都配置IP并作为网关,那么​​会增加IP地址管理的负担​​。​​所有跨VLAN的流量都要绕行到宿主机进行路由​​,这可能成为性能瓶颈,也未必符合网络设计初衷。     因此,在这种场景下,VLAN子接口的职责被简化,专注于​​网络隔离和标签转换​​。路由功能通常会上交给更专业的三层交换机或专用的路由器来完成,或者在宿主机上通过更复杂的虚拟路由方案实现。

举报

相关推荐

0 条评论