Linux网络管理
一、 前言
- 网络的作用就是用于多台主机互相通信的,早期的实现方式是给每个主机一个唯一标识(MAC地址),然后把它们都链接上同轴线缆进行的,但是这种解决方案的缺点也很明显,就是通信冲突的问题,后出现CSMA/CD(载波侦听、多路访问、冲突检测)机制,用来解决这个问题,实现逻辑就是每个主机在发送信号前,先在线缆上侦听有没有其它主机正进行通信,如果没有的话就发送信号,冲同检测就是通过边发信号边检测实现的,一旦发现冲突就会向后延迟一段时间而后再重复之前的过程。
- 交换机:对于大型的网络,多台主机争用同一个底层信道,CSMA/CD的机制仍然不够用。于是,人们就把一个大网络切割成多个小型网络,每个小型网络通过网桥进行通信,这也就是交换机的雏形,交换机可以解决冲突域的问题,它有一个表格,记录接口和主机MAC地址的对应信息,这样就可以将网络报文正确送达。
- 路由器:随着网络发展,交换机的制造成本越来越低,一台交换机所能接入的设备也就越来越多,这也就造成了一个小型网络的广播报文越来越多,为了切割广播域就诞生了路由器。既然切割了广播域,各广播域之间通信也就需要使用一个标识来完成,这个标识不能太扁平化,并且,需要一致的命名机制,于是就诞生了IP地址。
二、配置文件
1. 网络接口命名机制
centos 6
以太网接口使用eth[0、1、2],这样的方式进行命名
ppp网络使用pp[0、1、2]命名方式Centos7
网卡
(1)如果固件或BIOS为主板上集成的设备提供的索引信息可用,且可预测,则根据此索引命名
(2)如果Firmware或BIOS为PCI-E扩展槽提供的索引信息可用,且可预测,则根据此索引命名
(3)如果硬件接口的物理位置信息可用,则根据此信息进行命名
(4)如果用户指定,也可根据MAC命名
(5)上述均不可用,才会使用eth0
2. 名称组成格式
接口的类型标识符+名称类型
- 接口的类型标识符
en:ethernet,以太网接口
wl:wlan,无线局域网接口
ww:wwan,无线关于网设备 - 名称类型
o<index>:onboard,主板上集成的设备与其索引号命名
s<index>:slot,插拔式的网卡,使用扩展槽的索引号命名
x<index>:基于mac地址命名
p<index>:基于总线命名
3. 网卡设备的命名过程
(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
文件中的规则进行命名
4. 回归传统命名方式
(1)编辑/etc/default/grub
,在文件中GRUB_CMDLINE_LINUX=
关键字中加入"net.ifnames=0”
参数
(2)为grub2生成配置文件,使用命令grub2-mkconfig -o /etc/grub2.cfg
(3)重启系统
5. 配置文件位置
/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的网卡命名机制进行更改
6. 配置文件中关键字的意义
/etc/sysconfig/network-scripts/ifcfg-IF_name
注意网卡别名不能使用dhcp分配地址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/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
三、网络配置命令
1. ifconfig命令
用来实现网络信息显示和配置的命令,配置完毕后立即生效,命令格式为:
ifconfig [interface]
ifconfig [interface] address
混杂模式:目标mac即便不是自己,收到的报文也会接受一份,在网络抓包时很有用[-]promisc
2. route命令
命令格式:route [option] [add|del] [-net|-host] target/prefix [netmask] [gw GW] [dev ifc]
|
示例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
3. dns设定
编辑配置文件/etc/resolv.conf
,在文件中使用nameserver
关键字指定,可以同时指定多个
|
设置完毕后验证dns解析功能
- 正解:
FQDN --> IP
,使用命令dig -t A FQDN
- 反解:
IP --> FQDN
,使用命令dig -x IP
4. ip命令
命令格式:ip [ OPTIONS ] OBJECT { COMMAND | help }
|
5. nmcli命令
命令格式:nmcli [OPTIONS...] {OBJECT} [COMMAND] [ARGUMENTS...]
|
四、网络状态查看
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]:显示指定接口
2. ss命令
命令格式:ss [options] [ FILTER ]
|
|
五、 文本窗口配置网络
system-config-network-tui setup
nmtui