物理机安装LINUX后的网卡配置问题

基础材料:

CentOS7 物理服务器


背景说明:

安装完LINUX操作系统的网卡配置让主机连通网络,对于系统管理员来说是再常见不过的事情,而且基本上也没什么难度,但凡做过系统管理员的人应该没有不会配置的。但是看似一件极其简单的事,在更换了具体环境后就变得不再简单了,甚至会让系统管理员抓狂。

设想如下场景:完成物理机系统安装并联网的工作分成3波人完成,机房操作人员负责机器上架、连接网线,网络人员负责规划VLAN修改交换机配置,系统管理员负责远程安装系统并配置网卡。作为系统管理员最终可能拿到一张表上面写着IP地址、子网掩码、网关等信息,然后对着ethx就会产生一些问题,比如有多个IP地址需要配置时,ethx怎么与多个IP地址正确的一一对应,如果配置bond时究竟哪几块网卡应该绑在一起。最差的情况下采用盲猜的办法,如果一切顺利最终能够配置成功并联网,如果中间出现了问题,配置了一遍都不对,你可能会检查你的配置文件或联系网路人员看看交换机配置是不是有问题,如果双方都反馈没问题就很容易陷入了死结,纠其原因大概就是系统管理员不了解网络,网络管理员不了解系统,无法相互检查,当然我们讲相互协作是必要的,但是如果能掌握更多的信息对于我们判断问题会有很大帮助。


网络基本交换流程:

VLAN:虚拟局域网,主要用于隔离广播域。属于同一VLAN的数据包直接走二层进行交换,VLAN间通信一般要借助于三层网络设备

VLAN ID:也叫VID,用于标识数据帧属于哪个VLAN,取值为整型1-4094,其中VLAN 1为交换机端口默认VLAN,一般不适用。

Port-based VLAN:基于端口的VLAN,比较常用的划分VLAN方式,其ID也叫PVID。对于access端口PVID等于VID,对于trunk端口其PVID一般为1,即交换机默认VLAN ID(当然该值可以手动调整)。

ACCESS端口:交换机端口类型之一,常用于连接终端服务器,access口接收到untagged帧后(一般是主机发送的),用自己的PVID(VID)进行标识,标明该帧所属VLAN,该帧变成tagged,然后在交换机中流转。当access口接收到tagged帧后(一般是发送给主机的),进行判断如果该帧标识等于自己的PVID(VID)时,将tag剥离,变成untagged帧发送给主机(一般主机无法识别带tagged的帧,因为默认没有加载配置802.1q模块配置VLAN),如果该帧标识不等于自己的PVID(VID)时,直接丢弃。

TRUNK端口:交换机端口类型之一,常用于交换机间的级联(以及需要多VLAN通信的虚拟化主机),可以配置允许多个VLAN通过,当trunk口接收到tagged帧后,根据其VID判断是否在允许列表中,如果是直接转发,如果不是则丢弃。当trunk口接收到untagged帧后,会用自己的PVID标识该帧,即VLAN ID为1,然后进行转发,最终由于VLAN ID 1没有相关配置该帧找不到出口被丢弃。

HYBRID端口:交换机端口类型之一,同时具备access端口和trunk端口特性,这里不讨论。

 通过上图简单串联一下数据帧的流转过程,假定PC1已知PC2 MAC地址,三台交换机已知PC1 PC2的MAC地址,不存在泛洪,两台交换机的access口属于同一VLAN 10,三台交换机trunk口均允许该VLAN通过。

现PC1向PC2发送单播帧,PC1的网卡将untagged帧发送至交换机1的access接口,该access口对该帧添加VLAN ID 10,然后转发至级联的trunk口,级联trunk口收到tagged帧判断允许VLAN 10通过,直接转发至交换机3的trunk,交换机3查找VLAN10的MAC地址表,将该帧从另一端口转发出去,同样透传至交换机2trunk口,交换机2查找VLAN10的MAC地址表,将该帧送至access口,access口比对该帧的VLAN ID发现与自己的相同,将tag剥离,该帧转化为untagged,送至PC2,到达PC2网卡后进行层层解包最终发至上层应用处理。


回到正题,我们装完一台物理主机通常不会在每个网口都接上网线,这就需要判断究竟哪块卡是接线的。通常想到的是ethtool闪灯,但那需要机房人员进行配合。其实通过操作系统提供的信息就能初步的做一个判断。

三种方法:

特别注意这三种方法判断的前提:要将网卡UP起来后进行判断,即执行ifup命令

1、ip a命令(实测可能需要等上几秒,待网卡状态转化)

已接线网卡输出如下:

其中如出现LOWER_UP理解为底层的状态是启动的,即是接了网线的,其前面的UP是指操作系统层面认为端口是UP的状态,即我们执行的ifup命令。

未接线网卡输出如下:

可以看到我们虽然手动UP了网卡,但未出现LOWER_UP字段,且前缀为NO-CARRIER。

2、ifconfig -a命令

接线网卡输出的flags中包含RUNNING字段

未接线网卡输出flags无此字段

3、ethtool命令

观察输出最后的Link detected字段,如果为yes则表示已经接线,如果为no则表示未接线


当系统管理员以自己认为正确的方式配置了IP地址但是网络仍然不通时,通常网络人员并不会登陆你的主机帮你检查问题,这时我们就需要获取一些交换机信息用于反向核对,比如交换机接口位置、VLAN等信息

使用工具lldpad通过2层发现协议查找对端交换机信息

需要注意的是此功能需要交换机端打开LLDP协议的支持,否则我们从主机端无法获取信息

步骤:

1、用镜像ISO配置本地yum源

2、安装lldpad包 yum install -y lldpad

3、启动服务 systemctl start lldpad

4、设置端口收发模式 lldptool set-lldp -i eth0 adminStatus=rxtx

5、获取交换机端口信息 lldptool -t -n -i eth0

注意输出内容根据交换机型号不同略有区别,主要关注字段如下

 Chassis ID:交换机管理口的MAC地址

 Port ID:对端交换机网口位置

 Port Description:对于该端口的描述,一般描述对端主机位置或者SN等信息

 System Name:交换机名称

 System Description:交换机的一些描述信息,包括交换机型号

 Port VLAN ID:PVID编号

当然根据型号或者厂家的不同返回信息中有时还包括一些信息辅助判断:

Management Address:交换机端口的MAC地址

VLAN Name:包括VID和VLAN名称

基于以上信息,我们可以做一些简单的判断(这里所讲的是一般情况,不排除网络管理员手动修改PVID):

对于系统管理员而言最重要的信息就是Port VLAN ID,在该值不为1的情况下,我们一般认为这是一个access口,此时PVID=VID,这时就拿到了VLAN ID,可以与给定的信息核对看VLAN是否配置正确。当PVID为1时,我们一般认为这是一个trunk口,如果返回信息中包括VLAN Name字段,我们还可以拿到这个trunk口允许通过的其中一个VLAN ID(由于软件问题只能返回允许通过的VLAN ID最小的编号)。然后通过比对给定的VLAN ID,我们就能为网卡配置正确的IP地址。

上述其他信息可反馈于网络人员进行核对,最后配置完成后记得关闭服务


 出于某种原因我们的主机需要与trunk模式的端口进行通信,正如上面所说,主机发送的untagged帧进入交换机被打上VLAN1的标签,由于没有出口被丢弃导致了网络不通。这时就需要加载802.1q模块,并配置VLAN使主机具备打tag标签的能力。

两种方法:

使用vconfig进行配置

1、modprobe 8021q  #加载8021q模块

2、yum install -y vconfig  #安装Vconfig

3、vconfig add eth0 10  #给eth0网卡添加VLAN 10

4、配置eth0网卡

5、配置eth0.10网卡,注意命名后缀10即为VLAN号,配置文件以此确认VLAN。

6、启动网卡

     ifup eth0

     ifup eth0.10

使用配置文件:(7.x镜像中已经没有vconfig,只能使用epel源,内网环境下只能直接写配置文件)

1、modprobe 8021q  #加载8021q模块

2、配置eth0网卡,内容同上

3、配置eth0.10网卡

4、启动网卡

     ifup eth0

     ifup eth0.10

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值