1、总结ip分类以及每个分类可以分配的IP数量
网络中的每一个主机或路由器至少有一个ip地址;
在Internet中不允许有两个设备具有同样的IP地址;
IP地址采用分层结构;
IP地址是由网络号(net ID)与主机号(host ID)两部分组成的。
IP地址长度为32位,点分十进制(dotted decimal)地址;
采用x.x.x.x的格式来表示,每个x为8位,每个x的值为0~255(例如 202.113.29.16);
根据不同的取值范围,IP地址可以分为五类;
IP地址中的前5位用于标识IP地址的类别:
A类地址的第一位为0;
B类地址的前两位为10;
C类地址的前三位为110;
D类地址的前四位为1110;
E类地址的前五位为11110。
IP地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。全0和全1的都保留不用。
A类:
(1.0.0.0-126.0.0.0)
第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。
定义:第1字节为网络地址,其它3个字节为主机地址
范围:1.0.0.1-126.255.255.254
数量:允许有126个网段,每个网段允许有16777214台主机
子网掩码:255.0.0.0
私有地址:10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址),范围10.0.0.1-10.255.255.254
保留地址:127.X.X.X是保留地址,也是本机地址,等效于localhost或本机IP。一般用于测试使用。例如:ping 127.0.0.1来测试本机TCP/IP是否正常。
B类(128.0.0.0-191.255.0.0)
前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。
定义:第1字节和第2字节为网络地址,其它2个字节为主机地址
范围:128.0.0.1-191.255.255.254
数量:允许有16384个网段,每个网段允许有65534台主机
子网掩码:255.255.0.0
私有地址:172.16.0.0 - 172.31.255.255是私有地址
保留地址:169.254.X.X是保留地址。如果IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP
C类
(192.0.0.0-223.255.255.0)
前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络。
定义:第1字节、第2字节和第3个字节为网络地址,第4个个字节为主机地址。另外第1个字节的前三位固定为110
范围:192.0.0.1 - 223.255.255.254
数量:允许有2097152个网段,每个网段允许有254台主机
子网掩码:255.255.255.0
私有地址:192.168.X.X是私有地址。(192.168.0.0 - 192.168.255.255)
D类:
是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户。
定义:不分网络地址和主机地址,它的第1个字节的前四位固定为1110
范围:224.0.0.1 - 239.255.255.254
E类:
是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。
定义:不分网络地址和主机地址,它的第1个字节的前五位固定为11110
范围:240.0.0.1 - 255.255.255.254
CIDR:无类域间路由
由于早期的IP地址的划分会浪费太多的IP地址,所以,现在都是用CIDR表示法,为此引入了子网掩码的概念,即网络位的个数可以任意指定。该方法兼容早期的IP划分方法。
CIDR表示方法:IP地址/网络ID的位数(网段的划分更加灵活)
子网掩码:子网掩码的作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分,并说明该IP地址是在局域网上,还是在远程网上,具体方法待会儿再讲。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码的二进制格式中的网络位全为1。这样二进制格式的子网掩码和二进制的IP地址进行“与”运算,可以得出该IP地址的网络位。
允许的子网掩码的值:
10000000-128;
11000000-192;
11100000-224;
11110000-240;
11111000-248;
11111100-252;
11111110-254;
11111111-255;
最小IP:主机ID不能全为0,全为0表示网络ID
最大IP:主机ID不能全为1,全为1表示本地广播
CIDR技术用子网掩码中连续的1部份表示网络ID,连续的0部份表示主机ID。
比如,网络中包含2000台计算机,只需要用11位表示 主机ID,用21位表网络ID,则子网掩码表示为11111111.11111111.11111000.00000000,转换为十进制则为 255.255.248.0。
此时,该网络将包含2046台计算机,既不会造成IP地址的浪费,也不会利用路由器连接网络,增加额外的管理维护量.
计算会用到的公式:
1、主机数=2^主机ID位-2
2、网络数=2^可变的网络ID位
3、网络ID=IP和netmask 相与
4、划分子网数=2^网络ID向主机ID借的位数
5、划分子网损失IP数=2*(划分子网数-1)
(因为每段子网中的第一个IP地址用来表示网络位,而最后一个IP地址都被用来表示本网段中的广播。)
2、总结IP配置方法
ip配置
一, 使用ifconfig命令
ifconfig命令:查看与配置网络状态命令
**多IP设置
临时来设置eth0网卡的ip地址和子网掩码
ifconfig eth0 192.168.233.189 netmask 255.255.255.0
ifconfig eth0:1 192.168.233.233 netmask 255.255.255.0**
**多IP设置
临时来设置eth0网卡的ip地址和子网掩码
ifconfig eth0 192.168.233.189 netmask 255.255.255.0
ifconfig eth0:1 192.168.233.233 netmask 255.255.255.0**
二.setup工具
永久配置IP地址(红帽专用),这种方式虽然简单,但是不建议使用这种方式。
setup工具的安装和配置
1、安装setuptool
#yum install setuptool
2、安装防火墙设置
yum install system-config-securitylevel-tui
3、安装网络设置
#yum install system-config-network-tui
4、安装系统服务管理
#yum install ntsysv
安装完成之后,
运行 setup命令,然后就可以进入setup操作界面了
1.输入setup命令
2.选择网络服务
3.进行设备配置
4.进行相关参数配置
5.保存后
执行 service network restart
命令重启网络服务
1、安装setuptool
#yum install setuptool
2、安装防火墙设置
yum install system-config-securitylevel-tui
3、安装网络设置
#yum install system-config-network-tui
4、安装系统服务管理
#yum install ntsysv
安装完成之后,
运行 setup命令,然后就可以进入setup操作界面了
1.输入setup命令
2.选择网络服务
3.进行设备配置
4.进行相关参数配置
5.保存后
执行 service network restart
命令重启网络服务
三 修改网络配置文件
打开配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
eth0通过 命令 ip addr获取,
在这里插入图片描述
配置内容如下:
TYPE=Ethernet #网络类型 以太网
BOOTPROTO=static
#1.这里可以为=none(过指定方式的办法来获得地址,如果没有指定的话可能会出现各种各样的网络受限 )
#2.=dhcp 自动获取ip地址
#3.=static 固定ip地址
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33 #网卡名称(用户看到的网卡名)
UUID=858e2bc3-1e47-4320-9227-b0029c8csaa6 #网卡的唯一标识符
DEVICE=enw33 #系统逻辑设备名
ONBOOT=yes #是否开机启动网卡 选项(no/yes)centos7默认no
IPADDR=192.168.233.129 #指定的ip地址 如果你是dhcp这里是没有的
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.233.1 #网关
DNS1=114.114.114.114 #指定的第一个DNS服务器
TYPE=Ethernet #网络类型 以太网
BOOTPROTO=static
#1.这里可以为=none(过指定方式的办法来获得地址,如果没有指定的话可能会出现各种各样的网络受限 )
#2.=dhcp 自动获取ip地址
#3.=static 固定ip地址
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33 #网卡名称(用户看到的网卡名)
UUID=858e2bc3-1e47-4320-9227-b0029c8csaa6 #网卡的唯一标识符
DEVICE=enw33 #系统逻辑设备名
ONBOOT=yes #是否开机启动网卡 选项(no/yes)centos7默认no
IPADDR=192.168.233.129 #指定的ip地址 如果你是dhcp这里是没有的
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.233.1 #网关
DNS1=114.114.114.114 #指定的第一个DNS服务器
修改完毕后,进行服务的重启
修改后需 重启网卡
centos 6及之前系统版本的重启命令
/etc/init.d/network restart
或者service netword restart
centos 7重启网卡命令
systemctl restart network
centos 6及之前系统版本的重启命令
/etc/init.d/network restart
或者service netword restart
centos 7重启网卡命令
systemctl restart network
四 图形界面配置IP地址,
进行系统桌面进行配置,和windows的配置类似
3、使用nmcli实现bonding
多网卡绑定
“Bonding” 和 “nmcli的网络组Network Teaming”
二者实现的功能一样,但从某种角度,网络组要比Bonding的技术要好
网络接口配置:Bonding
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡被修改为相同的MAC地址。
一、Bonding工作模式
多网卡绑定有很多模式,如下:
Mode 0 (balance-rr):
轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力。如第一个数据包用网卡1转发,第二个数据包由网卡2转发。
Mode 1 (active-backup)
活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱,此时绑定的MAC地址只有一个外部端口上可见。即,平时只有一个网卡工作,当网卡坏掉会自动启动第二个网卡工作。
Mode 3 (broadcast)
广播策略:在所有的slave接口上传送所有的报文,提供容错能力。即在所有的网卡上传输一样的数据。
还有其它的模式:
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式Mode 0、Mode 2 和Mode 3 中使用 EtherChannel,但在模式Mode 4中需要 LACP和EtherChannel
二、Bonding配置
1.bonding设备的配置文件
第一步:创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
推荐的配置的项有:
DEVICE=设备名称,如bond0
BOOTPROTO=协议,如none
BONDING_OPTS=指定工作模式,如 “miimon=100 mode=0”表示工作模式"Mode 0",且没100ms监测一次链路连接状态。
说明:
miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
第二步:在要加入bonding的网卡,的配置文件里写入bonding设备的项。如下:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0《======
SLAVE=yes 《======
USERCTL=no
写入上面两行后,网卡就不可以单独工作了,而是成为bonding的附属设备工作。可配置多个网卡配置文件加入bonding设备,且binding所属的网卡,显示的MAC地址都一样。
2.查看bond0的状态
查看bond0的状态:/proc/net/bonding/bond0
查看当前有几个bonding:/sys/class/net/bonding_masters
3.删除bond0
第一步:禁用bonding
ifconfig bond0 down
第二步:卸载bonding驱动模块
rmmod bonding
第三步:删除bonding的配置文件及所属网卡配置文件里bonding的项
第四步:重启网络服务
4.bonding的详细帮助
/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt
5.实验Mond 1 活动-备份(主备)策略
1.确保你有两个网卡,并且都在一个网络,如果用虚拟机做实验,要确保两个网卡是一个模式,如“仅主机模式”。
2.创建bonding设备的配置文件
在/etc/sysconfig/network-scripts目录创建文件ifcfg-bond0
DEVICE=bond0 \\设备名称
BOOTPROTO=none \\协议
IPADDR=192.168.36.6 \\bonding的ip地址
PREFIX=24 \\子网掩码
GATEWAY=192.168.36.254 \\网关
DNS1=192.168.36.6 \\DNS
BONDING_OPTS=miimon=100 mode=1
3.在网卡的配置文件里加入bonding的项
进入/etc/sysconfig/network-scripts/ifcfg-ethXX
添加行:
MASTER=bond0
SLAVE=yes
添加后,文件原来指定的静态或动态地址就会失效,生效的是bonding地址
4.确保NetworkManager服务关闭,并重启network服务
Centos6:
service NetworkManager status 查看服务状态
chkconfig NetworkManager off \\关闭自动启动
service NetworkManager stop \\关闭服务
service network restart \\重启网络服务
Centos7:
systemctl status NetworkManager 查看服务状态
systemctl stop NetworkManager 临时停止
systemctl disable NetworkManager 下次开机即停止服务
systemctl restart network \\重启网络服务
5.查看bonding:“ifconfig”
6.检测
停用一个网卡,在ping“bond0”地址,能ping通证明binding的"Mode 1"模式生效了。
7.查看binding设备中,“Mode 1”模式下,binding所属的哪个网卡在活动:
方法一:使用watch -n1 netstat -i查看,不明显可以用另一台电脑ping“binding”的IP地址
方法二:查看/proc/net/bonding/bond0文件
网络组Network Teaming
概念:
网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现.
多种方式(模式)runner:
broadcast(广播策略)《===》对应bonding模式mode 3
roundrobin(轮转策略)《===》对应bonding模式mode 0
activebackup(活动-备份(主备)策略)《===》对应bonding模式mode 1
loadbalance(限定流量)《===》对应bonding模式mode 2
lacp(implements the 802.3ad Link Aggregation Control Protocol:实现802.3ad链路聚合控制协议)《===》对应bonding模式mode 4
参考链接:https://www.cnblogs.com/lqynkdcwy/p/9548668.html
注意事项:
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port接口总会自动启动网络组接口
禁用网络组接口会自动禁用网络组中的port接口
没有port接口的网络组接口可以启动静态IP连接
启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组
1.创建网络组接口
nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME表示连接名
INAME表示接口名
JSON指定runner方式(模式),格式如下:
'{"runner": {"name": "METHOD"}}',其中METHOD 可以是:
broadcast
roundrobin
activebackup
loadbalance
lacp
2.创建port接口
`nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
CNAME 连接名
INAME 网络接口名
TEAM 网络组接口名
连接名若不指定,默认为team-slave-IFACE
nmcli dev dis INAME
nmcli con up CNAME
INAME 设备名 CNAME 网络组接口名或port接口
3.新网络组的配置文件
示例
网络组的配置文件/etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.16.0.100
PREFIX0=24
NAME=team0
ONBOOT=yes
网络组所属网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes
4.创建网络组示例
示例1:
nmcli con add type team con-name myteam0 ifname team0 config
'{“runner”: {“name”: “loadbalance”}}' ipv4.addresses
192.168.1.100/24 ipv4.method manual
示例2:
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
示例3:
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
示例4:
nmcli con up myteam0
示例5:
nmcli con up team0-eth1
示例6:
nmcli con up team0-eth2
示例7:查看tean0状态
teamdctl team0 state
示例8:
nmcli dev dis eth1
5.实验:创建、删除网络组
1)创建网络组team0
查看网络连接
ip link
创建网络组team0,名字为myteam0,模式是主备模式
nmcli con add type team con-name myteam0 ifname team0 config'{"runner": {"name": "activebackup"}}'
给网络组添加IP地址
nmcli con mod team0 ipv4.addresses '192.168.0.100/24'
手工指定
nmcli con mod team0 ipv4.method manual
将物理网卡eth1加入网络组etam0
nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
将物理网卡eth2加入网络组etam0
nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0
将网络组关联的两个物理网卡启用
nmcli con up team0-port1
nmcli con up team0-port2
查看网络组状态
teamdctl team0 state
nmcli connection
2.删除网络组team0
首先禁用网络组team0
nmcli connection down team0
查看网络组
teamdctl team0 state
nmcli connection show
删除网络组的网卡设备
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
在查看网络组
查看网络组
teamdctl team0 state
nmcli connection show
删除网络组
示例:删除网络组team0
首先禁用网络组team0
nmcli connection down team0
查看网络组
teamdctl team0 state
nmcli connection show
删除网络组的网卡设备
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
在查看网络组
查看网络组
teamdctl team0 state
nmcli connection show