1、IP分类以及每个分类可以分配的IP数量

1.1 IP地址组成

唯一标识 IP 网络中的每台设备 ,每台主机(计算机、网络设备、外围设备)必须具有唯一的地址

IP地址由两部分组成

网络ID:标识网络,每个网段分配一个网络ID,处于高位

主机 ID:标识单个主机,由组织分配给各设备,处于低位

IPv4地址格式:点分十进制记法

IP地址是一个32位二进制数,如:10101100 00010000 10000000 00010001

可将此32位二进制数划分为四组8位二进制数10101100000100001000000000010001
每组二进制八位数(或字节)均可转换成十进制数1721612817
地址可使用点分十进制记法记录172.16.128.17

1.2 IP地址分类

A类B类C类D类E类
二进制表示0 0000000 - 0 1111111.X.Y.Z10 000000 - 10 111111.X.Y.Z110 00000 - 110 1 1111.X.Y.Z1110 0000 - 1110 1111.X.Y.Z保留未使用
十进制表示法0-127.X.Y.Z128-191.X.Y.Z192-223.X.Y.Z224-239.X.Y.Z240-255
网络ID网络ID位是最高8位网络ID位是最高16位网络ID位是最高24位组(多)播
主机ID主机ID是24位低位主机ID是16位低位主机ID是8位低位
网络数126=2^7(可变是的网络ID位数)-22^14=163842^21=2097152
每个网络中的主机数2^24-2=167772142^16-2=655342^8-2=254
默认子网掩码255.0.0.0255.255.0.0255.255.255.0
私网地址10.0.0.0172.16.0.0-172.31.0.0192.168.0.0-192.168.255.0
范例114.114.114.114,1.1.1.1,58.87.87.99119.29.29.29180.76.76.76,172.16.0.1223.6.6.6

1.3 公共和私有IP地址

私有IP地址:不直接用于互联网,通常在局域网中使用

  • A类:10.0.0.0到10.255.255.255 (一个网段)
  • B类:172.16.0.0到172.31.255.255 (16个网段)
  • C类:192.168.0.0到192.168.255.255 (256个网段)

公共IP地址:互联网上设备拥有的唯一地址

A类:1.0.0.0到9.255.255.255 11.0.0.0到126.255.255.255

B类:128.0.0.0到172.15.255.255 172.32.0.0到191.255.255.255

C类:192.0.0.0到192.167.255.255 192.169.0.0到223.255.255.255

1.4 特殊地址

  • 0.0.0.0:

    不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络。

  • 255.255.255.255:

    限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。

  • 127.0.0.1~127.255.255.254:

    本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的 数据包。

  • 224.0.0.0到239.255.255.255:

    组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序。

  • 169.254.x.x:
    如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址。

1.5 保留地址

主机位是全0或全1

范例:

172.16.0.0 网络中的两个地址:172.16.0.0和172.16.255.255

1.6 子网掩码

CIDR:无类域间路由,目前的网络已不再按A,B,C类划分网段,可以任意指定网段的范围。

CIDR 无类域间路由表示法:IP/网络ID位数,如:172.16.0.100/16

netmask子网掩码:32位或128位(IPv6)的数字,和IP成对使用,用来确认IP地址中的网络ID和主机ID,对应网络ID的位为1,对应主机ID的位为0。

范例:255.255.255.0 ,表现为连续的高位为1,连续的低位为0

子网掩码的八位

相关公式:

  • 一个网络的最多的主机数=2^主机ID位数-2
  • 网络(段)数=2^网络ID中可变的位数
  • 网络ID=IP与netmask

范例:

netmask: 255.255.224.0,即网络ID位是19,那么主机ID位是13,主机数=2^13-2=8190

判断对方主机是否在同一个网段

用自已的子网掩码分别和自已的IP及对方的IP相与,比较结果,相同则同一网络,不同则不同网段。

范例:判断A和B是否在网一个网段

A: 192.168.1.100 netmask:255.255.255.0B: 192.168.2.100 netmask:255.255.0.01)用A主机子网掩码分别与A及B的IP与A主机网络地址11000000.10101000.00000001.01100100与A主机子网掩码11111111.11111111.11111111.00000000得           11000000.10101000.00000001.00000000即192.168.1.0B主机网络地址11000000.10101000.00000010.01100100与A主机子网掩码11111111.11111111.11111111.00000000得           11000000.10101000.00000010.00000000即192.168.2.0192.168.1.0<>192.168.2.0,所以A和B不在同一网段2)用B主机子网掩码分别与A及B的IP与A主机网络地址11000000.10101000.00000001.01100100与B主机子网掩码11111111.11111111.00000000.00000000得           11000000.10101000.00000000.00000000即192.168.0.0B主机网络地址11000000.10101000.00000010.01100100与B主机子网掩码11111111.11111111.00000000.00000000得           11000000.10101000.00000000.00000000即192.168.0.0192.168.0.0<>192.168.0.0,所以A和B在同一网段通过以上比较判断,两次的结果不一致,A和B是无法通讯的。

范例:计算网络ID、主机数

1)主机IP:172.16.1.100/28#此主机所在的网段最多有多少主机?    #主机数=2^主机ID位数-2,即2^(32-28)-2=14#网络ID? IP和子网掩码相与,172.16.1.96    #即IP地址和子网掩码都转换成二进制后相与的结果    172.16.1.100转换成二进制是:10101100.00010000.00000001.01100100     28位子网掩码转换成二进制是: 11111111.11111111.11111111.11110000     相与的结果是:             10101100.00010000.00000001.01100000     即:                      172.16.1.96#此网段的主机中最小的IP:主机位是0001,即172.16.1.0110 0001,转换成十进制是:172.16.1.97#此网段的主机中最大的IP:主机位是1110,即172.16.1.0110 1110,转换成十进制是:172.16.1.1102)主机IP:203.110.228.200/26#主机数:2^(32-26)-2=62#网络ID:因26=24+2,所以前3位不变203.110.228,最后一位11001000和掩码11000000相与,即11000000=192,所以网络ID就是203.110.228.192#此网段的主机中最小的IP:主机位是00 0001,即203.110.228.1100 0001,转换成十进制是:203.110.228.193#此网段的主机中最大的IP:主机位是00 1110,即203.110.228.1111 1110,转换成十进制是:203.110.228.254

1.7 划分子网

划分子网:将一个大的网络(主机数多)划分成多个小的网络(主机数少),主机ID位数变少,网络ID位数变多,网络ID位向主机ID位借位。

范例:

1、把10.0.0.0/8网段划分为2个子网#首先需要向主机ID借位,因为是2个子网,所以借1位就可以了10.0    0000000.0.0/8   10.0.0.1~10.255.255.254#网络ID向主机ID借1位,划分了2^1=2个子网10.0    0000000.0.010.1    0000000.0.0第一个子网:10.0.0.0/9    主机数:2^23-2第二个子网:10.128.0.0/9  主机数:2^23-22、把10.0.0.0/8网段划分为4个子网#网络ID需向主机ID借2位,划分2^2=4个子网10.00   000000.0.010.01   000000.0.010.10   000000.0.010.11   000000.0.0第一个子网:10.0.0.0/10     主机数:2^22-2第二个子网:10.64.0.0/10    主机数:都同上第三个子网:10.128.0.0/10第四个子网:10.192.0.0/10

范例:

中国移动10.0.0.0/8 给32个各省公司划分对应的子网1)每个省公司的子网的netmask?32个分公司,需要至少32个子网,因为2^5=32,所以需要借5位主机的ID。即网络位就是8+5=13子网掩码就是:11111111.11111000.0.0即255.248.0.02)每个省公司的子网的主机数有多少?2^(32-13)-2=5242863)河南省得到第10个子网,网络ID是多少?因为10.00000 000.0.0/13是第1个子网,所以第10个子网就是10.01001 000.0.0/13,转换成二进制就是10.72.0.0/134)河南省得到第10个子网的最小IP和最大的IP?最小IP地址:10.01001 000.0.1,即10.72.0.1最大IP地址:10.01001 111.11111111.11111110,即10.79.255.2545)所有子网中最小和最大的子网的netid?最小的网络ID:10.00000 000.0.0/13,即10.0.0.0/13最大的网络ID:10.11111 000.0.0/13,即10.248.0.0/13

范例:

中国移动10.0.0.0/8 给32个各省公司划分对应的子网,河南省得到第10个子网,再给省内的16个地市划分子网。#由上例得知,河南省得到的第10个子网的网络ID是10.01001 000.0.0/13,即10.72.0.0/13#省内需再划分16个子网,即再从主机ID借4位,那网络ID就是171)每个市公司的子网的netmask?#网络ID是17,所以子网掩码是255.255.128.02)每个市公司的子网的主机数有多少?2^(32-17)-2=327663)各地市的最小netid和最大的netid?最小的网络ID:10.01001 000.0 0000000.0,即10.72.0.0/17最大的网络ID:10.01001 111.1 0000000.0,即10.79.128.0/174)洛阳市第2个子网,最小IP和最大IP?第一个子网是10.01001 000.0 0000000.0,即10.72.0.0/17第二个子网是10.01001 000.1 0000000.0,即10.72.128.0/17第3~16个子网是:10.73.0.0/1710.73.128.010.74.0.010.74.128.010.75.0.010.75.128.010.76.0.010.76.128.010.77.0.010.77.128.010.78.0.010.78.128.010.79.0.010.79.128.0洛阳第二个子网,最小IP和最大IP最小IP:10.01001 000.1 0000000.00000001,即10.72.128.1/17最大IP:10.01001 000.1 1111111.11111110,即10.72.255.254/17

1.8 优化IP地址分配

合并超网:将多个小网络合并成一个大网,主机ID位向网络ID位借位,实现路由表的优化,可以一条命令覆盖几个小网段。

范例:

有8条路由记录,分别是220.78.168.0/24220.78.169.0/24220.78.170.0/24220.78.171.0/24220.78.172.0/24220.78.173.0/24220.78.174.0/24220.78.175.0/24合并成一个大网,主机ID向网络ID借位,需要转换成二进制220.78.10101 000.0220.78.10101 001.0220.78.10101 010.0220.78.10101 011.0202.78.10101 100.0202.78.10101 101.0202.78.10101 110.0202.78.10101 111.0可以看到168~175的前5位二进制相同,所以需要借5位给网络ID网络ID:202.78.10101 000.0/21,即202.78.168.0/21

2、IP配置方法

2.1 网络配置方式

静态IP地址配置方法:

  • ifconfig命令
  • ip命令
  • system-config-network-tui,setup
  • 添加配置文件

  • 动态分配:DHCP: Dynamic Host Configuration Protocol

2.2 ifconfig命令

来自于net-tools包,建议使用 ip 代替

[root@repo-client ~]# rpm -qi net-toolsName        : net-toolsVersion     : 2.0Release     : 0.25.20131004git.el7Architecture: x86_64Install Date: Sat 19 Dec 2020 08:05:53 PM CSTGroup       : System Environment/BaseSize        : 938978License     : GPLv2+Signature   : RSA/SHA256, Fri 23 Aug 2019 05:36:04 AM CST, Key ID 24c6a8a7f4a80eb5Source RPM  : net-tools-2.0-0.25.20131004git.el7.src.rpmBuild Date  : Fri 09 Aug 2019 09:10:26 AM CSTBuild Host  : x86-02.bsys.centos.orgRelocations : (not relocatable)Packager    : CentOS BuildSystem <http://bugs.centos.org>Vendor      : CentOSURL         : http://sourceforge.net/projects/net-tools/Summary     : Basic networking toolsDescription :The net-tools package contains basic networking tools,including ifconfig, netstat, route, and others.Most of them are obsolete. For replacement check iproute package.

常用选项:

ifconfig [interface]ifconfig -aifconfig IFACE [up|down]ifconfig interface [aftype] options | address ...ifconfig IFACE IP/netmask [up]ifconfig IFACE IP netmask NETMASK

范例:

[root@repo-client ~]# ifconfig eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.100.11  netmask 255.255.255.0  broadcast 192.168.100.255        inet6 fe80::20c:29ff:feca:8ca2  prefixlen 64  scopeid 0x20<link>        ether 00:0c:29:ca:8c:a2  txqueuelen 1000  (Ethernet)        RX packets 207  bytes 20062 (19.5 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 165  bytes 24380 (23.8 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@repo-client ~]# ifconfig -aeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.100.11  netmask 255.255.255.0  broadcast 192.168.100.255        inet6 fe80::20c:29ff:feca:8ca2  prefixlen 64  scopeid 0x20<link>        ether 00:0c:29:ca:8c:a2  txqueuelen 1000  (Ethernet)        RX packets 257  bytes 24070 (23.5 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 192  bytes 27358 (26.7 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 59  bytes 9494 (9.2 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536        inet 127.0.0.1  netmask 255.0.0.0        inet6 ::1  prefixlen 128  scopeid 0x10<host>        loop  txqueuelen 1000  (Local Loopback)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 0  bytes 0 (0.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0#添加ip地址[root@repo-client ~]# ifconfig eth1 172.16.0.11 netmask 255.255.0.0[root@repo-client ~]# ifconfig eth1eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 172.16.0.11  netmask 255.255.0.0  broadcast 172.16.255.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 59  bytes 9494 (9.2 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0#清除eth1上的ip地址[root@repo-client ~]# ifconfig eth1 0.0.0.0[root@repo-client ~]# ifconfig eth1eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 59  bytes 9494 (9.2 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0#禁用eth1[root@repo-client ~]# ifconfig eth1 172.16.0.11/16[root@repo-client ~]# ifconfig eth1eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500      ##UP状态        inet 172.16.0.11  netmask 255.255.0.0  broadcast 172.16.255.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 59  bytes 9494 (9.2 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@repo-client ~]# ifconfig eth1 down[root@repo-client ~]# ifconfig eth1             eth1: flags=4098<BROADCAST,MULTICAST>  mtu 1500         #禁用,无UP        inet 172.16.0.11  netmask 255.255.0.0  broadcast 172.16.255.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 59  bytes 9494 (9.2 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0#启用[root@repo-client ~]# ifconfig eth1 up[root@repo-client ~]# ifconfig eth1eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 172.16.0.11  netmask 255.255.0.0  broadcast 172.16.255.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 59  bytes 9494 (9.2 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0#对一个网卡设置多个IP地址[root@repo-client ~]# ifconfig eth1:1 192.168.0.11/24[root@repo-client ~]# ifconfig eth1:1eth1:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.0.11  netmask 255.255.255.0  broadcast 192.168.0.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)[root@repo-client ~]# ifconfig eth1:aaa 192.168.0.111/24    #可以用字符,一般用数字表示[root@repo-client ~]# ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.100.11  netmask 255.255.255.0  broadcast 192.168.100.255        inet6 fe80::20c:29ff:feca:8ca2  prefixlen 64  scopeid 0x20<link>        ether 00:0c:29:ca:8c:a2  txqueuelen 1000  (Ethernet)        RX packets 1054  bytes 90065 (87.9 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 649  bytes 73792 (72.0 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 172.16.0.11  netmask 255.255.0.0  broadcast 172.16.255.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 59  bytes 9494 (9.2 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eth1:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.0.11  netmask 255.255.255.0  broadcast 192.168.0.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)eth1:aaa: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.0.111  netmask 255.255.255.0  broadcast 192.168.0.255        ether 00:50:56:22:6f:2a  txqueuelen 1000  (Ethernet)[root@repo-client ~]# ifconfig eth1:aaa down[root@repo-client ~]# ifconfig eth1:1 down

范例:

#统计当前网卡的流量[root@repo-client ~]# ifconfig -sIface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flgeth0             1500     1255      0      0 0           766      0      0      0 BMRUeth1             1500        0      0      0 0            59      0      0      0 BMRUlo              65536        0      0      0 0             0      0      0      0 LRU#监控当前网卡流量的变化(每秒)[root@repo-client ~]# watch -n1 ifconfig -s     Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flgeth0             1500     1331      0      0 0           818      0      0      0 BMRUeth1             1500        0      0      0 0            59      0      0      0 BMRUlo              65536        0      0      0 0             0      0      0      0 LRU

2.3 ip命令

来自于iproute包,可用于代替ifconfig

2.3.1 配置Linux网络属性

ip命令格式:

ip [ OPTIONS ] OBJECT { COMMAND | help }

ip 命令说明:

OBJECT := { link | addr | route }ip link - network device configurationip link set [dev IFACE] [up|down]   #可设置属性,激活或禁用指定接口,相当于 ifup/ifdownip link show [dev IFACE] [up]       #指定接口,up仅显示处于激活状态的接口

ip 地址管理:

ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}][broadcast ADDRESS][label LABEL]               #添加地址时指明网卡别名[scope {global|link|host}]  #指明作用域,global全局可用;link仅链接可用;host本机可用[broadcast ADDRESS]         #指明广播地址ip address show             #同 ip aip addr flush               #清除网络地址

范例:

#禁用网卡[root@repo-client ~]# ip link set eth1 down[root@repo-client ~]# ip a |grep eth13: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000    inet 172.16.0.11/16 brd 172.16.255.255 scope global eth1#网卡改名并启用[root@repo-client ~]# ip link set eth1 up[root@repo-client ~]# ip link set eth1 name wangnet     #网卡使用时不能改名RTNETLINK answers: Device or resource busy[root@repo-client ~]# ip link set eth1 down[root@repo-client ~]# ip link set eth1 name wangnet     #eth1 down后,就能修改名字了[root@repo-client ~]# ip link set eth1 upCannot find device "eth1"[root@repo-client ~]# ip link set wangnet up            #使用修改后的名字[root@repo-client ~]# ip a |grep wangnet3: wangnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 172.16.0.11/16 brd 172.16.255.255 scope global wangnet#网卡别名#添加网卡别名[root@repo-client ~]# ip addr add 172.16.100.100/16 dev eth0 label eth0:0[root@repo-client ~]# ip a |grep eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute eth0    inet 172.16.100.100/16 scope global eth0:0#删除网卡别名[root@repo-client ~]# ip addr del 172.16.100.100/16Not enough information: "dev" argument is required.[root@repo-client ~]# ip addr del 172.16.100.100/16 dev eth0[root@repo-client ~]# ip a |grep eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute eth0[root@repo-client ~]##清除网络地址[root@repo-client ~]# ip a|grep wangnet3: wangnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 172.16.0.11/16 brd 172.16.255.255 scope global wangnet[root@repo-client ~]# ip a flush dev wangnet[root@repo-client ~]# ip a|grep wangnet3: wangnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000[root@repo-client ~]#

ip route:

常用选项:

ip route { list | flush } SELECTORip route { add | del | change | append | replace } ROUTEip route add TARGET via GW dev IFACE src SOURCE_IPTARGET:主机路由:IP网络路由:NETWORK/MASK

范例:

#添加ip地址[root@repo-client ~]# ip a a 172.16.0.11/16 dev wangnet[root@repo-client ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:ca:8c:a2 brd ff:ff:ff:ff:ff:ff    inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute eth0       valid_lft forever preferred_lft forever3: wangnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:50:56:22:6f:2a brd ff:ff:ff:ff:ff:ff    inet 172.16.0.11/16 scope global wangnet       valid_lft forever preferred_lft forever#查看路由[root@repo-client ~]# ip routedefault via 192.168.100.2 dev eth0 proto static metric 100172.16.0.0/16 dev wangnet proto kernel scope link src 172.16.0.11192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.11 metric 100#增加一条路由[root@repo-client ~]# ip route add default via 172.16.0.1 dev wangnet[root@repo-client ~]# ip routedefault via 172.16.0.1 dev wangnetdefault via 192.168.100.2 dev eth0 proto static metric 100172.16.0.0/16 dev wangnet proto kernel scope link src 172.16.0.11192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.11 metric 100[root@repo-client ~]# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 wangnet0.0.0.0         192.168.100.2   0.0.0.0         UG    100    0        0 eth0172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 wangnet192.168.100.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0#删除路由[root@repo-client ~]# ip route del default via 172.16.0.1[root@repo-client ~]# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         192.168.100.2   0.0.0.0         UG    100    0        0 eth0172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 wangnet192.168.100.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0[root@repo-client ~]# ip route showdefault via 192.168.100.2 dev eth0 proto static metric 100172.16.0.0/16 dev wangnet proto kernel scope link src 172.16.0.11192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.11 metric 100#清空wangnet的路由表[root@repo-client ~]# ip route flush dev wangnet[root@repo-client ~]# ip route showdefault via 192.168.100.2 dev eth0 proto static metric 100192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.11 metric 100[root@repo-client ~]##添加路由[root@repo-client ~]# ip route add 1.1.1.0/24 via 172.16.0.11 dev wangnet proto static metric 100[root@repo-client ~]# ip route showdefault via 192.168.100.2 dev eth0 proto static metric 1001.1.1.0/24 via 172.16.0.11 dev wangnet proto static metric 100192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.11 metric 100[root@repo-client ~]# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         192.168.100.2   0.0.0.0         UG    100    0        0 eth01.1.1.0         172.16.0.11     255.255.255.0   UG    100    0        0 wangnet192.168.100.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0[root@repo-client ~]# ip route del 1.1.1.0/24[root@repo-client ~]# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         192.168.100.2   0.0.0.0         UG    100    0        0 eth0192.168.100.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0[root@repo-client ~]# ip route showdefault via 192.168.100.2 dev eth0 proto static metric 100192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.11 metric 100[root@repo-client ~]#

2.4 网络配置文件

2.4.1 网络基本配置文件

IP、MASK、GW、DNS相关的配置文件路径:

/etc/sysconfig/network-scripts/ifcfg-IFACE

说明参考:

/usr/share/doc/initcripts-*/sysconfig.txt

常用配置:

设置说明
***TYPE接口类型常见有的Ethernet, Bridge
***NAME此配置文件应用到的设备,nmcli c中显示的name名称
***DEVICE设备名
HWADDR对应的设备的MAC地址
UUID设备的惟一标识
***BOOTPROTO激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
***IPADDR指明IP地址
***NETMASK子网掩码,如:255.255.255.0
***PREFIX网络ID的位数, 如:24
***GATEWAY默认网关
***DNS1第一个DNS服务器地址
DNS2第二个DNS服务器地址
DOMAIN主机不完整时,自动搜索的域名后缀
***ONBOOT在系统引导时是否激活此设备
USERCTL普通用户是否可控制此设备
PEERDNS如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的<br>dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
NM_CONTROLLEDNM是NetworkManager的简写,此网卡是否接受NM控制

2.4.2 配置当前主机的主机名

#centos6系统之前版本/etc/sysconfig/networkHOSTNAME=#centos7系统以后版本/etc/hostnameHOSTNAMEhostnamectl set-hostname centos7.magedu.com     #直接修改主机名并生效

2.4.3 本地主机名数据库和IP地址的映射

优先于使用DNS前检查

getent hosts        #查看/etc/hosts 内容[root@repo-client ~]# getent hosts127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4127.0.0.1       localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.100.12  repo-server172.16.100.11   moban172.16.100.21   lb01172.16.100.22   lb02172.16.100.31   web01172.16.100.32   web02172.16.100.33   web03172.16.100.41   db01 db01.etiantian.org172.16.100.51   backup172.16.100.61   nfs01172.16.100.10   m01

2.4.4 DNS域名解析

/etc/resolv.confnameserver DNS_SERVER_IP1nameserver DNS_SERVER_IP2nameserver DNS_SERVER_IP3search DOMAIN[root@repo-client ~]# cat /etc/resolv.conf# Generated by NetworkManagernameserver 192.168.100.2

2.4.5 修改 /etc/hosts和DNS的优先级

[root@repo-client ~]# cat /etc/nsswitch.conf |grep host#hosts:     db files nisplus nis dnshosts:      files dns myhostname

2.4.6 路由相关的配置文件

/etc/sysconfig/network-scripts/route-IFACE  #需手动创建这个文件,配置好后,重启能保存#两种风格:1) TARGET via GW    10.0.0.0/8 via 172.16.0.12) 每三行定义一条路由,比较繁琐,建议使用第一种ADDRESS#=TARGETNETMASK#=maskGATEWAY#=GW

2.5 网卡别名

将多个IP地址绑定到一个NIC上

每个IP绑定到独立逻辑网卡,即网络别名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3

范例:ifconfig命令

ifconfig eth0:0 192.168.1.100/24 upifconfig eth0:0 down[root@repo-client ~]# ifconfig|grep eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500[root@repo-client ~]# ifconfig eth0:0 176.16.100.11/16[root@repo-client ~]# ifconfig|grep eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500[root@repo-client ~]# ifconfig eth0:0 down[root@repo-client ~]# ifconfig|grep eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

范例:ip 命令

ip addr add 172.16.1.1/16 dev eth0ip addr add 172.16.1.2/16 dev eth0 label eth0:0ip addr del 172.16.1.2/16 dev eth0 label eth0:0ip addr flush dev eth0 label eth0:0[root@repo-client ~]# ip addr add 172.16.1.100/16 dev eth0 label eth0:0[root@repo-client ~]# ifconfig|grep eth0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500[root@repo-client ~]# ip a|grep eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute eth0    inet 172.16.1.100/16 scope global eth0:0[root@repo-client ~]# ip addr del 172.16.1.100/16Not enough information: "dev" argument is required.[root@repo-client ~]# ip addr del 172.16.1.100/16 dev eth0[root@repo-client ~]# ip a|grep eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute eth0[root@repo-client ~]# ip addr flush dev eth0    #清除eth0的ip地址

注:ip和ifconfig都是临时生效,重启后无法保存配置。

为每个设备别名生成独立的接口配置文件,格式为:ifcfg-ethX:xxx,保存后,重启也不丢失。

范例:配置eth0:1网卡别名的格式文件,别名中的IP地址只能是静态IP地址,不能使用DHCP服务器分配。

#配置文件[root@repo-client ~]# cd /etc/sysconfig/network-scripts/[root@repo-client network-scripts]# cat ifcfg-eth0:1DEVICE=eth0:1IPADDR=172.16.100.11PREFIX=16[root@repo-client network-scripts]# lsifcfg-eth0   ifcfg-eth0:1#配置后不会立即生效[root@repo-client network-scripts]# ip a|grep eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute eth0#需要重新挂载eth0,才能生效[root@repo-client network-scripts]# nmcli c reload[root@repo-client network-scripts]# nmcli c up eth0Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)[root@repo-client network-scripts]# ip a|grep eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 192.168.100.11/24 brd 192.168.100.255 scope global noprefixroute eth0    inet 172.16.100.11/16 brd 172.16.255.255 scope global noprefixroute eth0:1

注意:

  • 建议 CentOS 6 关闭 NetworkManager 服务
  • 网卡别名必须使用静态地址

3、使用配置文件实现bonding

3.1 多网卡 bonding

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

3.1.1 Bonding 工作模式

==Bonding共7种模式:0-6 Mode==

  • Mode 0 (balance-rr): 轮询(Round-robin)策略,从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力
  • Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见。
  • Mode 3 (broadcast):广播策略,在所有的slave接口上传送所有的报文,提供容错能力。

说明:

active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。

其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel。

3.1.2 创建bonding设备的配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0TYPE=bondDEVICE=bond0BOOTPROTO=noneIPADDR=10.0.0.100PREFIX=8#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路BONDING_OPTS="mode=1 miimon=100"

查看bond0状态:

/proc/net/bonding/bond0

3.2 实例:bond mode=1模式

1、配置bond和其他两块网卡[root@centos8 network-scripts]# cat ifcfg-bond0 ifcfg-ens33 ifcfg-ens37TYPE=bondDEVICE=bond0BOOTPROTO=noneIPADDR=192.168.100.222PREFIX=24BONDING_OPTS="mode=1 miimon=100"DEVICE=ens33BOOTPROTO=noneMASTER=bond0SLAVE=yesONBOOT=yesDEVICE=ens37BOOTPROTO=noneMASTER=bond0SLAVE=yesONBOOT=yes[root@centos8 network-scripts]# reboot2、重启后,重新连接[root@centos8 ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000    link/ether 00:0c:29:f9:bb:44 brd ff:ff:ff:ff:ff:ff3: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000    link/ether 00:0c:29:f9:bb:44 brd ff:ff:ff:ff:ff:ff4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000    link/ether 00:0c:29:f9:bb:44 brd ff:ff:ff:ff:ff:ff    inet 192.168.100.222/24 brd 192.168.100.255 scope global noprefixroute bond0       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:fef9:bb44/64 scope link       valid_lft forever preferred_lft forever[root@centos8 ~]# nmcli cNAME          UUID                                  TYPE      DEVICEBond bond0    ad33d8b0-1f7b-cab9-9447-ba07f855b143  bond      bond0System ens33  c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33System ens37  4a5516a4-dfa4-24af-b1c4-e843e312e2fd  ethernet  ens373、查看bond0状态[root@centos8 ~]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: ens33       #当前使用ens33MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Peer Notification Delay (ms): 0Slave Interface: ens33MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:f9:bb:44Slave queue ID: 0Slave Interface: ens37MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:f9:bb:4eSlave queue ID: 0#查看使用的mac地址[root@centos7 ~]# ping 192.168.100.222PING 192.168.100.222 (192.168.100.222) 56(84) bytes of data.64 bytes from 192.168.100.222: icmp_seq=1 ttl=64 time=0.321 ms64 bytes from 192.168.100.222: icmp_seq=2 ttl=64 time=0.610 ms64 bytes from 192.168.100.222: icmp_seq=3 ttl=64 time=0.371 ms64 bytes from 192.168.100.222: icmp_seq=4 ttl=64 time=0.454 ms64 bytes from 192.168.100.222: icmp_seq=5 ttl=64 time=1.29 ms[root@centos7 ~]# arp -nAddress                  HWtype  HWaddress           Flags Mask            Iface192.168.100.222          ether   00:0c:29:f9:bb:44   C                     eth04、拔掉ens33网线[root@centos8 ~]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: ens37       #使用第二块网卡MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Peer Notification Delay (ms): 0Slave Interface: ens33          #ens33网卡downMII Status: downSpeed: UnknownDuplex: UnknownLink Failure Count: 1Permanent HW addr: 00:0c:29:f9:bb:44Slave queue ID: 0Slave Interface: ens37MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:f9:bb:4eSlave queue ID: 0#查看网卡的状态,ethtool命令或mii-tool命令[root@centos8 ~]# ethtool ens33Settings for ens33:        Link detected: no[root@centos8 ~]# ethtool ens37Settings for ens37:        Link detected: yes

实例:mode=3模式

1、修改mode=3,即broadcast广播模式[root@centos8 network-scripts]# cat ifcfg-bond0TYPE=bondDEVICE=bond0BOOTPROTO=noneIPADDR=192.168.100.222PREFIX=24BONDING_OPTS="mode=3 miimon=100"#查看bond[root@centos8 ~]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (broadcast)MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Peer Notification Delay (ms): 0Slave Interface: ens33MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:f9:bb:44Slave queue ID: 0Slave Interface: ens37MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:f9:bb:4eSlave queue ID: 0[root@centos8 ~]#2、测试,DUP,会收到2个一样的答复。好处是容错能力强。这两块网卡同时工作,提供一模一样的数据[root@repo-client ~]# ping 192.168.100.222PING 192.168.100.222 (192.168.100.222) 56(84) bytes of data.64 bytes from 192.168.100.222: icmp_seq=1 ttl=64 time=0.524 ms64 bytes from 192.168.100.222: icmp_seq=1 ttl=64 time=0.637 ms (DUP!)64 bytes from 192.168.100.222: icmp_seq=2 ttl=64 time=0.431 ms64 bytes from 192.168.100.222: icmp_seq=2 ttl=64 time=0.447 ms (DUP!)64 bytes from 192.168.100.222: icmp_seq=3 ttl=64 time=0.307 ms64 bytes from 192.168.100.222: icmp_seq=3 ttl=64 time=0.324 ms (DUP!)

实例:删除bond0

1)卸载bond0ifconfig bond0 downrmmod bonding   #同modprobe -r bonding2)删除ifcfg-bond0配置文件3)恢复eth0和eth1等的配置文件4)重启网络服务centos6:service network restartcentos7以上:nmcli c reload            nmcli c up eth0 eth1

4、使用nmcli实现bonding

4.1 nmcli命令

nmcli命令相关术语

  • 设备即网络接口
  • 连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效

格式:

nmcli [ OPTIONS ] OBJECT { COMMAND | help }    device - show and manage network interfaces    nmcli device help    connection - start, stop, and manage network connections    nmcli connection help

修改IP地址等属性

nmcli connection modify IFACE [+|-]setting.property value    setting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual |auto

修改配置文件执行生效

nmcli con reloadnmcli con up con-name

nmcli命令对应ifcfg-*文件

nmcli con modifcfg**-*** 文件
ipv4.method manualBOOTPROTO=none
ipv4.method autoBOOTPROTO=dhcp
ipv4.addresses 192.168.2.1/24IPADDR=192.168.2.1 PREFIX=24
ipv4.gateway 172.16.0.200GATEWAY=172.16.0.200
ipv4.dns 8.8.8.8DNS0=8.8.8.8
ipv4.dns-search example.comDOMAIN=example.com
ipv4.ignore-auto-dns truePEERDNS=no
connection.autoconnect yesONBOOT=yes
connection.id eth0NAME=eth0
connection.interface-name eth0DEVICE=eth0
802-3-ethernet.mac-address . . .HWADDR= . . .

范例:

#查看帮助nmcli con add help#使用nmcli配置网络nmcli con show#显示所有活动连接nmcli con show --active[root@centos7 ~]# nmcli c showNAME   UUID                                  TYPE      DEVICEens33  a91ee66a-f9e5-49f3-9be2-ec3d509b0e69  ethernet  ens33ens37  4a5516a4-dfa4-24af-b1c4-e843e312e2fd  ethernet  ens37[root@centos7 ~]# nmcli c down ens37    #down掉ens37Connection 'ens37' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)[root@centos7 ~]# nmcli cNAME   UUID                                  TYPE      DEVICEens33  a91ee66a-f9e5-49f3-9be2-ec3d509b0e69  ethernet  ens33ens37  4a5516a4-dfa4-24af-b1c4-e843e312e2fd  ethernet  --[root@centos7 ~]# nmcli c show --active     #只显示活动的网卡NAME   UUID                                  TYPE      DEVICEens33  a91ee66a-f9e5-49f3-9be2-ec3d509b0e69  ethernet  ens33#显示网络连接配置的详细信息nmcli con show eth0#显示设备状态nmcli dev status[root@centos7 ~]# nmcli devDEVICE  TYPE      STATE         CONNECTIONens33   ethernet  connected     ens33ens37   ethernet  disconnected  --lo      loopback  unmanaged     --[root@centos7 ~]# nmcli dev statusDEVICE  TYPE      STATE         CONNECTIONens33   ethernet  connected     ens33ens37   ethernet  disconnected  --lo      loopback  unmanaged     --#显示网络接口属性nmcli dev show eth0[root@centos7 ~]# nmcli dev show ens33GENERAL.DEVICE:                         ens33GENERAL.TYPE:                           ethernetGENERAL.HWADDR:                         00:0C:29:21:F8:76GENERAL.MTU:                            1500GENERAL.STATE:                          100 (connected)GENERAL.CONNECTION:                     ens33GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1WIRED-PROPERTIES.CARRIER:               onIP4.ADDRESS[1]:                         192.168.209.11/24IP4.GATEWAY:                            192.168.209.2IP4.ROUTE[1]:                           dst = 192.168.209.0/24, nh = 0.0.0.0, mt = 100IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.209.2, mt = 100IP4.DNS[1]:                             192.168.209.2IP6.ADDRESS[1]:                         fe80::9ed9:d4db:e410:64dd/64IP6.GATEWAY:                            --IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255[root@centos7 ~]##创建新连接default,IP自动通过dhcp获取nmcli con add con-name default type Ethernet ifname eth0#删除指定的连接nmcli con del default[root@centos7 ~]# nmcli c del ens37Connection 'ens37' (4a5516a4-dfa4-24af-b1c4-e843e312e2fd) successfully deleted.[root@centos7 ~]# nmcli cNAME   UUID                                  TYPE      DEVICEens33  a91ee66a-f9e5-49f3-9be2-ec3d509b0e69  ethernet  ens33[root@centos7 ~]# ll /etc/sysconfig/network-scripts/ifcfg-  ifcfg-ens33  ifcfg-lo       ##ens37的配置文件也没有了#创建新连接static ,指定静态IP,不自动连接nmcti con add con-name static ifname eth0 autoconnect no type Ethernetipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254#启用static连接配置nmcli con up static#启用default连接配置nmcli con up default#修改连接设置nmcli con mod “static” connection.autoconnect nonmcli con mod “static” ipv4.dns 172.25.X.254nmcli con mod “static” +ipv4.dns 8.8.8.8nmcli con mod “static” -ipv4.dns 8.8.8.8nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”nmcli con mod “static” +ipv4.addresses 10.10.10.10/16#DNS设置存放在/etc/resolv.conf,PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取等价于下面命令nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

4.2 nmcli实现bonding

常用命令:

#添加bonding接口nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup#添加从属接口nmcli con add type bond-slave ifname ens7 master bond0nmcli con add type bond-slave ifname ens3 master bond0#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成#要启动绑定,则必须首先启动从属接口nmcli con up bond-slave-eth0nmcli con up bond-slave-eth1#启动绑定nmcli con up mybond0

实例:使用nmcli实现bonding

#1)初始化两块网卡及原ip地址信息[root@centos7 network-scripts]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:21:f8:76 brd ff:ff:ff:ff:ff:ff    inet 192.168.209.11/24 brd 192.168.209.255 scope global noprefixroute ens33       valid_lft forever preferred_lft forever    inet6 fe80::9ed9:d4db:e410:64dd/64 scope link noprefixroute       valid_lft forever preferred_lft forever3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:21:f8:80 brd ff:ff:ff:ff:ff:ff[root@centos7 network-scripts]# nmcli cNAME   UUID                                  TYPE      DEVICEens33  a91ee66a-f9e5-49f3-9be2-ec3d509b0e69  ethernet  ens33#2)添加bond0接口,bond模式为mode1(active-backup)[root@centos7 network-scripts]# nmcli con add type bond con-name mybond0 ifname bond0 mode active-backupConnection 'mybond0' (0240cad5-db79-4832-96f1-398cf3a9633c) successfully added.[root@centos7 network-scripts]# ls ifcfg*ifcfg-ens33  ifcfg-lo  ifcfg-mybond0#3)添加ens33和ens37为bond0的从属接口[root@centos7 network-scripts]# nmcli con add type bond-slave ifname ens37 master bond0Connection 'bond-slave-ens37' (60e13f31-5f0d-45b5-93ac-18a1e24ec175) successfully added.[root@centos7 network-scripts]# nmcli con add type bond-slave ifname ens33 master bond0Connection 'bond-slave-ens33' (069c01fc-d7cb-44a9-8ea7-5ae3a5e14d69) successfully added.[root@centos7 network-scripts]# nmcli cNAME              UUID                                  TYPE      DEVICEmybond0           0240cad5-db79-4832-96f1-398cf3a9633c  bond      bond0ens33             a91ee66a-f9e5-49f3-9be2-ec3d509b0e69  ethernet  ens33bond-slave-ens37  60e13f31-5f0d-45b5-93ac-18a1e24ec175  ethernet  ens37bond-slave-ens33  069c01fc-d7cb-44a9-8ea7-5ae3a5e14d69  ethernet  --#4)启用从属接口[root@centos7 network-scripts]# nmcli con up bond-slave-ens33Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/11)[root@centos7 network-scripts]# nmcli con up bond-slave-ens37Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)[root@centos7 network-scripts]# ip a6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000    link/ether 00:0c:29:21:f8:80 brd ff:ff:ff:ff:ff:ff    inet6 fe80::6147:711:da31:1859/64 scope link noprefixroute       valid_lft forever preferred_lft forever#5)bond0设置ip地址等信息[root@centos7 network-scripts]# nmcli con mod mybond0 ipv4.addresses 192.168.209.12/24 ipv4.gateway 192.168.209.2 ipv4.dns 223.6.6.6 ipv4.method manual[root@centos7 network-scripts]# cat ifcfg-mybond0BONDING_OPTS=mode=active-backupTYPE=BondBONDING_MASTER=yesPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=mybond0UUID=0240cad5-db79-4832-96f1-398cf3a9633cDEVICE=bond0ONBOOT=yesIPADDR=192.168.209.12PREFIX=24GATEWAY=192.168.209.2DNS1=223.6.6.6[root@centos7 network-scripts]# nmcli cNAME              UUID                                  TYPE      DEVICEens33             a91ee66a-f9e5-49f3-9be2-ec3d509b0e69  ethernet  ens33mybond0           0240cad5-db79-4832-96f1-398cf3a9633c  bond      bond0bond-slave-ens37  60e13f31-5f0d-45b5-93ac-18a1e24ec175  ethernet  ens37bond-slave-ens33  069c01fc-d7cb-44a9-8ea7-5ae3a5e14d69  ethernet  --#6)启用bond-slave-ens33,并删除ens33接口[root@centos7 network-scripts]# nmcli c up bond-slave-ens33[root@centos7 ~]# nmcli c del ens33[root@centos7 ~]# nmcli cNAME              UUID                                  TYPE      DEVICEmybond0           0240cad5-db79-4832-96f1-398cf3a9633c  bond      bond0bond-slave-ens33  069c01fc-d7cb-44a9-8ea7-5ae3a5e14d69  ethernet  ens33bond-slave-ens37  60e13f31-5f0d-45b5-93ac-18a1e24ec175  ethernet  ens37[root@centos7 ~]# reboot[root@centos7 ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000    link/ether 00:0c:29:21:f8:76 brd ff:ff:ff:ff:ff:ff3: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000    link/ether 00:0c:29:21:f8:76 brd ff:ff:ff:ff:ff:ff4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000    link/ether 00:0c:29:21:f8:76 brd ff:ff:ff:ff:ff:ff    inet 192.168.209.12/24 brd 192.168.209.255 scope global noprefixroute bond0       valid_lft forever preferred_lft forever    inet6 fe80::6147:711:da31:1859/64 scope link noprefixroute       valid_lft forever preferred_lft forever#7)查看bond0状态,首选是ens33网卡,ens37备用[root@centos7 ~]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: ens33MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Slave Interface: ens33MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:21:f8:76Slave queue ID: 0Slave Interface: ens37MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:21:f8:80Slave queue ID: 0#8)测试,断掉ens33网卡,就使用第二块网卡Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: ens37       #使用第二块网卡MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0Peer Notification Delay (ms): 0Slave Interface: ens33          #ens33网卡downMII Status: downSpeed: UnknownDuplex: UnknownLink Failure Count: 1Permanent HW addr: 00:0c:29:f9:bb:44Slave queue ID: 0Slave Interface: ens37MII Status: upSpeed: 1000 MbpsDuplex: fullLink Failure Count: 0Permanent HW addr: 00:0c:29:f9:bb:4eSlave queue ID: 0
©著作权归作者所有:来自51CTO博客作者puppydong的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 这也能用Jenkins?快速实现一个定期批量登录远程虚拟机并支持添加
  2. sh nginx 虚拟主机安装卸载
  3. OpenStack新建云主机流
  4. Ansible与cmdb配合使用动态inventory
  5. Prometheus监控CPU,Memory,Disk
  6. 实战--Playbook批量更改服务器主机名
  7. 解决docker服务默认网卡和宿主机网卡内网段冲突
  8. TCPIP卷一(5):Classless【无类】与Classful【有类】区别 【包括数据
  9. 华为交换机配置基于IP地址划分VLAN

随机推荐

  1. 临摹源码 | 一比一手写Dubbo源码中的SPI(
  2. 最良心的Python安装说明
  3. 小编的2017年度计划及最近改变
  4. 源码实战 | 从一次问题排查聊聊问什么要
  5. Python超越Java成为最受欢迎的教学语言;9
  6. 源码实战 | 从线程池理论聊聊为什么要看
  7. [简讯] 微软Linux子系统已经支持中文
  8. dubbo源码解析-简单原理、与spring融合
  9. centos7 systemctl 开机自起 tomcat
  10. 双链表