Linux网络管理

Linux网络管理

1.网络基础概述

1)centos7 网卡命名规则

传统的 CentOS/RHEL 系统以 eth* 名来命名网卡, 在 CentOS/RHEL7 系统开始使用新的命名规则:

基于固件、设备结构、设备类型

1.由两个字母开头标示固件

以太网网卡以 en 开头

无线网卡以 wl 开头

2.设备结构

o 表示板载网卡 (on-board)

s 热插拔结构 (hotplug slot)

p PCI 插槽位置

2)centos7修改网卡为eth0

修改网卡配置文件

[root@server~]# cd /etc/sysconfig/network-scripts/
[root@server network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@server network-scripts]# vim ifcfg-eth0
NAME=eth0
DEVICE=eth0

默认centos7不支持ifconfig命令安装net-tools包

ifconfig、route、arp 和 netstat 等命令行工具( 统称为 net-tools )来配置网络功能,解决网络故障。

[root@server~]# yum install net-tools
[root@server~]# ifconfig eth0 #再次查看网卡信息
eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.12 netmask 255.255.255.0 broadcast 192.168.56.255

2.网络接口信息查看

查看网络接口配置信息

查看当前处于活动状态的网络接口

[root@server ~]# ifconfig

仅查看eth0网卡状态信息

[root@server ~]# ifconfig eth0 

查看所有网卡状态信息, 包括禁用和启用

[root@server ~]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 10.0.0.200 netmask 255.255.255.0 broadcast 10.0.0.255
 inet6 fe80::20c:29ff:fee0:c79a prefixlen 64 scopeid 0x20<link>
 ether 00:0c:29:e0:c7:9a txqueuelen 1000 (Ethernet)
 RX packets 5172 bytes 431877 (421.7 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 5671 bytes 6858340 (6.5 MiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

网卡配置信息含义如下:

UP: 网卡处于活动状态
BROADCAST: 支持广播
RUNNING: 网线已接入
MULTICAST: 支持组播
MTU: 最大传输单元(字节),即此接口一次所能传输的最大封包
inet: 显示IPv4地址行
inet6: 显示IPv6地址行
link/enther: 指设备硬件(MAC)地址
txqueuelen: 传输缓存区长度大小
RX packets: 接收的数据包
TX packets: 发送的数据包
errors: 总的收包的错误数量
dropped: 由于各种原因, 导致拷贝在内存过程中被丢弃
collisions: 网络信号冲突情况, 值不为0则可能存在网络故障

其他查看ip指令

[root@server ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,①UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state ①UP 
qlen 1000
 ②link/ether 00:0c:29:e0:c7:9a brd ff:ff:ff:ff:ff:ff
 ③inet 10.0.0.200/24 brd 10.0.0.255 scope global ens32
 valid_lft forever preferred_lft forever
 ⑤inet6 fe80::20c:29ff:fee0:c79a/64 scope link
 valid_lft forever preferred_lft forever

①: 活动接口为UP

②: Link行指定设备的MAC地址

③: inet行显示IPv4地址和前缀

④: 广播地址、作用域和设备名称在此行

⑤: inet6行显示IPv6信息

ip命令也可用于显示关于网络性能的统计信息, 比如: 发送和传送的数据包、错误、丢弃

[root@server ~]# ip -s link show eth0 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP 
mode DEFAULT group default qlen 1000
 link/ether 00:0c:29:e0:c7:9a brd ff:ff:ff:ff:ff:ff
 RX: bytes packets errors dropped overrun mcast 
441897 5280 0 0 0 0
 TX: bytes packets errors dropped carrier collsns 
6870050 5760 0 0 0 0

ip 指令与ifconfig指令的区别

ifconfig 查看所有网卡状态信息,包括禁用和启用

两个命令的功能不一样 ifconfig命令是查看配置网卡信息 ip命令是查看配置路由信息 ifconfig能做的ip未必能做,ip能做的ifconfig也未必能做,只不过两者刚好都提供了查看ip地址栏方法而已。

3.NetworkManager管理网络

RHEL/CentOS7 系统默认使用 NetworkManager 来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。

NetworkManager 提供的命令行和图形配置工具对网络进行设定, 设定保存的配置文件

在 /etc/sysconfig/network-scripts 目录下, 工具有 nmcli, nmtui, nm-connect-editor

device :物理设备, 例如 enp2s0,virbr0,team0
connection :连接设置, 具体网络配置方案
​
1.不同的网络连接配置可以应用到相同的物理设备,但物理设备同一时间只能应用其中某个网络连接
2.针对物理网络接口, 设定不同的网络连接, 在不同的使用环境中激活相应的网络连接,就可以实现网络配置信息的自动切换了

1.使用nmcli命令查看设备以及连接情况

nmcli networkmanager 网路管理工具 nmcli 命令行管理工具 nmtui 命令行伪图形化管理工具

安装bash-completion,实现tab补全

[root@server ~]# yum install -y bash-completion

查看设备状态

[root@server ~]# nmcli device 
DEVICE TYPE STATE CONNECTION 
eth0 ethernet connected eth0 
lo loopback unmanaged --

指定查看设备的详细状态

[root@server ~]# nmcli device show eth0 
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:E0:C7:9A

查看连接状态

[root@server ~]# nmcli connection 
NAME UUID TYPE DEVICE 
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 

2.使用nmcli创建新的连接

新增一个静态地址的连接, 配置IP、掩码、网关等

静态地址添加流程

1.添加一个连接的配置

2.给连接指定一个名称

3.连接配置绑定物理网卡

4.网卡的类型,网卡开机启动

5.网卡通过什么途径获取地址(静态、dhcp)

6.配置对应的IP地址、掩码、网关、DNS

网络策略案例

案例1:新增网卡,修改网卡的参数为: IP:202.103.1.10/24 GW:202.103.1.1 DNS:223.5.5.5 223.6.6.6

nmcli connection add \ # 创建一个网络策略 con-name ens38 ifname ens38 \ con-name 添加网络策略名称 ifname 指定设备 type ethernet \ #接口类型 autoconnect yes \ #自动开关 一定要输入 ipv4.method manual \ #选择网络类型 dncp manual ipv4.addresses 202.103.1.10/24 \ #配置ip地址 ipv4.gateway 202.103.1.1 \ #配置网关 ipv4.dns 223.5.5.5 +ipv4.dns 223.6.6.6 \ #添加dns

 


正在上传…重新上传取消

案例2:新增一个ens38的网路策略修改参数为 IP:100.1.1.10/24 GW:100.1.1.1 DNS:223.5.5.5 223.6.6.6

nmcli connection add con-name ens38-100.1.1.1 ifname ens38 autoconnect yes type ethernet ipv4.method manual ipv4.addresses 100.1.1.10/24 ipv4.gateway 100.1.1.1 ipv4.dns 223.5.5.5 +ipv4.dns 223.6.6.6

 

nmcli connection down ens38 && nmcli connection up ens38-10.1.1.1

案例3:新增一个网络策略,网卡信息为: ip:1.1.1.1/24 gateway:1.1.1.254 dns:8.8.8.8 dns:5.5.5.5

nmcli connection add con-name ens37-1.1.1.1 ifname ens37 type ethernet autoconnect yes ipv4.method manual ipv4.addresses 1.1.1.1/24 ipv4.gateway 1.1.1.254 ipv4.dns 8.8.8.8 +ipv4.dns 5.5.5.5

 

案例4:新增一个网络策略,添加一个dncp的网络策略ens38-dhcp

nmcli connection add con-name ens37-dhcp ifname ens37 type ethernet autoconnect yes ipv4.method auto

 


正在上传…重新上传取消

3.使用nmcli修改已有的网络连接

1.取消开机自动激活网络

[root@server ~]# nmcli connection modify eth1-static autoconnect no

2.修改连接的dns

[root@server ~]# nmcli connection modify eth1-static ipv4.dns 8.8.8.8

3.给连接再增加dns,有些设定值通过+/-可以增加或则移除设定

[root@server ~]# nmcli connection modify eth1-static +ipv4.dns 8.8.8.8

4.替换连接的静态IP和默认网关

[root@server ~]# nmcli connection modify eth1-static ipv4.addresses 172.16.2.10/24 ipv4.gateway 172.16.2.254

5.添加一个没有默认网关的IP

[root@server ~]# nmcli connection modify eth1-static +ipv4.addresses 10.0.0.201/24 

6.修改完毕,nmcli仅仅修改并保存了配置,要激活更改,需要重激活连接

[root@server ~]# nmcli connection down eth1-static && nmcli connection up eth1-static
​
删除自建的connection
[root@server ~]# nmcli connection delete eth1-static

案例

案例4:修改ens38-100.1.1.1的IP地址为100.1.1.111/24 nmcli connection modify ens38-100.1.1 ipv4.addresses 100.1.1.111

 

案例5:修改ens38-100.1.1.1的ip地址为100.1.1.222/24 修改策略名为ens38-100.1.1.222

nmcli connection modify ens38-10.1.1 con-name ens38-10.1.1.222

 

4.使用nmcli管理网络 /etc/sysconfig/network-scripts/配置文件

1.新增物理网卡

2.拷贝配置文件(可以和设备名称一致)

3.修改配置,UUID、连接名称、设备名称、IP地址等

4.重新加载网络配置

5.启用连接,并检查

创建新网卡配置文件
[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none           #none表示手动获取,dhcp表示dhcp获取
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
DEVICE=eth1
ONBOOT=yes
#UUID=                #注释掉,系统会自动生成,如果存在会导致UUID冲突
IPADDR=192.168.100.10
PREFIX=24 #PREFIX和NETMASK不能共存
#NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=223.5.5.5
DNS2=8.8.8.8
​
//手工编辑正在使用的配置文件,需要重载配置,然后重启
[root@server ~]# nmcli connection reload
[root@server ~]# nmcli connection down eth1 && nmcli connection down eth1

5.使用原生Network管理网络

CentOS/RHEL 的网络配置文件默认目录为 /etc/sysconfig/network-scripts

默认第一块物理网卡配置文件为 ifcfg-eth0 , 如果有第二块物理网卡, 配置文件则为 ifcfg-eth1 以此类推。 注意: 如果新增物理网卡没有配置文件,可选择复制系统默认的进行修改。

  1. 删除 NetworkManger 建立连接, 同时停止 NetworkManger 服务

    [root@localhost network-scripts]# systemctl disable NetworkManager
    [root@localhost network-scripts]# systemctl stop NetworkManager
  2. 添加一块物理网卡, 然后新增网络连接配置文件

     

  3. 复制配置eth0配置文件为eth1

[root@server ~]# cp /etc/sysconfig/network-scripts/ifcfg-{eth0,eth1}

编辑网卡配置文件

[root@nginx ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.56.12
NETMASK=255.255.255.0
GATEWAY=192.168.56.2
DNS1=223.5.5.5

重启network网络服务加载网络
[root@server ~]# systemctl restart network.service
//选项 描述
BOOTPROTO=none //获取地址方式[none|dhcp|static]
IPADDR=192.168.56.12 //固定IP地址
PREFIX=24 //掩码
GATEWAY=192.168.56.2 //网关
DNS1=192.168.56.2 //域名解析
DEVICE=eth1 //设备名称
NAME="eth1" //连接名称
ONBOOT=yes //开机自启动
DEFROUTE=yes //将接口设定为默认路由[yes|no]
USERCTL=yes //允许非root用户管理接口[yes|no]

案例

案例1:新增网卡,修改网卡的参数为: IP:192.168.1.10/24 GW:192.168.1.1 DNS:223.5.5.5 223.6.6.6、 1.复制其他网卡信息

cd /etc/sysconfig/network-scripts/ cp /etc/sysconfig/network-scripts/ifcfg-ens3{3,7}

 

2.修改ens37网卡信息

vim ifcfg-ens37

TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens37" #网卡名称 DEVICE="ens37" #设备名称 ONBOOT="yes" IPADDR="192.168.1.10" #ip地址 PREFIX="24" #子网掩码 GATEWAY="192.168.1.1" #网关 DNS1="223.5.5.5" #DNS DNS2=223.6.6.6 IPV6_PRIVACY="no"

 

3.ifdown ens36 && ifup ens36 重启网卡

案例2:新增网卡,修改网卡的参数为: IP:172.16.1.10/16 GW:172.16.1.1 DNS:223.5.5.5 223.6.6.6

步骤1:添加网卡 步骤2:查看网卡设备名以及网卡名 ifconfig

 

步骤3:复制ens36的网卡信息 cd /etc/sysconfig/network-scripts/ cp /etc/sysconfig/network-scripts/ifcfg-ens3{3,7}

 

步骤4:修改网卡信息 vim ifcfg-ens37

TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens37" DEVICE="ens37" ONBOOT="yes" IPADDR="172.16.1.10" PREFIX="16" GATEWAY="172.16.1.1" DNS1="223.5.5.5" DNS2=223.6.6.6 IPV6_PRIVACY="no"

 

步骤5:将网卡重新启动 ifdown ens37 && ifup ens37

 

6.Route设置路由以及网卡

Linux 主机之间是使用IP进行通信,假设A主机和B主机同在一个网段内且网卡都处于激活状态,则A具备和B直接通信的能力,但如果A主机和B主机处于两个不同的网段,则A必须通过路由器才能和B通信,路由器术语IT设备的基础设施,每一个网段都应该至少有一个网关

增加网段路由
[root@server ~]# route add -net 192.168.90.0/24 gw 192.168.56.254
[root@server ~]# route add -net 0.0.0.0/0 gw 192.168.56.254
​
删除网段路由
[root@server ~]# route del -net 192.168.90.0/24
[root@server ~]# route del -net 0.0.0.0/0 gw 192.168.56.254
​
增加主机路由
[root@server ~]# route add -host 192.168.70.1 gw 192.168.56.254
​
删除主机路由
[root@server ~]# route del -host 192.168.70.1/32
​
查看当前路由表
route -n

如果重启,配置信息就不存在,必须将这种配置信息写道相关的配置文件中才能永久保存

7.主机名设定与名称解析服务

生产环境中必须配置主机名,同时主机名也需要遵循一定的规范,比如:

公有云: 地区-项目-业务-服务-节点-地址
bj-shop-register-nginx-node1-192.168.56.13
bj-med-pay-mysql-master01-192.168.56.11
bj-med-pay-mysql-slave01-192.168.56.12

1)主机名查看与配置

hostname命令可以查看主机名, 也可以用于临时修改主机名
[root@server ~]# hostname "test"
CentOS7系统建议使用hostnamectl修改和查看主机名
​
设定永久名称
[root@server ~]# hostnamectl set-hostname nginx.node1.server.com
​
永久修改主机名会修改/etc/hostname文件
[root@server ~]# cat /etc/hostname
nginx.node1.server.com
​
检查状态信息
[root@server ~]# hostnamectl
 Static hostname: nginx.node1.server.com
 Icon name: computer-vm
 Chassis: vm
 Machine ID: af0cdce735c041eab3a8df17dd08c112
 Boot ID: 72d7e90f0edb4880978eb18e73d4764c
 Virtualization: vmware
 Operating System: Red Hat Enterprise Linux server 7.4 (Maipo)
 CPE OS Name: cpe:/o:redhat:enterprise_linux:7.4:GA:server
 Kernel: Linux 3.10.0-693.el7.x86_64
 Architecture: x86-64

2)DNS客户端配置

letc/hosts文件,加快域名解析,方便小型局域网用户使用内部设备

假设公司有AB两台主机,B主机添加的IP为192.168.69.12,为了方便访问B主机,可以在A主机的/etc/hosts文件中添加一条记录

192.168.69.12 hostB

完成后在A主机上使用ping命令测试到B主机的连通性,如果没有添加记录,将会显示unknown hosthostB的错误

使用hosts文件仅能为有限的主机记录,无法将所有已知的主机名记录到hosts文件中,因此当今几乎所有的主机都在使用DNS来解析地址, DNS是全互联网上主机名及其IP地址对应关系的数据库,配置文件/etc/resolv.conf

#[root@server ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search node1.server.com
nameserver 211.161.122.2

8.网络检测工具与故障排查

ping命令的目的在于测试另一台主机是否可达, 如果ping不到某台主机,就说明对方主机已经出现了问题, 但是不排除由于链路中的防火墙、ping被丢弃等原因造成ping不通的情况。

-c 指定ping的次数
-i 指定ping包的发送间隔
-w 如果ping没有回应, 则在指定超时时间后退出

host/nslookup命令是用来查询DNS记录的,如果使用域名作为host的参数, 命令返回该域名

[root@server ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 111.13.100.91
www.a.shifen.com has address 111.13.100.92
[root@server yum.repos.d]# nslookup www.baidu.com
Server: 223.5.5.5
Address: 223.5.5.5#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 111.13.100.91
Name: www.a.shifen.com
Address: 111.13.100.92

trace out 命令是用来路由跟踪,检测网络故障出现在ISP运营商或是对端服务无法响应

[root@server ~]# yum install -y traceroute
[root@server yum.repos.d]# traceroute www.baidu.com
traceroute to www.baidu.com (111.13.100.91), 30 hops max, 60 byte packets
1 gateway (10.0.0.254) 0.209 ms 0.264 ms 0.203 ms
2 * * *
3 * * *
4 * * *

ss/netstat命令查看网络连接状态

-t tcp协议的连接
-a 所有状态的连接
-n 数字化输出
-u upd协议的连接
-l 处于listen状态的连接
-p 输出相应进程的名字
1. Show TCP sockets (LISTEN)
[root@server~]# ss -tnl
[root@server~]# ss -tnl |grep :80 
[root@server~]# ss -tnl |grep :21 
[root@server~]# ss -atn
[root@server~]# ss -atn |grep :22
​
常见端口
http 80/tcp 
https 443/tcp 
ssh 22/tcp 
ftp 20,21/tcp
mysql 3306/tcp
rsync 873/rsync
redis 6379/tcp

9 网络故障排查

网络故障分为硬件\软件故障

网卡损坏

链路故障

网卡驱动不兼容

网络排查思路

1.ping本地回环口, 确定本机TCP/IP协议栈是否正常

2.ping本机IP地址, 确定本地设备以及驱动是否正常

3.ping同网段主机, 确定二层网络是否正常工作

4.ping网关地址, 确定本地与网络是否正常

5.ping公网地址, 确定本地路由是否正常

6.ping公网域名, 确定DNS客户端是否正常

服务故障排查思路

1.使用telnet检测端口是否开放

2.检查服务端防火墙以及SElinux

3.检查相应的权限是否配置正常

4.检查日志是否有异常

5.检查完毕后持续测试

建议: 所有的排查思路都从OSI七层模型由下往上逐一进行排查(学会看日志)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值