开发者学堂课程【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服务器,申请地址进行通讯。此过程为自动化,不需要人为进行干预。此过程通过四部分实现。
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= "eth
1
"
//当前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=" eth
0
"
文件更改后网卡通常并不会立刻生效,欲使其生效,由于重启在部分情况下并不现实,进行网卡驱动的卸载也同样能够到达此目的。
注意:
在文件为可执行的脚本命令时,能够进行source命令的使用。并非所有配置文件更改的生效都属于source命令,且由于/etc/udev/rules.d/70-persistent-net.rules此文件属于系统的配置文件,而非脚本,故当前情况并不能使用source命令。
3.查看网卡驱动名称的命令
欲进行网卡驱动的卸载,首先应知晓网卡驱动的名称。网卡驱动名称的查看具有两个方法。
方法1:demesg
[root@centos7 ~]#demesg
//此命令针对所有硬件信息
[root@centos7 ~]#
dmesg |grep -i eth
//进入所有网卡信息后,进而进行寻找网卡驱动硬件的查看
e
1000
0000:02:01.0:
eth0:(PCI:66MHz:32-bit)
00:0c:29:df:51:03
e
1000 0000:02:01.0: eth0:Intel(R) PR
0
/1000 Network Connection
dev:_ renamed network interface eth0 to eth2
e
1000
:
eth2
NI
C Link is Up 10
0
0 Mbps Full Duplex, Flow Control: None
//e1000即驱动网卡的模块名
B021q: adding VLAN 0 to HW filter on device eth2
e
th2: no IPv6 routers present
方法2:ethtool
[root@centos7 ~]#
ethtool
-i eth
2
//查看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
;2
55.255.255
.0
inet6 addr:
fe80::20c
:29
ff:fe
e
1: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@centos
6
~]#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*",NA
ME="
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.查看网卡名的修改