路由和 Linux 网卡配置实战 | 学习笔记(一)

简介: 快速学习路由和 Linux 网卡配置实战 .

开发者学堂课程【Linux 高级网络应用 - 网络管理与配置实战路由和 Linux 网卡配置实战学习笔记,与课程紧密联系,让用户快速学习知识.

课程地址https://developer.aliyun.com/learning/course/576/detail/7969


路由和 Linux 网卡配置实战


目录

一、动态主机配置协议 DHCP

二、基本网络配置

三、CentOS 6、CentOS 7网卡名称的区别

四、CentOS 6网卡名称

五、CentOS 6网络配置方式

六、配置网络接口

七、route 命令


一、动态主机配置协议 DHCP

对于计算机而言,利用 tcp/ip 协议与网络中的设备进行通讯通常需要对其配置IP地址。配置的方法,其一为:于 tcp/ip 属性中设置为自动获取IP地址,选中此项时,主机将自动于网络中寻找特殊的名为 DHCP-动态主机配置协议的服务器,由于DHCP上维护着众多地址,寻找到后将会当从中寻找DHCP服务器,申请地址进行通讯。此过程为自动化,不需要人为进行干预。此过程通过四部分实现。

image.png

1.四部分过程

1).DISCOVER:

在客户端启动时若无地址,进行的时自动获取,则其将向网络中发送请求,即DHCP发现报文,DISCOVER报文。以广播形式发出,在本身当前没有地址的情况下,询问网络中是否拥有DHCP服务器存在。

2).OFFER:

如若网络中存在DHCP服务器,通常情况下此服务器会给予客户端以响应,表示本身地址的存在。假设服务器中存在192.1.68-192.1.100共100个服务器地址,则服务器将会从众多地址中抽取空余的地址发予客户端,提供消息中含有地址的信息。服务器同时将分配出的地址做上标记,避免此后处理其他电脑提出的请求时出现地址给予重复的情况。

3).REQUEST:

客户端收到多个服务器发来的OFFER请求后,其需要选择一家服务器的地址进行反馈响应。同时,其余未被选择的服务器将地址标记取消回收。

4).ACK:

被使用地址的服务器进行确认工作,确认获取的地址、网关、子网掩码、DNS、租期等众多重要信息。

经过以四个步骤之后即可得到地址,在租期指定的时间内对其进行使用。假设租期为一天,即可使用一天此地址。DHCP通常情况下会在分配IP后与租期约定时间距离一半时间的前夕进行提示,以便客户端申请续约继续使用IP地址。

假设租期为一天,服务器将在租定十二小时后相客户端发送续约提示,在客户端提交续约申请、服务器同意申请后,客户端即可得到新的一天使用时间,此后延续此操作,租期可继续延长。

2.IP 频繁对换设置的便捷操作

由于IP设置仅能够从自动获取与手动输入中二选一,当需要频繁互换IP设置,例如笔记本在公司与家庭的运用,在家庭中自动获取IP,在部分工作单位中其地址为静态地址需要手动输入时,为保证效率与便捷性,可以选择自动获取IP地址中的备用配置,在其中进行固定地址的输入,意味着在没有DHCP服务器的场合下输入的地址将自动生效,而在 DHCP 服务器存在的场合下将会优先使用DHCP服务器,避免了IP地址频繁输入转换的麻烦。移动办公时十分方便。

3.注意

手动输入IP地址生效的前提为网络IP中未连接DNS服务器,自动获取IP地址和手动输入IP地址不能同时做到。


二、基本网络配置

1.介绍

将Linux主机接入到网络,需要进行网络相关设置。

一般包括如下内容:

(1)主机名(windows内为计算机名)

Linux、centos中,主机名默认情况下只具有本地意义,进行不同计算机之间的区分。而windows内由于其本身具有网络通讯功能,可以对计算机进行访问。

Linux中需要凭借hostname指令进行主机名的查看:

[root@centos7 ~]#hostname

主机名与windows的计算机名相类似,但由于是否拥有通讯功能的差别,即windows可通过计算机名,利用windows的ping命令对计算机进行访问。

假设现今将两台主机更改为同样的ID,由于Linux中主机名不具有网络功能,故名字重复时不会被系统提示冲突,而windows中主机名重复,系统将会于显示冲突。

(2)IP/netmask

查看IP地址和子网掩码,需要使用到ifconfig命令

[root@centos7 ~]#ifconfig

centos7存在与虚拟化有关的虚拟网卡,可用删掉命令进行虚拟驱动的删除

[root@centos7 ~]#yum remove libvirt-daemon

将机器重启后,再次利用ifconfig即可。

(3)路由:默认网关

(4)DNS服务器

主DNS服务器

次DNS服务器

第三DNS服务器


三、CentOS 6、CentOS 7网卡名称的区别

由于centos6与centos7两个地址的网卡名并不相同。centos6默认使用eth进行网卡名的定义,而centos7使用是ens进行定义。现今将两者分为两部分进行讲述


四、CentOS 6网卡名称

1.介绍

(1)接口命名方式: CentOS 6

以太网: eth[0,1,2...]

ppp-较为特殊少见: ppp[0,1,2...].

网卡名称并非一成不变,可通过更改配置文件以实现网卡的命名。

(2)网络接口识别并命名相关的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

(3)查看网卡:

dmesg |grep -i eth

ethtool -i ethO

(4)卸载网卡驱动:

modprobe -r e1000

rmmod e1 000

(5)装载网卡驱动:

modprobe e1000

2.实际操作

通过克隆方式在 centos6 上建立两台完全相同的虚拟主机,其中一台主机的地址为:192.168.30.128;另一台主机地址为:192.168.30.102,即:由于centos本身主机名不能重复的特性,其中一台虚拟机的网卡名、MAC地址自动发生了改变。

网卡命名的实现

/etc/udev/rules.d/70-persistent-net.rules    此文件定义了网卡的命名方式

操作:

[root@centos7 ~]#cd

[root@centos7 ~]#cd /etc/udev/rules.d/

[root@centos7 ~]#ls

60-fprint-autosuspend.rules 70-persistent-cd.rules 97-bluetooth-serial.rules

60-openct.rules 70-persistent-net.rules 98-kexec.rules //rules为定义了网卡命名规范的规则文件

60-pcmcia.rules 90-alsa.rules 99-fuse.rules

60-raw.rules 90-hal.rules

[root@centos6 rules .d]#vim 70-persistent-net.rules //将此文件打开

# This file was automatically generated by the /lib/udev/write net_rules

# program, run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR(address)=="00:0c:29:el:f7:aa", ATTR[type])=="1", KERNEL=="eth*", NAME=" eth0"   //当前mac名称为“aa”时网卡名称为0

# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR(address)=="00:0c:29:e1:f7:b4", ATTR[type]=="1", KERNEL=="eth*", NAME= "eth1"  //当前mac名称为“b4”时网卡名称为eth1

# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",

ATTR(address)=="90:0c:29:df:51:03[ATTR[type)=="1", KERNEL=="eth*", NAME=" eth2 "  //显示为当前网卡的mac与网卡名称。

由于0、1网卡名称已被占据,此时欲实现mac地址为03的网卡名更改,需要将此前信息全部删除,并调整网卡名称

# PCI device 0x8086:0x100f (e1000)

# PCI device 0x8086:0x100f (e1000)

# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",

ATTR(address)=="90:0c:29:df:51:03,[ATTR[type)=="1", KERNEL=="eth*", NAME=" eth0 "

文件更改后网卡通常并不会立刻生效,欲使其生效,由于重启在部分情况下并不现实,进行网卡驱动的卸载也同样能够到达此目的。

注意:

在文件为可执行的脚本命令时,能够进行source命令的使用。并非所有配置文件更改的生效都属于source命令,且由于/etc/udev/rules.d/70-persistent-net.rules此文件属于系统的配置文件,而非脚本,故当前情况并不能使用source命令。

3.查看网卡驱动名称的命令

欲进行网卡驱动的卸载,首先应知晓网卡驱动的名称。网卡驱动名称的查看具有两个方法。

方法1:demesg

[root@centos7 ~]#demesg

//此命令针对所有硬件信息

[root@centos7 ~]#dmesg  |grep -i eth 

//进入所有网卡信息后,进而进行寻找网卡驱动硬件的查看

e1000 0000:02:01.0: eth0:(PCI:66MHz:32-bit) 00:0c:29:df:51:03

e1000 0000:02:01.0: eth0:Intel(R) PR0/1000 Network Connection

dev:_ renamed network interface eth0 to eth2

e1000: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None    

//e1000即驱动网卡的模块名

B021q: adding VLAN 0 to HW filter on device eth2

eth2: no IPv6 routers present

方法2:ethtool

[root@centos7 ~]#ethtool  -i eth2  

//查看eth2的驱动模块

driver: e1000    

//此为eth2驱动网卡模块名

version: 7.3.21-k8-NAPI

firmware-version:

bus-info: 0000:02:01.0

supports-statistics: yes

supports-test: yes

supports-eeprom-access:yes

supports-register-dump: yes

supports-priv-flags: no

[root@centos7 ~]#modprobe -r e1000  

//r即进行驱动模块的卸载。

[root@centos7 ~]#ifconfig    

//由于网卡驱动模块的卸载,导致网卡同样也无法被看见

lo      Link encap:Local Loopback

 inet addr:127.0.0.1Mask:255.0.0.0

 inet6 addr: ::1/128 Scope :Host

UP LOOPBACK RUNNING MTU: 65536 Metric: 1

RX packets:12 errors:0 dropped:0 overruns:0 frame: 0

TX packets:12 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen: 0

RX bytes:720 (720.0 b) TX bytes:720 (720.0 b)

[root@centos7 ~]#modprobe e1000

//驱动模块卸载后进行重新加载。网卡名;e1000,加载时将r去掉即加载命令。

[root@centos7 ~]#ifconfig重启时选择移动,即保留原始状态。

eth0      Link encap: Ethernet HWaddr 0Ѳ: 0C:29:DF:51:03

inet6 addr: fe80: :20c:29ff:fedf:5103/64 Scope:Link

UP BROADCAST RUNNING MULTICASTMTU: 1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:4 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueue len: 1000

RX bytes:0 (0.0 b) TX bytes:328 (328.0 b)

lo      Link encap:Local Loopback

inet addr:127.0.0.1Mask:255.0.0.0

inet6 addr: ::1/128 Scope :Host

UP LOOPBACK RUNNING MTU: 65536 Metric: 1

RX packets:12 errors:0 dropped:0 overruns:0 frame: 0

TX packets:12 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen: 0

RX bytes:720 (720.0 b) TX bytes:720 (720.0 b)

即实现了网卡名称的更改。

现今进行对centOS6.9进行重启,在弹出“此虚拟机已被移动或复制”提醒时选择【我已移动该虚拟机】,表示保留虚拟机原来的状态。

在主机192.168.30.128中进行mac地址的查看

[root@centos6 ~]#ifconfig

eth0   Link encap: Ethernet HWaddr 00:0C:29:E7::AA

inet addr:192.168.30.128 Bcast:192.168.30.255 Mask;255.255.255.0

inet6 addr: fe80::20c:29ff:fee1:f7aa/64 Scope:Link

UP BROADCAST RUNNING MULTICASTMTU: 1500 Metric:1

RX packets:112 errors:0 dropped:0 overruns:0 frame:0

TX packets:110 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen: 1000

RX bytes:15341 (14.9 kiB) TX bytes:12649 (12.3kiB)

lo     Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNINGMTU:65536 Metric:1

RX packets:8 errors:0 dropped:0 overruns:0 frame:0

TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)

现进行对centOS6.9复制得到相同的新虚拟机的启动,由于与原虚拟机完全相同,在启动时其Mac地址出现了冲突,故网卡无法启动,造成卡顿。

[root@centos6 ~]#ifconfig  //查看得到完全相同的Mac地址

eth0   Link encap: Ethernet HWaddr 00:0C:29:E7::AA

inet6 addr: fe80::20c:29ff:fee1:f7aa/64 Scope:Link

UP BROADCAST RUNNING MULTICASTMTU: 1500 Metric:1

RX packets:112 errors:0 dropped:0 overruns:0 frame:0

TX packets:110 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen: 1000

RX bytes:15341 (14.9 kiB) TX bytes:12649 (12.3kiB)

lo     Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNINGMTU:65536 Metric:1

RX packets:8 errors:0 dropped:0 overruns:0 frame:0

TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:480 (480.0 b) TX bytes:480 (480.0 b) //由于Mac地址冲突,导致其中此主机得不到IP地址

4.解决Mac地址冲突的问题

例如当搭建十个主机的网络,考虑到实际可能性,主机的搭建通常为虚拟机的复制而非手动搭建。此时为解决Mac地址冲突无法显示出IP地址的问题的操作如下:

点击设置->网络适配器(找到网卡)->高级->生成(新MAC地址)

需注意:由于在生产中使用的物理服务器并不会产生Mac地址冲突,故此类问题仅存在于虚拟机之中。

再次进行网卡驱动卸载的方式使其生效

[root@centos6 ~]#rthtool -i eth0

//查找网卡驱动名称

[root@centos6 ~]#ethtool  -i eth2

//查看eth2的驱动模块

driver: e1000    

//此为eth2驱动网卡模块名

version: 7.3.21-k8-NAPI

firmware-version:

bus-info: 0000:02:01.0

supports-statistics:yes

supports-test:yes

supports-eeprom-access:yes

supports-register-dump: yes

supports-priv-flags: no

[root@centos7 ~]#modprobe -r e1000    

//进行驱动模块的卸载。

[root@centos7 ~]#ifconfig     

// 查看IP地址和子网掩码

lo      Link encap:Local Loopback

inet addr:127.0.0.1Mask:255.0.0.0

inet6 addr: ::1/128 Scope :Host

UP LOOPBACK RUNNING MTU: 65536 Metric: 1

RX packets:12 errors:0 dropped:0 overruns:0 frame: 0

TX packets:12 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen: 0

RX bytes:720 (720.0 b) TX bytes:720 (720.0 b)

[root@centos6 ~]#cat /etc/udev/rules.d/70-persistent-net.rules

Link encap: Ethernet HWaddr 0Ѳ: 0C:29:DF:51:03

#This file was automatically generated by the /lib/udev/write_net_rules

#program,run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f(e1000)

SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR(address)=="00:0c:29:el:f7:aa",ATTR(type)=="1",KERNEL=="eth*",NAME="eth0"    

//旧Mac地址占用eth0

# PCI device 0x8086: 0x100f (e1000)

SUBSYSTEM=="net",ACTI0N=="add",DRIVERS=="?*",ATTRfaddress)=="00:50:56:3b:ef:87".ATTR(tvpe)"1".KERNEL=="eth*".NAME="eth0"  

//新Mac地址使用eth0

更为简单的更改Mac地址的方式:将/etc/udev/rules.d/70-persistent-net.rules这一文件进行删除

[root@centos6 ~]#rm -f/etc/udev/rules.d/70-persistent-net.rules  

//将此文件所对应进行修改

[root@centos6 ~]#ifconfig

eth1     Link encap:Ethernet. Hwaddr 00:50:56:3B:EF:87  //网卡重新卸载、加载模块

inet6 addr: fe80::250: 56ff: fe3b: ef87/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric :1

RX packets:0 errors:0 dropped:0 over runs:0 fr ame : 0

TX packets:3 errors:o dropped:0 overruns:0 carrier: 0

collisions:0 txqueue len: 1000

RX bytes:0(0.0 b)TX bytes:238 (230.0 b)

lo     Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope : Host

UP LOOPBACK RUNNINGMTU:65536 Metric :1

RX packets:24 errors:0 dropped:0 overruns:0 frame :0

TX packets:24 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueue len: 0

RX bytes:1672 (1672.0 KiB)TX bytes:1672 (1.6 KiB)

5.网卡名的修改

网卡名同样可自由更改、人为定制,其方法同样为:

1.卸载网卡驱动

2.进行网卡加载

3.查看网卡名的修改

相关文章
|
11月前
|
运维 网络协议 Linux
Linux巩固篇014-Linux DHCP 动态管理主机地址
纸上得来终觉浅,绝知此事要躬行
152 3
Linux巩固篇014-Linux  DHCP 动态管理主机地址
|
Linux 开发者
路由和 Linux 网卡配置实战 | 学习笔记(二)
快速学习路由和 Linux 网卡配置实战 。
154 0
路由和 Linux 网卡配置实战 | 学习笔记(二)
|
网络协议 Linux 网络架构
路由和 Linux 网卡配置实战 | 学习笔记(三)
快速学习路由和 Linux 网卡配置实战 .
566 0
|
网络协议 Linux 开发工具
路由和Linux网卡配置实战
一、动态主机配置协议DHCP 二、基本网络配置 三、CentOS 6、CentOS 7网卡名称的区别 三、CentOS 6网卡名称 四、CentOS 6网络配置方式 五、配置网络接口 六、route命令
路由和Linux网卡配置实战
|
网络协议 Linux 开发工具
|
域名解析 Linux
linux实战(13)企业实战静态ip地址配置
linux实战(13)企业实战静态ip地址配置
158 0
linux实战(13)企业实战静态ip地址配置