网络管理基础

Network interface names

Traditionally, network interfaces in Linux are enumerated as eth0, eth1, eth2, and so on. However, the mechanism which
sets these names can cause changes to which interface gets which name as devices are added and removed.
The default naming behavior in Red Hat Enterprise Linux 7 is to assign fixed names based on firmware, device topology,
and device type.

Interface names have the following characters:
   Ethernet interfaces begin with en, WLAN interfaces begin with wl, and WWAN interfaces begin with ww.
   The next character(s) represents the type of adapter with an o for on-board, s for hotplug slot, and p for PCI geographic location.
Not used by default but also available to administrators, an x is used to incorporate a MAC address.
   Finally, a number N is used to represent an index, ID, or port.
   If the fixed name cannot be determined, the traditional names such as ethN will be used.

For example, the first embedded network interface may be named eno1 and a PCI card network interface may be named enp2s0.
The new names make it easier to distinguish the relationship between a port and its name if the user knows both, but the
trade off is that users cannot assume a system with one interface calls that interface eth0.

使用NetworkManager管理网络

网络管理器(NetworkManager)是一个动态网络的控制器与配置系统,它用于当网络设备可用时保持设备和连接开启并激活
默认情况下,CentOS/RHEL 7 已安装网络管理器,并处于启用状态。

device        设备,物理设备     例如enp2s0,virbr0,team0
connection    连接,逻辑设置     指的是一套具体配置方案
多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。
这样的好处是针对一个网络接口,可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应的connection

NetworkManager提供的工具
nmcli, nmtui, nm-connect-editor

1. 方法一: 修改ip/netmask/dns/gateway[了解]
[root@CentOS7 ~]# nmcli connection add con-name enp2s0-auto autoconnect yes ifname enp2s0 type ethernet
[root@CentOS7 ~]# nmcli connection add con-name enp2s0-gun autoconnect yes ifname enp2s0 type ethernet ip4 10.10.10.10/24 gw4 10.10.10.254
[root@CentOS7 ~]# nmcli connection show enp2s0-auto |grep ipv4.me
ipv4.method:                            auto
[root@CentOS7 ~]# nmcli connection show enp2s0-gun |grep ipv4.me
ipv4.method:                            manual
[root@CentOS7 ~]# ls /etc/sysconfig/network-scripts/
ifcfg-enp2s0          ifdown-ippp    ifdown-TeamPort  ifup-ipv6    ifup-Team
ifcfg-enp2s0-auto  ifdown-ipv6    ifdown-tunnel    ifup-isdn    ifup-TeamPort
ifcfg-enp2s0-gun   ifdown-isdn    ifup                   ifup-plip    ifup-tunnel
[root@CentOS7 ~]# nmcli connection up enp2s0-auto
[root@CentOS7 ~]# nmcli connection delete enp2s0-auto
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun ipv4.method a
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun ipv4.method m
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun +ipv4.addresses 20.20.20.20/24
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun +ipv4.dns 114.114.114.114
[root@CentOS7 ~]# nmcli connection show enp2s0-gun |grep ipv4.add
ipv4.addresses:                         10.10.10.10/24, 20.20.20.20/24

2. 方法二:修改ip/netmask/dns/gateway
[root@CentOS7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp2s0
NAME="enp2s0"
DEVICE="enp2s0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
IPADDR=172.16.120.246
PREFIX=24
IPADDR1=192.168.200.246
PREFIX1=24
GATEWAY=172.16.120.254
DNS1=8.8.8.8
DNS2=114.114.114.114
[root@CentOS7 ~]# nmcli con reload
[root@CentOS7 ~]# nmcli con down enp2s0; nmcli con up enp2s0

注:删除自建的连接connection

不使用NetworkManager管理网络

aliyun
[root@aliyun ~]# nmcli connection delete enp2s0-auto        
[root@aliyun ~]# systemctl disable NetworkManager
[root@aliyun ~]# systemctl stop NetworkManager
[root@aliyun ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
  Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
  Active: inactive (dead)

[root@aliyun ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
IPADDR=192.168.122.169
PREFIX=24
TYPE=Ethernet
[root@aliyun ~]# systemctl restart network.service


以下配置跟NetworkManager无关:
1. 修改主机名/etc/hostname
# hostnamectl set-hostname CentOS7.example.com
# cat /etc/hostname
# reboot

2. 配置名字解析Configuring name resolution
a. hosts
[root@CentOS7 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1            localhost localhost.localdomain localhost6 localhost6.localdomain6
119.75.218.70   www.baidu.com
[root@CentOS7 ~]# getent hosts www.baidu.com
119.75.218.70   www.baidu.com

b. resolv.conf DNS
[root@CentOS7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
[root@CentOS7 ~]# yum -y install bind-utils
[root@CentOS7 ~]# host www.sina.com
www.sina.com is an alias for us.sina.com.cn.
us.sina.com.cn is an alias for wwwus.sina.com.
wwwus.sina.com has address 66.102.251.33

基本的网络测试工具

[root@CentOS7 ~]# ip a
[root@CentOS7 ~]# ip a s eth0
[root@CentOS7 ~]# ip route
[root@CentOS7 ~]# ip neigh
[root@CentOS7 ~]# hostname
[root@CentOS7 ~]# ping www.baidu.com
[root@CentOS7 ~]# ping -c2 www.baidu.com
[root@CentOS7 ~]# ip -s link show eth0
[root@CentOS7 ~]# traceroute www.sina.com
[root@CentOS7 ~]# tracepath www.sina.com
1?: [LOCALHOST]                                         pmtu 1500
1:  no reply
2:  11.245.87.126                                        0.787ms
3:  106.11.130.218                                      0.387ms
4:  42.120.244.125                                      0.425ms
5:  150.138.132.157                                     1.469ms
6:  150.138.128.241                                     3.546ms asymm  7
7:  202.97.40.241                                        24.677ms
8:  202.97.24.154                                        14.197ms
9:  202.97.33.154                                        18.340ms asymm 10
10:  202.97.90.242                                       182.632ms
11:  203.14.186.138                                      193.383ms asymm 13
12:  218.30.41.234                                       209.543ms asymm 13
13:  66.102.251.33                                       163.224ms reached
    Resume: pmtu 1500 hops 13 back 14

查看设备物理连接的状态
[root@CentOS7 ~]# ip a
2: enp1s0:

ports and services

以下为示例服务:
[root@aliyun ~]# yum -y install httpd vsftpd
[root@aliyun ~]# systemctl start httpd
[root@aliyun ~]# systemctl start vsftpd

http        80/tcp
https      443/tcp
ssh         22/tcp
ftp          21/tcp

1. Show TCP sockets (LISTEN)
[root@aliyun ~]# ss -tnl
State       Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
LISTEN      0      128                 *:80                              *:*                  
LISTEN      0      128                 *:8080                            *:*                  
LISTEN      0      10     114.215.71.214:53                              *:*                  
LISTEN      0      10       10.29.89.165:53                              *:*                  
LISTEN      0      10          127.0.0.1:53                              *:*                  
LISTEN      0      128                 *:22                              *:*                  
LISTEN      0      128         127.0.0.1:953                             *:*                  
LISTEN      0      128         127.0.0.1:6010                            *:*                  
LISTEN      0      128                 *:443                             *:*                  
LISTEN      0      32                 :::21                             :::*                  
LISTEN      0      10                 :::53                             :::*    

[root@aliyun ~]# ss -tnl |grep :80
LISTEN     0      128          *:80                       *:*      
[root@aliyun ~]# ss -tnl |grep :21
LISTEN     0      32          :::21                      :::*

[root@aliyun ~]# ss -atn
State       Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
LISTEN      0      128                 *:80                              *:*                  
LISTEN      0      10     114.215.71.214:53                              *:*                  
LISTEN      0      10       10.29.89.165:53                              *:*                  
LISTEN      0      10          127.0.0.1:53                              *:*                  
LISTEN      0      128                 *:22                              *:*                  
LISTEN      0      128         127.0.0.1:953                             *:*                  
LISTEN      0      128         127.0.0.1:6010                            *:*                  
ESTAB       0      52     114.215.71.214:22                 123.120.38.233:49603              
ESTAB       0      0      114.215.71.214:40962              140.205.140.205:80                
LISTEN      0      32                 :::21                             :::*                  
LISTEN      0      10                 :::53                             :::*  

[root@aliyun ~]# ss -atn |grep :22
LISTEN     0      128          *:22                       *:*                  
ESTAB      0      52     114.215.71.214:22                 123.120.38.233:49603

[root@aliyun ~]# ss -atn |grep :80
LISTEN     0      128          *:80                       *:*                  
ESTAB      0      0      114.215.71.214:40962              140.205.140.205:80

a 所有状态,包括 l  LISTEN

2. Show UDP sockets (所有状态)
[alice@CentOS7 ~]$ ss -anu
State       Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
UNCONN      0      0      114.215.71.214:53                              *:*                  
UNCONN      0      0        10.29.89.165:53                              *:*                  
UNCONN      0      0           127.0.0.1:53                              *:*                  
UNCONN      0      0      114.215.71.214:123                             *:*                  
UNCONN      0      0        10.29.89.165:123                             *:*                  
UNCONN      0      0           127.0.0.1:123                             *:*                  
UNCONN      0      0                   *:123                             *:*                  
UNCONN      0      0                  :::53                             :::*                  
UNCONN      0      0                  :::123                            :::*  

[kiosk@foundation0 ~]$ ss -tan |grep :5910
LISTEN     0      5                         *:5910                     *:*    
ESTAB      0      0            172.25.254.250:5910         172.25.254.44:51435
ESTAB      0      0            172.25.254.250:5910          172.25.254.6:40546
ESTAB      0      0            172.25.254.250:5910         172.25.254.18:37780
ESTAB      0      0            172.25.254.250:5910         172.25.254.13:55841
ESTAB      0      0            172.25.254.250:5910         172.25.254.35:36984
ESTAB      0      0            172.25.254.250:5910          172.25.254.9:47342
ESTAB      0      0            172.25.254.250:5910          172.25.254.2:40955
ESTAB      0      0            172.25.254.250:5910         172.25.254.12:50833
ESTAB      0      0            172.25.254.250:5910         172.25.254.36:50854
ESTAB      0      0            172.25.254.250:5910          172.25.254.1:52444
ESTAB      0      0            172.25.254.250:5910         172.25.254.47:39335
ESTAB      10     0            172.25.254.250:5910         172.25.254.14:55833

CentOS7修改网卡为eth0

1. 修改网卡配置文件
# mv ifcfg-eno16777728 ifcfg-eth0          
# vim ifcfg-eth0                                  
NAME=eth0                                        

2. GRUB添加kernel参数
# vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="...... net.ifnames=0"
# grub2-mkconfig -o /boot/grub2/grub.cfg

3. reboot
# reboot

在KVM虚拟机添加全虚拟化的网卡
网络管理基础_网络管理

也可在安装系统时添加kernel参数 net.ifnames=0

网络管理基础_网络管理_02

KVM安装Centos7:
网络管理基础_网络管理_03

临时配置网络信息

ip/netmask
# ip addr add dev eth1 3.3.3.3/24
# ip addr del dev eth1 3.3.3.3/24

gateway
# ip route del default
# ip route add default via 192.168.122.3
# ip route add 10.10.10.0/24 via 192.168.122.5

hostname
# hostname CentOS7.cc.com