- 网络的作用就是用于多台主机互相通信的,早期的实现方式是给每个主机一个唯一标识(MAC地址),然后把它们都链接上同轴线缆进行的,但是这种解决方案的缺点也很明显,就是通信冲突的问题,后出现CSMA/CD(载波侦听、多路访问、冲突检测)机制,用来解决这个问题,实现逻辑就是每个主机在发送信号前,先在线缆上侦听有没有其它主机正进行通信,如果没有的话就发送信号,冲同检测就是通过边发信号边检测实现的,一旦发现冲突就会向后延迟一段时间而后再重复之前的过程。
- 交换机:对于大型的网络,多台主机争用同一个底层信道,CSMA/CD的机制仍然不够用。于是,人们就把一个大网络切割成多个小型网络,每个小型网络通过网桥进行通信,这也就是交换机的雏形,交换机可以解决冲突域的问题,它有一个表格,记录接口和主机MAC地址的对应信息,这样就可以将网络报文正确送达。
- 路由器:随着网络发展,交换机的制造成本越来越低,一台交换机所能接入的设备也就越来越多,这也就造成了一个小型网络的广播报文越来越多,为了切割广播域就诞生了路由器。既然切割了广播域,各广播域之间通信也就需要使用一个标识来完成,这个标识不能太扁平化,并且,需要一致的命名机制,于是就诞生了IP地址。
- centos 6
以太网接口使用eth[0、1、2],这样的方式进行命名
ppp网络使用pp[0、1、2]命名方式 - Centos7网卡
(1)如果固件或BIOS为主板上集成的设备提供的索引信息可用,且可预测,则根据此索引命名
(2)如果Firmware或BIOS为PCI-E扩展槽提供的索引信息可用,且可预测,则根据此索引命名
(3)如果硬件接口的物理位置信息可用,则根据此信息进行命名
(4)如果用户指定,也可根据MAC命名
(5)上述均不可用,才会使用eth0
接口的类型标识符+名称类型
- 接口的类型标识符
en:ethernet,以太网接口 wl:wlan,无线局域网接口 ww:wwan,无线关于网设备
- 名称类型
o
:onboard,主板上集成的设备与其索引号命名 s :slot,插拔式的网卡,使用扩展槽的索引号命名 x :基于mac地址命名 p :基于总线命名
(1)首先udev机制能够将内核识别的每一个硬件设备及其相关信息通过/sys伪文件系统向用户空间进行输出,接着用户空间的工具根据这些信息判断出设备型号,并根据这些型号关联到特性驱动或者加载额外的辅助功能,那么在网卡命名过程中,就是udev就是利用一个辅助工具程序/lib/udev/rename_device ,这个工具辅助工具程序会根据/usr/lib/udev/rules.d/60-net.rules文件中的规则,去查询/etc/sysconfig/network-scripts/目录下的网卡配置文件,然后参照网卡配置文件去命名,如果命名失败则进行第二步
(2) 如果没有在内核启动过程中向内核传递biosdevname=0参数,则biosdevname程序会根据/usr/lib/udev/rules.d/71-biosdevname.rules进行命名
(3)通过udev机制检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description文件中的规则进行命名
(1)编辑/etc/default/grub,在文件中GRUB_CMDLINE_LINUX=关键字中加入"net.ifnames=0”参数
(2)为grub2生成配置文件,使用命令grub2-mkconfig -o /etc/grub2.cfg
(3)重启系统
- /etc/sysconfig/network-scripts/ifcfg-IF_name,文件中可修改IP地址,子网掩码、网关地址和DNS相关
- /etc/sysconfig/network-scripts/route-IF_name,路由相关的配置文件,默认不存在
- /etc/sysconfig/network:主机名称配置文件
- /etc/udev/rules.d/70-persistent-net.rules:此文件可以对centos6的网卡命名机制进行更改
- /etc/sysconfig/network-scripts/ifcfg-IF_name
NAME="" :网络接的名称 DEVICE="" :此配置文件关联的设备 HWADDR="" :对应设备的MAC地址 BOOTPROTO="" :激活此设备时使用的地址配置协议,可选[ dhcp | static | none | bootp ] NM_ConTROLLED="" :此网卡是否接受NM控制,建议Centos6建议为no onBOOT="" :在操作系统引导时,是否激活此设备 TYPE="" :网络接口工作时的接口类型 [ Ethernet | Bridge ] UUID="" :设备的唯一标识 IPADDR="" :手动指明地址 NETMASK="" :子网掩码 GATEWAY="" :默认网关 DNS1="" :指定DNS服务器指向,此处优先级比/etc/resolv.conf高 USERCTL="" :普通用户是否可激活此设备 PEERDNS="" :如果BOOTPROTO的值为dhcp,那么是否允许dhcp分配的dns指向覆盖/etc/resolv.conf的原有内容 PEERROUTES="" :是否通过dhcp获取路由信息 DEFROUTE="" :默认路由 IPV4_FAILURE_FATAL="" :ipv4如果出现问题的话,是否认为这是致命错误 IPV6INIT="" :是否启用ipv6
注意网卡别名不能使用dhcp分配地址 - /etc/sysconfig/network-scripts/route-IF_name
此文件中可以使用两种定义格式格式1 ADDRESS0=ip地址 NETMASK0=netmask GATEWAY0=gateway_ip ADDRESS1=ip地址 NETMASK1=netmask GATEWAY1=gateway_ip
格式2 target via GW
- /etc/sysconfig/network
NETWORKING=: 是否允许此主机使用网络 HOSTNAME=: 设置主机名称
- /etc/udev/rules.d/70-persistent-net.rules
设置centos6的网卡命名机制,设置完毕后需要对网卡驱动进行拆除
拆除命令modprobe -r e1000
安装命令modprobe e1000
用来实现网络信息显示和配置的命令,配置完毕后立即生效,命令格式为:
ifconfig [interface]
ifconfig [interface] address
混杂模式:目标mac即便不是自己,收到的报文也会接受一份,在网络抓包时很有用[-]promisc
命令格式:route [option] [add|del] [-net|-host] target/prefix [netmask] [gw GW] [dev ifc]
option -n:不反解
示例1:添加目标为192.168.2.100的主机路由
~]# route add -host 192.168.2.100/32 gw 192.168.2.254 dev ens33
示例2:添加目标为192.168.3.0的网络路由
~]# route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.254 dev ens33
示例3:添加默认路由
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.2.254 dev ens33
~]# route add default gw 192.168.2.254
示例4:删除路由
~]# route del -net 0.0.0.0 gw 192.168.2.254
~]# route del -host 192.168.2.100
编辑配置文件/etc/resolv.conf,在文件中使用nameserver关键字指定,可以同时指定多个
nameserver DNS_SERVER_IP1 nameserver DNS_SERVER_IP2 nameserver DNS_SERVER_IP3
设置完毕后验证dns解析功能
- 正解:FQDN --> IP,使用命令dig -t A FQDN
- 反解:IP --> FQDN,使用命令dig -x IP
命令格式:ip [ OPTIONS ] OBJECT { COMMAND | help }
object:
link {COMMAND}
set dev DEV_NAME up|down:指定激活或禁用指定接口
show [dev DEV_NAME|up]:显示设备简要属性
broadcast:广播
multicast:组播
mtu:最大传输单元
qlen:传输队列
link/ether:mac地址
brd:广播地址
help:帮助
addr {COMMAND}
show [DEV_NAME|scope|to PREFIX|label PATTER]:显示指定设备的信息
add IP/PREFIX dev DEV [label ‘name’]:添加地址,可指定别名
del IP/PREFIX dev DEV:删除地址
flush [DEV_NAME]:清除指定设备地址
scope VALUE:
global:全局有效
link:仅在当前接口有效
host:仅主机内部有限
route:
add {ip/prefix} {via ip} [dev DEV_NAME]:
show:
del {ip/prefix} {via ip} [dev DEV_NAME]:
flush:
5. nmcli命令
命令格式:nmcli [OPTIONS...] {OBJECT} [COMMAND] [ARGUMENTS...]
object:
(1) device
status:显示连接状态
show [DEV]:显示详细信息
connect DEV:启用链接
disconnect DEV:禁用链接
(2) connection
show:显示当前连接
up DEV:
down DEV:
modify DEV [+|-]setting ip
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
(3) general:显示各类网络接口的链接状态
(4) help:帮助信息
四、网络状态查看
1. netstat命令
可以显示网络链接、路由表、接口数据统计、地址伪装链接、组播成员关系
- 功能1:显示网络连接相关
命令格式:netstat [options]-t:显示tcp协议的相关链接 -u:显示udp协议的相关链接 -n:不反解IP地址 --numeric-hosts:不反解主机名 --numeric-ports:不反解端口 -a:显示所有连接 -w:显示裸套接字的相关链接,裸套接字意为不经过传输层,由应用层直接调用IP来实现数据传输的 -l:显示监听状态的链接 -e:扩展格式的链接信息 -p:显示与此链接相关的进程号
- 功能2:显示内核路由表信息
-r:显示内核路由表 -n:不反解
- 功能3:显示接口统计数据
-i:显示所用接口 -I[IFC_NAME]:显示指定接口
命令格式:ss [options] [ FILTER ]
option: -t:显示tcp相关链接 -u:显示udp相关链接 -x:unix sock相关 -n:不反解 -a:显示所有连接 -w:显示裸套接字相关链接 -l:显示监听状态链接 -e:扩展格式 -p:显示相关的进程号 -m:内存使用情况 -o:显示计时器信息
filter state ESTABLISHED:显示已建立的链接 dport = :22 :通过目标端口过滤链接 sport = :22 :通过源端口过滤链接五、 文本窗口配置网络
- system-config-network-tui setup
- nmtui



