本文续《Linux网络接口和VLAN配置》http://blog.csdn.net/melancholy123/article/details/70232889

使用Ubuntu配置VLAN并且用于生产环境还是第一次,果然想象中预计几分钟的事情花费了几个小时才搞定,其实Ubuntu本身定位就是桌面Linux系统,虽然也有Ubuntu Server的版本,但还是觉得Red Hat系对服务器配置更加友好,当然不排除先入为主的观念,毕竟Red Hat是我上学时服务器系统领域近乎唯一的选择。

使用Ubuntu 16.04.3 LTS版本安装完成进入系统后发现新版系统内核对interface的默认命名不在是熟悉的ethx/wlanx而是enp2s0/wlp3s0这种格式,这本来是无所谓的事情但是当我在/etc/network/interfaces里配置VLAN接口后,重启网络服务就会报错。

root@hp:/home/hp# systemctl status networking.service
11月 02 16:27:11 hp systemd[1]: Starting Raise network interfaces...
11月 02 16:27:21 hp ifup[2278]: Cannot find device "enp2s0.101"
11月 02 16:27:21 hp ifup[2278]: Failed to bring up enp2s0.101.
11月 02 16:27:21 hp systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE

在确定8021q模块加载后才开始怀疑是接口命名的问题,于是新建/etc/udev/rules.d/70-persistent-net.rules文件用来指定接口名称,但无论是重启网络服务还是重启系统均只有wlan0更正成功,eth0始终无法正确显示,对比后发现可能是KERNEL字段不匹配导致,于是删除KERNEL字段两个网口的名称才最终正确显示。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:52:82:2f:58:98", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="c8:21:58:d0:5c:14", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

随后使用eth0网口名称配置VLAN重启网络服务后VLAN生效。

Ubuntu VLAN Flow

1.安装VLAN软件包,Ubuntu系统下使用apt-get install vlan进行安装。

2.加载8021q内核模块,可使用modprobe 8021q命令加载模块,使用lsmod | grep 8021q检查该模块是否加载,使用echo "8021q" > /etc/modules将该模块添加到默认加载列表中。

3.使用ip link命令查看物理网口的MAC地址,新建或修改/etc/udev/rules.d/70-persistent-net.rules指定物理网络接口名称,个人认为该条目里的字段越少越不容易出错,重启网络服务后生效。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:52:82:2f:58:98", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="c8:21:58:d0:5c:14", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0"

4.编辑/etc/network/interfaces网路配置文件,Ubuntu仅支持<interface>.<VID>VLAN接口命令方式和<interface>:<N>的多IP绑定方式,重启网络服务后生效。

auto lo
iface lo inet loopbackauto eth0
iface eth0 inet static
address 10.163.201.184
netmask 255.255.255.0
gateway 10.163.201.1
mtu 1500auto eth0.101
iface eth0.101 inet static
address 192.168.200.2
netmask 255.255.255.0
network 192.168.200.0
broadcast 192.168.200.255
mtu 1492

5.使用cat /proc/net/vlan/config查看当前VLAN配置。

root@hp:/etc/network# cat /proc/net/vlan/config
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.101       | 101  | eth0

SUSE VLAN Flow

1.安装VLAN软件包,SUSE系统下使用zypper in vlan进行安装。

2.加载8021q内核模块,可使用modprobe 8021q命令加载模块,使用lsmod | grep 8021q检查该模块是否加载,使用echo "modprobe 8021q" > /etc/rc.local使其开机加载。

3.使用ip link命令查看物理网口的MAC地址,新建或修改/etc/udev/rules.d/70-persistent-net.rules指定物理网络接口名称,个人认为条目里字段越少越不容易报错,重启网络服务后生效。

SUBSYSTEM=="net", BUS=="pci", ID=="0000:03:00.0", NAME="ext"
SUBSYSTEM=="net", BUS=="pci", ID=="0000:0b:00.0", NAME="int"

4.编辑/etc/sysconfig/network/路径下ifcfg-<interface>网口配置文件和ifcfg-vlan<VID>网口VLAN配置文件,除此之外SUSERed Hat系系统还支持ifcfg-<interface>.<VID>ifcfg-<anyname>两种VLAN配置文件,重启网络服务后生效。


由上可知SUSE支持三种interface及其ifcfg文件的命名方式,其中<interface>.<vid>的命名方式可以避免vlan<vid>命名方式产生的不同物理接口无法定义相同的VLAN ID的问题,<anyname>的方式最为灵活但并不直白,接口较多的情况下会让维护工作比较困难。

但无论哪种名称方式,ifcfg文件中都需要使用ETHERDEVICE指定所基于的物理interface,不像前两种方式在interface名称上就指明了VLAN ID<anyname>的方式还需要在ifcfg文件内使用VLAN_ID指定VID


/etc/sysconfig/network/ifcfg-int:

BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='10.163.118.24/23'
MTU=''
NAME='82545EM Gigabit Ethernet Controller (Copper)'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'

/etc/sysconfig/network/ifcfg-vlan2022:

BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='20.1.43.0/22'
MTU='9000'
NAME='VMXNET3 Ethernet Controller'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'
ETHERDEVICE='int'
VLAN='yes'IPADDR_0='20.1.43.1/22'
LABEL_0='1'
IPADDR_1='20.1.43.2/22'
LABEL_1='2'
IPADDR_2='20.1.43.3/22'
LABEL_2='3'
IPADDR_3='20.1.43.4/22'

5.使用cat /proc/net/vlan/config命令查看当前VLAN配置。

hp:/etc/sysconfig/network # cat /proc/net/vlan/config
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_PLUS_VID_NO_PAD
vlan2021       | 2021  | int
vlan2022       | 2022  | int
vlan2023       | 2023  | int
vlan2024       | 2024  | int

Ubuntu VLAN配置troubleshooting相关推荐

  1. ubuntu 20.04的netplan多VLAN配置

    近期遇到一个需求,在同一张网卡,一个网线,需要配置2个不同网段IP,特意分享下. 网络划分多个VLAN,配置如下. 已知配置的VLAN分别有(网卡为eno1): VLAN:35   IP:10.152 ...

  2. centos7 网卡配置vlan_【linux】Centos7单网卡多VLAN配置

    Centos7单网卡多VLAN配置 1.需要使用到vconfig软件,首先yum安装vconfig: 使用命令yum install vconfig: 2.使用modprobe 命令加载8021q模块 ...

  3. ubuntu bind9 配置简单记录

    ubuntu bind9 配置简单记录 ubuntu版本:Ubuntu 12.04.2 bind9安装:apt-get install bind9 bind9配置文件目录:/etc/bind bind ...

  4. Ubuntu下配置Nginx HTTPS

    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入S ...

  5. 思科交换机vlan配置

    vlan配置 1. vlan:虚拟局域网,是交换机端口的逻辑组合,vlan工作在osi的第二层,一个vlan就是一个广播域,vlan之间的通信是通过第3层的路由器来完成的. 2. vlan优点:    ...

  6. Ubuntu nfs配置

    Ubuntu nfs配置 被挂载端(10.0.0.2): # apt-get install nfs-kernel-server # vi /etc/exports 按a或i进入编辑模式 /home ...

  7. openocd调试Linux内核,Ubuntu下配置OpenOCD+FT2232

    Ubuntu下配置OpenOCD+FT2232 [1]确认调试器方案 将调试器插到电脑上,lsusb看一下: Bus 003 Device 009: ID 1457:5118 First Intern ...

  8. Ubuntu中配置Java环境变量时,出现command not found问题解决记录

    百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile, ...

  9. Star: Ubuntu下配置和编译cpp-ethereum客户端启动GPU加速交易

    Ubuntu下配置和编译cpp-ethereum客户端启动GPU加速交易 Ethereum,中文翻译是"以太坊",是一个公有区块链的开源项目.因为以太坊是基于P2P网络所以没有中心 ...

最新文章

  1. selenium webdriver中执行js(java)
  2. C++ 拷贝构造函数和赋值运算符
  3. 新一代Web安全治理体系让“我的地盘我做主”不再只是梦
  4. oracle 闪查询,Oracle的回闪查询
  5. java中runnable_Java中Runnable和Thread的区别
  6. java 乘法 位移_Java:移位实现的乘除法
  7. [Bootstrap-Table] 中的事件用例
  8. 087 定积分求面积应用习题
  9. win10注册表开机自启
  10. HDU6069(区间筛)
  11. 求一个好用的简洁设置的PPT倒计时器
  12. reporting php,PHP报错函数error_reporting()怎么用?
  13. 未经授权,直接划扣资金!这些支付机构的用户要小心
  14. LCP 22. 黑白方格画(排列组合)
  15. ESP8266天猫精灵接入流程
  16. linux网络协议栈(四)链路层 vlan处理
  17. python解析二维码_python解析二维码
  18. 计算机制图用什么图纸,制图用什么笔记本好
  19. 如何学习新概念英语3
  20. 基于BIM+GIS钢结构全生命周期管理平台项目

热门文章

  1. 一文看懂 “极大似然估计” 与 “最大后验估计” —— 极大似然估计篇
  2. office全套教程(2003~2016)
  3. Hive集成Phoenix
  4. Python生成Code128C条形码实现——轻松打造高效标识码!
  5. 设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。
  6. 怎么设置u盘卷标linux,什么是卷标?U盘的卷标设置的操作教程
  7. IFIX VBA实现延时的几种方法
  8. 【WordPress】如何通过tag标签自动给文章插入内链
  9. uniapp 移动端 两种横竖屏切换方案
  10. 郑清 - 日常作息表 - October - 2019