网络管理和网络配置(net-tools家族(ifcfg家族)、iproute家族、nm家族)

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

下面写的是Centos网络管理和网络配置

我们为网卡设置网络属性有两种方式,手动配置和自动配置。自动配置,就是从主机所在网路中的DHCP服务器获取,其至少有一台DHCP服务器。手动配置有两种方式,分别是使用命令和修改配置文件,使用命令有三大家族的命令,即net-tools家族(ifcfg家族)、iproute家族、nm家族。同时,还介绍了相关的配置文件和网络接口命名规则。


一、net-tools家族

 1、ifconfig命令

ifconfig命令具有三个主要功能,分别是查看网络接口状态、配置网络属性、管理接口状态。


查看:

ifconfig [interface] 命令中,如果没有指定接口状态,显示的就是【激活状态】接口的网络信息;如果指定了操作接口,不管接口是否是激活状态,都显示指定接口的网络配置信息。

ifconfig -a:显示所有端口网络连接,无论是否激活。


配置管理:

ifconfig INTERFACE ADDRESS 用于配置指定端口的指定参数

  例如:ifconfig INTERFACE IP[/PREFIX_LEN] [up/down]

        ifconfig INTERFACE IP netmask SUBNET_MASK [up/down]

        ifconfig eth1 172.16.1.1

        ifconfig eth1 172.16.1.1/24

        ifconfig eth1 172.16.1.1/24 up

        ifconfig eth1 172.16.1.1 netmask 255.255.255.0 up

        ifconfig eth1 up/down


 2、route命令

route查看和管理路由信息,其中,路由表中的路由条目有三种类型,分别是主机路由、网络路由、默认路由。主机路由的目的地址是单个IP地址;网络路由有子网路由、主网路由、超网路由三种;默认路由,目的地址是0.0.0.0/0的IP地址,可以到达任意地址。


查看:

route -n:以数字化来显示主机名、IP地址和端口。


配置:

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 添加

route del [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 删除

  添加默认网关:route add default gw 192.168.0.1 或 route add default gw 192.168.0.2 dev eth2

  删除默认网关:route del default 或 route del default gw 192.168.0.2

  添加静态路由:route add -net 10.0.0.0/8 gw 192.168.0.2 dev eth2

  删除静态路由:route del -net 10.0.0.0/8 或 route del -net 10.0.0.0/8 gw 192.168.0.2


 3、netstat命令

netstat查看网络连接、路由信息、接口统计信息等。

netstat的常用选项如下:

  -t:只查看与TCP协议有关的网络连接

  -u:只查看与UDP协议有关的网络连接

  -U:只显示与udplite协议有关的网络连接

  -w:显示与络套接字有关的网络连接

  -l:显示处于监听状态的网络连接

  -a:显示所有状态的所有连接,不管激活与否

  -n:数字化显示,数字显示主机名、端口号、用户ID等信息

  -e:以扩展格式显示输出网络连接

  -p:显示与该网络连接有关的应用程序与进程ID

常用的选项组合:-tan, -uan, -tnl, -unl, -tnlp, -unlp, -tunlp

  -r:显示路由表信息 常用复合选项有:-rn、-rne

  -i/-I:显示接口统计信息,存在复合选项

  -s:详细显示协议信息,分条显示,存在复合选项

  


二、iproute家族

 1、ip命令

ip命令能进行网络参数的设置,设备的相关设定、额外IP设定、路由设定。格式为:ip [ OPTIONS ] OBJECT { COMMAND | help } ; 其中OBJECT有四类:link、addr、route、netns。

 (1)、ip link COMMAND 

  设定与设备(device)有关的相关设定,包括MTU以及该网络设备的MAC等等。ip link COMMAND 中COMMAND有5类,分别是add、delete、set、show/list、help。

  ip link {show | list}  单纯的查阅该设备相关的信息,列表显示所有接口。

    例如:ip link show eth0

  ip link set 修改网络设备的配置参数。

    ip link set [dev] IFACE_NAME { up | down }:激活或禁用网络接口;

      例如:ip link set eth0 up 启动eth0

            ip link set eth0 down 关闭eth0

    ip link set [dev] IFACE_NAME [ arp { on | off } ]:是否允许此网络接口使用ARP协议;

    ip link set [dev] IFACE_NAME name IFACE_NEW_NAME:更改网络接口名称,需要将设备先down掉;设备启动时,所以不能这样做设定。

      例如:ip link set eth0 name myeth

            ip link set eth0 address aa:aa:aa:aa:aa:aa 修改MAC地址

    ip link set [dev] IFACE_NAME [ mtu MTU ]:修改网络接口的MTU数值;

      例如:ip link set eth0 mtu 1000 更改 MTU为1000 bytes,单位就是 bytes

    ip link set [dev] IFACE_NAME [ netns PID ]

 (2)、ip addr COMMAND

  查看和设置逻辑网络地址,属于第三层。

    ip addr add IFADDR dev IFACE_NAME:为指定的网络接口添加IP地址;

      例如:ip addr add 192.168.50.50/24 broadcast + /

    ip addr del IFADDR dev IFACE_NAME:将IP地址从指定的网络接口上删除;

      例如:ip addr del 192.168.50.50/24 dev eth0

    ip addr flush dev IFACE_NAME:将指定接口上配置的所有IP地址全部清除;

    ip addr { show | list } [dev IFACE_NAME]:显示网络接口上配置的IP地址;

      例如: ip addr show eth0

  为网络接口增加【多个IP地址】,并能够使用ifconfig查看,设置卷标实现;

    ip addr add IFADDR dev IFACE_NAME label IFACE_NAME_LABEL

    ifconfig IFACE_NAME_LABEL IFADDR

    IFACE_NAME_LABEL : IFACE_NAME:#

 (3)、ip route COMMAND

  ip route查看和设置路由表信息,功能几乎与rout命令一样,但是,它还可以进行额外的参数设置,例如设置MTU。

    ip route { add | del } TARGET/PREFIX via NEXT_HOP [dev IFACE_NAME]

      例如:ip route add 192.168.5.0/24 dev eth0 增加内部路由

            ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0 增加可以通往外部的路由

            ip route del 192.168.10.0/24

            ip route del 192.168.5.0/24

    ip route list/show

      例如:ip route show

 (4)、ip netns COMMAND 设置内核中的网络名称空间

    ip netns list:列表显示所有的自定义的名称空间;

    ip netns add NS_NAME:创建名称空间;

    ip netns exec NS_NAME cmd:在指定的名称空间中使用命令;

    ip netns delete NS_NAME:删除指定的名称空间;

 2、ss命令

ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

ss格式为:ss [options] [ FILTER ]

 (1)、[options]

  ss常用选项有:

    -t:与TCP协议相关的连接状态;

    -u:与UDP协议相关的连接;

    -w:与裸套接字相关的连接;

    -l:显示处于监听状态的连接;

    -a:显示所有的状态的套接字连接;

    -n:以数字化显示结果;

    -p:显示相关的应用程序及PID;

    -e:显示详细的扩展信息;

    -m:显示内存使用量;

    -o:计时器信息;

  常用的选项组合为:-tan, -uan, -tnl, -unl, -tulp, -unlp。

 (2)、[ FILTER ]

  FILTER为:[ state TCP-STATE ] [ EXPRESSION ],其中TCP-STATETCP,表示协议有限状态机中的所有的可用状态;EXPRESSION,表示为dport= :port 或 sport= :port,例如:'( dport = :22 or sport = :22 )' ,注意EXPRESSION用单引号引出来。



三、nm家族

 1、nmcli命令

nmcli是网络管理命令行工具,可以使用nmcli配置网络、实现网络组、设置主机名

nmcli格式为:nmcli  [ OPTIONS ] OBJECT { COMMAND | help } 

 (1)、OBJECT主要包括两类,分别是connection和device 

  device:显示和配置网络接口信息

      device后的COMMAND有7类:status、show、connect、disconnect、delete、wifi、wimax

  connection:开始、停止、管理网络连接 

      connection后的COMMAND有9类:show、up、down、add、edit、modify、delete、reload、load

 (2)、COMMAND

  COMMAND的多类命令show、up、down、add、edit、modify、delete、reload、load解释如下:                

    show:显示网络连接的所有属性信息;

    up|down:启用或禁用指定的网络连接;

    add:用来添加新的网络连接。其后加以下4类:autoconnect yes|no:是否自动启动此连接,需在配置文件中添加ONBOOT=yes|no;ifname IF_NAME:指定要创建连接的目标网络接口设备名称;所有 con-name CON_NAME:为指定的网络接口设备创建一个连接名称; type TYPE:指定网络设备的接口类型。

      例如:# nmcli connection add autoconnect yes ifname eno67109432 con-name eno666 type ethernet

    delete:删除指定的网络连接

      例如:# nmcli connection delete CON_NAME

            # nmcli connection delete eno666

    reload:不重启网络接口,但重新加载其配置文件中的配置信息;

    modify:修改网络接口信息,格式为:modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value> ,其中,<setting>为以下5种:802-3-ethernet.mtu ;connection.autoconnect ;ipv4.addresses ;ipv4.dns ;ipv4.gateway ;ipv4.method。

      例如:# nmcli connection modify "系统\ eno50332208" ipv4.addresses 1.2.3.4/8 ipv4.dns 202.202.222.222 ipv4.gateway 1.1.1.1 

 (3)、创建网络组

  网络组,就是将多个【网络接口设备聚合】在一起的方法,其目的是实现冗余容错以及提高可用性和吞吐量;网络组与以往的Bonding技术相比,具有更好的性能以及更好的扩展性;在CentOS7中,网络组是由内核中的一个内核驱动和一个名为teamd的守护进程来实现的。网络组主要可以实现以下5种工作模式,工作模式也被称为“运行器(runner)”:broadcast、roundrobin、activebackup、loadbalance、lacp(链路聚合控制协议)。

  网络组接口具有以下4个特点:1)、启动网络组接口并不会自动启动网络组中的其他port接口;2)、启动网络组终端port接口,也不会自动启动网络组接口;3)、禁用网络组接口,则会立即禁用网络组中的port接口;4)、对于没有port接口的网络组接口而言,只能配置静态IP地址,不能设置从DHCP获取;如果设置了,网络组接口就会一直等待port接口的加入。

  

  创建网络组有两种方法,一种是通过nmcli命令来创建,另一种是修改对应连接的配置文件来创建。

  方法一:通过nmcli命令来创建

  nmcli创建网络组接口:nmcli connection add type team con-name TEAM_CON_NAME ifname IF_NAME config JSON ;JSON是用来指定runner的方式,其格式为:'{"runner": {"name": "METHOD"}}',METHOD为broadcast、roundrobin、activebackup、loadbalance、lacp五种。

    例如:# nmcli connection add type team con-name class17 ifname class17 config '{"runner": {"name": "loadbalance"}}'

          # nmcli connection modify class17 ipv4.addresses 172.16.203.205/16

          # nmcli connection modify class17 ipv4.method manual

  

  nmcli创建port接口:nmcli connection add type team-slave [con-name CON_NAME] ifname IF_NAME master TEAM_NAME ;其中,如果不指定con-name,则默认的con-name为team-slave-IF_NAME。

    例如:# nmcli connection add type team-slave con-name eno67109432 ifname eno67109432 master class17

          # nmcli connection up class17

          # nmcli connection up eno67109432

          # nmcli device disconnect eno67109432


  方法二:修改对应连接的配置文件来创建

    例如:创建网络组接口:

          DEVICE=class17

          TEAM_CONFIG="{\"runner\": {\"name\": \"activebackup\"}}"

          DEVICETYPE=Team

          BOOTPROTO=none

          NAME=class17

          ONBOOT=yes

          IPADDR=172.16.203.205

          PREFIX=16


          创建port接口:

          NAME=team-slave-eno33554984

          DEVICE=eno33554984

          ONBOOT=yes

          TEAM_MASTER=class17

          DEVICETYPE=TeamPort



2、nmtui命令

nmtui是文本用户接口的网络控制连接。



四、Bonding

与网络组相似的操作时创建Bonding,也是将多块网卡,即多个网络接口设备绑定到同一IP地址,对外提供网络服务;这些网卡之间可以实现负载均衡或高可用技术;通过bonding,虚拟一个网卡对外提供服务及网络连接,所有的物理网卡都被修改为相同的MAC地址;但Bonding最好在CentOS6中实现,在CentOS7中使用nmcli创建的网络组来实现更加强大的容错。

Bonding主要有Mode 0、Mode 1和Mode 3这3种工作模式,具体解释如下:

    Mode 0 :【负载均衡】的解决方案,其负载均衡的算法为balance-rr,其中rr即轮询round robin。轮询策略,就是按【从头到尾】顺序的在每个slave接口上面发送数据包;该模式可以提供负载均衡以及容错的能力;

    Mode 1 :【主备】的解决方案,在此模式中,只有一个slave被激活,用于正常数据传输;而其他的接口都监视此接口的工作状态,当且仅当活动的slave接口失败的时候,才会从其他备份的接口中选择一个用于激活;该模式只能【实现容错】,无法进行负载均衡。

    Mode 3 :【全广播】的解决方案,在所有的slave接口上传输全部报文。


使用Bonding的配置步骤如下:

    1、创建虚拟接口;

    例如:

    可以在/etc/sysconfig/network-scripts/ifcfg-bond0文件中指定Bonding的特性:

      DEVICE=bond0

      ONBOOT=yes

      NM_CONTROLLED=no

      BOOTPROTO=none

      BONDING_OPTS="miimon=100 mode=0"

      IPADDR=172.16.100.135

      PREFIX=16    

    2、选择miimon的监测时间及Bonding的工作模式;miimon用来进行链路监测。如果miimon=100,则系统每100ms监测一次链路连接的状态;如果某个网络接口在miimon监测的结果为不连通,则进行故障倒换;

      例如:BONDING_OPTS="miimon=100 mode=0"

    3、选择用于此次Bonding的物理接口;

  修改物理网卡eth1的配置文件:/etc/sysconfig/network-scripts/ifcfg-eth1

    DEVICE=eth1

    BOOTROTO=none

    MASTER=bond0

    SLAVE=yes

    USERCTL=no


  修改物理网卡eth2的配置文件:/etc/sysconfig/network-scripts/ifcfg-eth2

    DEVICE=eth2

    BOOTROTO=none

    MASTER=bond0

    SLAVE=yes

    USERCTL=no



五、配置文件

 1、网络接口配置文件

  在CentOS6中,主要有5类配置文件,即与IP、MASK、GATEWAY、DNS Server相关的配置文件。各个网络接口配置文件的存取位置为:/etc/sysconfig/network-scripts/ifcfg-IFACE_NAME,其中的配置信息解释如下:

    DEVICE:网络接口【名称】

    TYPE:网络接口【类型】,常见的有Ethernet、Bridge、Token Ring等

    HWADDR:此设备的【物理地址】,是在以太网中的MAC地址;

    ONBOOT:在系统引导的过程中,是否【激活】此设备,yes/no;

    NETBOOT:是否可以使用此设备进行【网络引导】,yes/no;

    BOOTPROTO:接口【协议类型】;BOOTPROTO有动态配置和静态配置两类,动态配置即dhcp和bootp;静态配置即static和none。

    IPV6INIT:是否在此接口上初始化【IPV6】协议;

    USERCTL:是否【普通用户能够管理】此接口,推荐用no;

    IPADDR:指定此接口的固定【IP地址】,但,其前提是BOOTPROTO应该是static或none;

    NETMASK:设置IP地址对应的【子网掩码】;如:255.255.255.0

    PREFIX:设置IP地址的【网络前缀】的位数,和子网掩码一个意思;如:24

    GATEWAY:设置默认【网关】

    DNS1:首选【DNS】服务器的地址指向;

    DNS2:备用DNS服务器的地址指向;

    DNS3:第三DNS服务器的地址指向;

    PEERDNS:新的DNS服务器的地址是否能够指向替代的DNS服务器的地址指向,默认值为允许;

    NM_CONTROLLED:是否允许【NetworkManager】服务管理网络接口,不建议使用。

在CentOS6中非常不完善,关闭NetworkManager的步骤如下:(1)、# service NetworkManager stop ;(2)、# chkconfig NetworkManager off

在CentOS7中,与IP、MASK、GATEWAY、DNS Server相关的配置文件位置为:/etc/sysconfig/network-scripts/ifcfg-IFACE_NAME。与CentOS6相比,CentOS7主要多了三项,即UUID、NAME、DEFROUTE。DEFROUTE,用来设置是否允许此网络接口运行默认路由。


 2、主机名称的配置文件

  主机名称配置文件位置为:/etc/sysconfig/network。

  对于主机名配置文件,HOSTNAME,是当前Linux系统使用的主机名称,使用 # hostname 查看当前系统的FQDN ;# hostname NEW_HOSTNAME 进行注销后重新登录。

    例如:# hostnamectl set-hostname NEW_HOSTNAME 重新设置主机名


 3、本地解析配置文件

  本地解析配置文件位置为:/etc/hosts。格式为:IP地址 主机名


 4、解析器文件

  解析器文件的位置为:/etc/resolv.conf

    search DOMAIN_NAME

    nameserver DNS_SERVER_IP_ADDRESS


 5、静态路由的配置文件

  静态路由的配置文件位置为:/etc/sysconfig/network-scripts/route-IFACE_NAME。

  IFACE_NAME 两种写法如下:

   (1)、每条路由信息占用一行,格式为:TARGET via NEXT_HOP [dev IFACE_NAME]

      例如:10.0.0.0/8 via 192.168.100.254。

   (2)、每条路由信息占用多行,其格式为:

        ADDRESS#=TARGET

        NETMASK#=MASK

        GATEWAY#=NEXT_HOP

      例如:ADDRESS0=172.16.0.0

            NETMASK0=255.255.0.0

            GATEWAY0=192.168.10.254

  


六、网络接口命名

Linux的网络接口有两种命名方式,一种是传统的命名方式,其在CentOS6及之前的发行版本中使用;另一种是使用可预测的命名方式,其支持很多种命名机制,该方案从CentOS7开始使用。

 1、传统的命名方式

  以太网:【ethX】,其中X是自然数;例如:eth0、eth1

  PPP网络:【pppX】,其中X是自然数;例如:ppp0、ppp1

  环回接口:【lo】

 2、可预测的命名方案

  (1)、 根据Firmware命名

    每一台计算机的网卡在其计算机的硬件固件中都有唯一的标识符,比如:MAC地址,厂商标识,电器编号等。

      根据【集成设备】所提供的索引信息命名,例如:enoX, eno1,eno167777736,...

      根据【MAC地址】进行命名;例如:enx000c290045b3


  (2)、 根据物理拓扑结构命名

    每一台计算机的主板上都有固定数量的插槽或接口,如主板上第二个插槽连接的网卡的第一个物理接口等。

      根据【扩展插槽所提供】所提供的索引信息命名,如:ensX、ens0、ens2

      根据硬件接口的【物理拓扑】的位置信息命名,例如:enp1s0


     本文转自little_ding 51CTO博客,原文链接:http://blog.51cto.com/12496428/1949614,如需转载请自行联系原作者







相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7月前
|
数据可视化
R语言弹性网络Elastic Net正则化惩罚回归模型交叉验证可视化
R语言弹性网络Elastic Net正则化惩罚回归模型交叉验证可视化
|
7月前
|
机器学习/深度学习 存储 计算机视觉
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现-4
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
134 11
|
6月前
|
运维 监控 物联网
【计算巢】网络自动化:简化复杂网络管理的策略
【6月更文挑战第4天】网络自动化借助SDN和NFV技术,提升网络灵活性和响应速度,减少人为错误。通过Python与Netmiko库,可实现网络设备批量配置,提高效率,降低运营成本。此外,网络自动化还应用于监控、故障排查和安全策略实施。在5G和物联网时代,网络自动化的重要性和应用范围将持续扩大,成为现代网络管理的关键。
101 1
【计算巢】网络自动化:简化复杂网络管理的策略
|
1月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
2月前
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
123 0
|
7月前
|
SDN 数据中心 网络架构
【计算巢】软件定义网络(SDN):网络管理的未来趋势
【5月更文挑战第31天】SDN(Software Defined Networking)是新兴的网络架构模式,通过分离控制平面和数据平面实现集中化管理,提高网络可见性和可控性。它以软件定义为核心,打破传统硬件限制,促进网络创新。SDN 提供快速部署、降低成本并增强灵活性。示例代码展示了使用 Python 实现的简单 SDN 控制器。随着技术发展,SDN 在数据中心和电信网络等领域广泛应用,引领网络技术的未来。
119 0
|
3月前
|
监控 网络协议 Linux
网络管理:基本的网络配置与管理指南
网络管理:基本的网络配置与管理指南
91 2
|
4月前
|
网络协议 网络架构
OSPF邻居关系建立失败?揭秘网络工程师面试中最常见的难题,这些关键步骤你掌握了吗?网络配置的陷阱就在这里!
【8月更文挑战第19天】OSPF是网络工程中确保数据高效传输的关键协议。但常遇难题:路由器间无法建立OSPF邻居关系,影响网络稳定并成为面试热点。解决此问题需检查网络连通性(如使用`ping`),确认OSPF区域配置一致(通过`show running-config`),校准Hello与Dead计时器(配置`hello`和`dead`命令),及核查IP地址和子网掩码正确无误(使用`ip address`)。系统排查上述因素可确保OSPF稳定运行。
86 2
|
6月前
|
运维 网络协议 网络安全
2024网络建设与运维赛题-网络配置教程
某集团公司的网络由北京总公司的SW1、SW2、SW3,上海分公司的SW及长沙办事处的设备互联,采用神州数码的DCR-2855路由器、CS6200-28X-Pro三层交换机、DCWS-6028-Pro无线交换机和DCFW-1800E-N3002-Pro防火墙。IP配置包括多个VLAN及Tunnel,如SW1的10.0.1.1/32、RT1的10.0.5.1/32等。FW1和FW2作为边界防火墙,提供不同区域的访问控制。配置示例展示了SW1、SW2和SW3的接口IP分配。
2024网络建设与运维赛题-网络配置教程