centos7配置网卡子接口

配置子接口

在 CentOS 7 中配置子接口可以用于实现虚拟化网络或者分割一个物理网络接口成多个逻辑接口,以实现不同的网络分割或 VLAN 支持。以下是在 CentOS 7 中配置子接口的一般步骤:

  1. 打开终端:首先,通过 SSH 或直接登录到 CentOS 7 服务器的终端。

  2. 编辑网络配置文件:使用文本编辑器(如 vim 或 nano)编辑网络配置文件,通常位于 /etc/sysconfig/network-scripts/ 目录下。你需要找到你要创建子接口的物理接口的配置文件,通常以类似 ifcfg-enp0sX 的文件名存在,其中 enp0sX 是你的物理接口名称。

sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0sX 
  1. 复制原配置文件:复制物理接口的配置文件,以创建一个新的子接口配置文件。你可以将文件复制为类似 ifcfg-enp0sX:Y 的格式,其中 Y 是子接口的标识符。
sudo cp /etc/sysconfig/network-scripts/ifcfg-enp0sX /etc/sysconfig/network-scripts/ifcfg-enp0sX:Y 
  1. 编辑子接口配置文件:使用文本编辑器编辑新创建的子接口配置文件。确保进行以下配置更改:

    • 修改 DEVICE 为子接口的名称,例如 DEVICE=enp0sX:Y
    • 如果需要,可以配置 IP 地址、子网掩码和网关。
    • 如果需要,可以配置 VLAN 标识符(802.1Q 标签)。

示例子接口配置文件:

DEVICE=enp0sX:Y 
BOOTPROTO=static 
IPADDR=子接口的IP地址 
NETMASK=子网掩码 
ONBOOT=yes 
  1. 重启网络服务:保存并关闭子接口配置文件,然后重新启动网络服务以应用更改。
sudo systemctl restart network 
  1. 验证配置:使用 ifconfigip a 命令来验证新的子接口是否已经创建并且正在运行。你应该能够看到子接口的信息。
ifconfig enp0sX:Y 

现在,你已经成功配置了子接口。你可以将其用于不同的网络分割或 VLAN 支持,根据你的需求进行进一步配置。请确保在实际配置中替换实际的接口名称、IP 地址和子网掩码等信息。

子接口上配置vlan信息

在子接口的配置文件中,你可以添加 VLAN 信息。这需要你编辑子接口的配置文件以包括 VLAN 标签信息。以下是如何在子接口配置文件中添加 VLAN 信息的步骤:

  1. 打开终端并登录到 CentOS 7 服务器。

  2. 编辑子接口的配置文件,通常位于 /etc/sysconfig/network-scripts/ 目录下,文件名格式为 ifcfg-enp0sX:Y(根据你的子接口名称)。

sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0sX:Y 
  1. 在配置文件中,添加 VLAN 标签信息。你可以使用 VLAN 参数来指定 VLAN ID。

示例 VLAN 子接口配置文件 (ifcfg-enp0sX:Y),假设 VLAN ID 为 100:

DEVICE=enp0sX:Y 
BOOTPROTO=static 
IPADDR=子接口的IP地址 
NETMASK=子网掩码 
GATEWAY=网关IP地址 
ONBOOT=yes 
VLAN=yes 
VLAN_ID=100 

在上述配置中,VLAN_ID 参数指定了 VLAN 的 ID,而 VLAN 参数设置为 yes 以启用 VLAN。

  1. 保存并关闭配置文件。

  2. 重启网络服务以应用更改:

sudo systemctl restart network 

现在,你已经成功在子接口配置文件中添加了 VLAN 信息。这将使子接口成为一个 VLAN 子接口,允许你在 CentOS 7 中实现 VLAN 分隔。请确保在实际配置中替换实际的接口名称、IP 地址、子网掩码、网关和 VLAN ID 等信息。

子接口用“.”分隔

enp0sX:Y 可以写成 enp0sX.Y 这种方式吗?

在 CentOS 7 中,子接口的命名通常使用冒号 : 来分隔物理接口和子接口的标识符,例如 enp0sX:Y。这是一种常见的命名约定,它用于表示物理接口 enp0sX 的第 Y 个子接口。这种命名方式在大多数 Linux 系统中都是标准的。

如果你希望使用点 . 来分隔物理接口和子接口的标识符,例如 enp0sX.Y,你可以尝试,但请注意这可能不被所有网络配置工具和脚本支持。使用冒号 : 通常是更广泛接受的标准方式,因为它与 VLAN 标签的命名方式一致。

总之,虽然 enp0sX:Y 是标准的子接口命名方式,但你可以尝试使用 enp0sX.Y,只需确保在配置文件中保持一致性,并在实际使用中进行测试和验证,以确保其正常工作。

#示例1
sudo ip link add link enp0sX name enp0sX.Y type vlan id Y

#示例2
sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0sX.Y
DEVICE=enp0sX.Y
BOOTPROTO=static
IPADDR=子接口的IP地址
NETMASK=子网掩码
GATEWAY=网关IP地址
ONBOOT=yes

注意

在CentOS7中NetworkManager对网络的管理不是很友好,建议禁用NetworkManager服务通过network服务进行网络管理

生产环境下的一个实际案例

[root@-compute-zyq ~]# ip a | grep bond
2: eno1:  mtu 9000 qdisc mq master bond1 state UP group default qlen 1000
3: eno2:  mtu 9000 qdisc mq master bond2 state UP group default qlen 1000
4: eno3:  mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
5: eno4:  mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
6: ens4f0:  mtu 9000 qdisc mq master bond1 state UP group default qlen 1000
7: ens4f1:  mtu 9000 qdisc mq master bond2 state UP group default qlen 1000
8: bond0:  mtu 1500 qdisc noqueue state UP group default qlen 1000
9: bond1:  mtu 9000 qdisc noqueue state UP group default qlen 1000
10: bond2:  mtu 9000 qdisc noqueue state UP group default qlen 1000
11: bond0.150@bond0:  mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 10.33.16.152/21 brd 10.33.23.255 scope global bond0.150
13: bond1.301@bond1:  mtu 9000 qdisc noqueue state UP group default qlen 1000
    inet 10.33.96.152/20 brd 10.33.111.255 scope global bond1.301
15: bond2.300@bond2:  mtu 9000 qdisc noqueue state UP group default qlen 1000
    inet 10.33.32.152/21 brd 10.33.39.255 scope global bond2.300
[root@-compute-zyq ~]# cd /etc/sysconfig/network-scripts/
[root@-compute-zyq network-scripts]# ls
ifcfg-bond0             ifcfg-bond1               ifcfg-bond2.200           ifdown       ifdown-ipv6  ifdown-routes    ifup          ifup-ippp  ifup-plusb   ifup-Team         network-functions
ifcfg-bond0.150         ifcfg-bond1.301           ifcfg-bond2.300           ifdown-bnep  ifdown-isdn  ifdown-sit       ifup-aliases  ifup-ipv6  ifup-post    ifup-TeamPort     network-functions-ipv6
ifcfg-bond0.199         ifcfg-bond1-slave-eno1    ifcfg-bond2-slave-eno2    ifdown-eth   ifdown-ovs   ifdown-Team      ifup-bnep     ifup-isdn  ifup-ppp     ifup-tunnel       route-bond0.150
ifcfg-bond0-slave-eno3  ifcfg-bond1-slave-ens4f0  ifcfg-bond2-slave-ens4f1  ifdown-ib    ifdown-post  ifdown-TeamPort  ifup-eth      ifup-ovs   ifup-routes  ifup-wireless     route-bond1.301
ifcfg-bond0-slave-eno4  ifcfg-bond2               ifcfg-lo                  ifdown-ippp  ifdown-ppp   ifdown-tunnel    ifup-ib       ifup-plip  ifup-sit     init.ipv6-global  route-bond2.300
[root@-compute-zyq network-scripts]# cat route-bond0.150 
10.33.42.0/23 via 10.33.23.254
[root@-compute-zyq network-scripts]# cat route-bond1.301 
100.126.0.0/21 via 10.33.111.254 dev bond1.301
100.127.244.0/22 via 10.33.111.254 dev bond1.301
[root@-compute-zyq network-scripts]# cat route-bond2.300 
10.33.39.12/32 via 10.33.32.1 dev bond2.300
[root@-compute-zyq network-scripts]# 

在CentOS 7中,当你使用ip a命令查看到类似bond1.143@bond1:这样的命名格式的接口时,该接口表示一个 VLAN(Virtual Local Area Network)子接口。让我解释一下:

  1. bond1 表示物理网络适配器的绑定接口。在这种情况下,似乎你有一个名为bond1的网络适配器绑定,它可以由多个物理网络适配器组成,用于提供冗余和负载平衡。

  2. .143 表示 VLAN 标签。VLAN是一种虚拟网络技术,用于将单个物理网络分割成多个逻辑网络,每个网络可以具有不同的配置和安全策略。在这里,.143表示该子接口与VLAN 143相关联。

  3. @bond1 表示这个 VLAN 子接口附加到bond1物理接口上。

所以,bond1.143@bond1:表示一个名为bond1的物理网络适配器绑定上的VLAN 143 子接口。这种配置通常用于划分网络流量和提供网络隔离,以满足不同的网络需求。

你可能感兴趣的:(Linux,网络,网络,linux)