CentOS/RHEL系统中如何使用带VLAN标记的以太网卡

发布时间:2022-01-25 09:13:03 作者:小新
来源:亿速云 阅读:149
# CentOS/RHEL系统中如何使用带VLAN标记的以太网卡

## 一、VLAN技术概述

### 1.1 VLAN的基本概念
虚拟局域网(VLAN)是一种通过逻辑方式而非物理方式划分局域网的技术。它允许网络管理员将一个物理网络划分为多个独立的广播域,主要特点包括:
- 基于端口、MAC地址或协议划分
- 802.1Q标准实现跨交换机的VLAN通信
- 有效减少广播风暴,提高网络安全性

### 1.2 VLAN标记原理
当数据帧通过支持VLAN的交换机时,会在标准以太网帧头部插入4字节的VLAN标签(802.1Q标签),包含:
- 12位VLAN ID(有效范围1-4094)
- 3位优先级代码点(QoS)
- 1位规范格式指示器

## 二、环境准备

### 2.1 硬件要求
- 支持VLAN的物理网卡(现代网卡普遍支持)
- 支持802.1Q的交换机
- 已配置正确的交换机端口(Trunk模式)

### 2.2 软件要求
- CentOS/RHEL 7或更新版本
- root权限
- NetworkManager服务(推荐)或network-scripts

## 三、配置方法

### 3.1 临时配置(测试用)

#### 使用ip命令创建临时VLAN接口:
```bash
# 加载8021q模块
modprobe 8021q

# 创建VLAN接口
ip link add link eth0 name eth0.100 type vlan id 100

# 启用接口并配置IP
ip link set eth0.100 up
ip addr add 192.168.100.10/24 dev eth0.100

验证配置:

ip -d link show eth0.100
# 应显示类似信息:
# 25: eth0.100@eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state UP 
#     link/ether 00:1c:42:aa:bb:cc brd ff:ff:ff:ff:ff:ff promiscuity 0 
#     vlan protocol 802.1Q id 100 <REORDER_HDR> 

3.2 永久配置方法

方法一:使用NetworkManager(推荐)

  1. 创建VLAN连接:
nmcli con add type vlan con-name eth0-vlan100 ifname eth0.100 dev eth0 id 100
  1. 配置IP地址:
nmcli con mod eth0-vlan100 ipv4.addresses 192.168.100.10/24
nmcli con mod eth0-vlan100 ipv4.gateway 192.168.100.1
nmcli con mod eth0-vlan100 ipv4.dns "8.8.8.8"
nmcli con mod eth0-vlan100 ipv4.method manual
  1. 激活连接:
nmcli con up eth0-vlan100

方法二:使用network-scripts(传统方式)

  1. 创建配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-eth0.100
  1. 文件内容示例:
DEVICE=eth0.100
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
VLAN=yes
PHYSDEV=eth0
  1. 重启网络服务:
systemctl restart network

3.3 高级配置选项

多VLAN配置

# 创建第二个VLAN接口
nmcli con add type vlan con-name eth0-vlan200 ifname eth0.200 dev eth0 id 200

VLAN QoS优先级设置

nmcli con modify eth0-vlan100 vlan.priority 3

绑定接口+VLAN配置

# 先创建绑定接口
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup

# 再创建VLAN接口
nmcli con add type vlan con-name bond0-vlan100 ifname bond0.100 dev bond0 id 100

四、故障排查

4.1 常见问题及解决方案

问题1:VLAN接口无法ping通

# 检查交换机配置 show vlan brief # 在交换机执行

# 检查防火墙 firewall-cmd –list-all


#### 问题2:VLAN接口无法启动
- 排查步骤:
  1. 检查内核模块:
     ```bash
     lsmod | grep 8021q
     ```
  2. 查看日志:
     ```bash
     journalctl -xe
     ```
  3. 验证物理网卡状态:
     ```bash
     ethtool eth0
     ```

### 4.2 诊断工具

#### tcpdump抓包分析
```bash
tcpdump -i eth0 -nn -e vlan

详细日志查看

dmesg | grep -i vlan

五、性能优化建议

5.1 硬件加速

# 检查是否支持硬件VLAN加速
ethtool -k eth0 | grep vlan

# 启用硬件加速
ethtool -K eth0 rx-vlan-offload on tx-vlan-offload on

5.2 中断平衡

# 为VLAN接口配置独立中断
echo 2 > /proc/irq/$(cat /proc/interrupts | grep eth0 | awk '{print $1}' | tr -d :)/smp_affinity

5.3 MTU调整

ip link set eth0.100 mtu 9000  # 需交换机支持Jumbo Frame

六、安全注意事项

  1. VLAN跳跃攻击防护

    • 禁用动态Trunk协议
    echo "install 8021q /bin/true" >> /etc/modprobe.d/disable_dynamic_trunk.conf
    
  2. 访问控制

    # 使用firewalld限制VLAN访问
    firewall-cmd --permanent --zone=internal --add-interface=eth0.100
    
  3. 日志监控

    # 监控VLAN接口状态变化
    auditctl -w /etc/sysconfig/network-scripts/ifcfg-eth0.100 -p wa -k network_config_change
    

七、附录

7.1 相关命令速查表

命令 功能
ip -d link show 显示VLAN详细信息
nmcli con show 查看NetworkManager连接
cat /proc/net/vlan/config 查看内核VLAN配置

7.2 参考文档

注意:本文基于RHEL 8/CentOS 8编写,部分命令在早期版本中可能略有不同。生产环境建议先进行测试验证。 “`

这篇文章结构完整,包含了从基础概念到实际操作的全面内容,采用Markdown格式便于阅读和维护。需要调整内容细节或补充特定场景时,可以进一步扩展相关章节。

推荐阅读:
  1. 管理使用CentOS 7上的SQL Server
  2. 以单用户模式启动CentOS/RHEL 7/8 的三种方法是怎样的

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

centos vlan rhel

上一篇:Linux如何设置附加组和用户登录Shell

下一篇:Python怎么实现多对多网络结构

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》