网络层IP简介及网络管理工具

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43058911/article/details/100688035

网络层简介

网络层(Network Layer)是OSI模型中的第三层(TCP/IP模型中的第二层),提供路由寻址的功能,使两终端主机能够互连并且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。相当于发送邮件时需要地址一般重要。由于TCP/IP协议体系中的网络层功能由IP协议规定和实现。

网络层IP协议解决了一个单一网络上传输数据包的问题。


IP地址

网络层IP协议中还有一个非常重要的内容,那就是给互联网上的每台计算机和其它设备都规定了一种地址,叫做“IP 地址”,又称为逻辑地址。由于有这种地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。一个IP地址在整个因特网范围内是唯一的。

IP地址由32位二进制组成,将二进制转换为字节就是4字节。


IP地址分类

在这里插入图片描述
主要说明一个网络内能容纳的主机数
A类规定前8位二进制为网络位,后24位为主机位,并且网络位的前8位首位必须为0.

网络位:占用1个字节,0xxx xxxx,只有7位可用,所以网络位为 2^7-2,1~126
	-2是因为网络位全为0(000 0000)时为保留地址,网络位为0(111 1111)时为本地回环地址127.0.0.0,去掉这两个才是真正可用的。
主机位:占用3个字节,也就是24位,得出可用主机数为2^24-2。
	-2是因为主机位全为0时用来表示本网络的单个网段,区分不同网络。主机位全为1时表示本网络的广播地址
A类私有地址:10.0.0.0~10.255.255.255

B类规定前16位为网络位,后16位为主机位,并且网络位的前8位的首2位必须为10

网络位:占用2个字节,10xxx xxx.X,有17位可用,所以网络位总数为 2^14,128.0~191.255
主机位:占用2个字节,也就是16位,得出可用主机数为2^16-2。
	-2是因为主机位全为0时用来表示本网络的单个网段,区分不同网络,主机位全为1时表示本网络的广播地址
B类私有地址:172.16.0.0~172.31.255.255

C类规定前24位为网络位,后8位为主机位,并且网络位前8位的首3位必须为110

网络为:占3个字节,110x xxxx.X.X,有21位可用,所以网络位总数为2^21,192.0.0~223.255.255
主机位:占1个字节,也就是8位,得出主机数为2^8-2.
	-2是因为主机位全为0时用来表示本网络的单个网段,区分不同网络,主机位全为1时表示本网络的广播地址
C类私有地址:192.168.0.0 -- 192.168.255.255

D类为组播地址
E类地址保留
以上是老的分配方法,固定的分配方法,因为现在的IPV4数量有限,某些场景下会浪费资源,所以出现了新的技术CIDR。


CIDR无类别域间路由

无类别域间路由(Classless Inter-Domain Routing、CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。

一个IP地址包含两部分:标识网络的前缀和紧接着的在这个网络内的主机地址。在之前的分类网络中,IP地址的分配把IP地址的32位按每8位为一段分开。这使得前缀必须为8,16或者24位。因此,可分配的最小的地址块有256(24位前缀,8位主机地址,28=256)个地址,而这对大多数企业来说太少了。大一点的地址块包含65536(16位前缀,16位主机,216=65536)个地址,而这对大公司来说都太多了。这导致不能充分使用IP地址和在路由上的不便,因为大量的需要单独路由的小型网络(C类网络)因在地域上分得很开而很难进行聚合路由,于是给路由设备增加了很多负担。

无类别域间路由是基于可变长子网掩码(VLSM)来进行任意长度的前缀的分配的。
子网掩码是一种把前缀编成一种与IP地址相似的形式的掩码。一个子网掩码一共有32位,被分为连续的两部分,高位部分的每一位都被设为二进制的1,其余部分的每一位均被设为二进制的0。其中为1的位的数目和前缀的长度相同。它也被写成点分十进制的形式。子网掩码的作用和前缀一样,但是掩码这种形式出现得比前缀要早。

CIDR用可变长子网掩码根据各人需要来分配IP地址,而不是按照一个全网络约定的规则。所以,网络/主机的划分可以在地址内的任意位置进行。这个划分可以是递归进行的,即通过增加掩码位数,来使一部分地址被继续分为更小的部分。整个互联网现在都在使用CIDR/VLSM网络地址。

CIDR表示法:IP/网络ID位数

CIDR通过子网掩码计算IP地址的具体范围。

给定IP地址167.77.88.99和掩码255.255.255.192,子网号是什么?广播地址是什么?有效IP地址是什么?

计算方法为:通过掩码的全为1位和全为0位对应IP地址的对比进行与运算,1与任何数(N)都为N,0与任何数(N)都为0
	将掩码和IP通过下面二进制转换十进制方法反过来将十进制转换为二进制
	IP: 	 166		  77		  88		99
	   	   10100110    01001101    01010110  01100011
	MASK:	 255	   	  255		  255		192
		   11111111	   11111111	   11111111  11000000
	进行与运算:1与任何数(N)都为N,0与任何数(N)都为0
		   11111111	   11111111	   11111111  11 000000		
		   10100110    01001101    01010110  01 100011
	得出:  10100110    01001101    01010110  01 000000
			 166          77          88        64
	最后得出:
		子网号:26
		网段:166.77.88.64
		第小IP:166.77.88.65
		最大IP:166.77.88.126
		广播地址:166.77.88.127

二进制转十进制方法

1.第一种:

00000001 = 1

00000010 = 2

00000100 = 4

00001000 = 8

00010000 = 16

00100000 = 32

01000000 = 64

10000000 = 128

2.第二种:

00000001 = 1

00000011 = 3

00000111 = 7

00001111 = 15

00011111 = 31

00111111 = 63

01111111 = 127

3.第三种:

10000000 = 128

11000000 = 192

11100000 = 224

11110000 = 240

11111000 = 248

11111100 = 252

11111110 = 254


Linux网卡配置介绍

centos6网卡名的配置文件:/etc/udev/rules.d/70-persistent-net.rules
	修改网卡名称之后需要卸载网卡驱动重装一次就好了
	查看网卡驱动:
		dmesg | grep -i eth0 
		ethtool -i eth0
	查看模块:lsmod
	卸载网卡驱动:只是内存中卸载,虚拟机中叫e1000,物理机不一定
		modprobe -r e1000
		rmmod e1000 
	装载网卡驱动:
		modprobe e1000

将centos7网卡名恢复为传统名称:eth0,eth1
	编辑/etc/default/grub
		GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
	为grub2生成配置文件
		grub2-mkconfig -o /etc/grub2.cfg
	重启系统:reboot

linux主机连接到网络的基本配置
	/etc/sysconfig/network-scripts/ifcfg-eth0
		DEVICE:	此配置文件应用到的设备
		ONBOOT:	在系统引导时是否激活此设备
		HWADDR:	对应的设备的MAC地址
		BOOTPROTO:	激活此设备时使用的地址配置协议,常用的dhcp,static,none,bootp
		NM_CONTROLLEDl:NM是NetworkManager的简写,次网卡是否接受NM控制,建议centos6位’no‘
		NAME:		对外的名字
		IPADDR:	IP地址
		PREFIX:	子网掩码,8,16,24,这样表示形式的
		GATEWAY:	网关
		DNS1:		DNS服务器地址
		DNS2:		冗余DNS服务器
	/usr/share/doc/initscripts-9.49.30/sysconfig.txt:配置文件的说明参考
静态路由的配置方法,没有则创建该文件:
	/etc/sysconfig/network-scripts/route-eth0
	格式:	10.0.0.0/8 via 172.16.0.1

添加IP地址192.168.2.2/24到eth0网卡上

编辑/etc/sysconfig/network-scripts/ifcfg-eth0
	内容:
		DEVICE=eth0
		ONBOOT=yes
		BOOTPROTO=static
		NM_CONTROLLEDl=no
		NAME=eth0
		IPADDR=192.168.2.2
		PREFIX=24
		GATEWAY=192.168.2.1
		DNS1=114.114.114.114
		DNS2=223.5.5.5

Linux网络管理工具

ifconfig
	ifconfig eth0 down :临时关闭
	ifconfig eth0 up :启动
	ifdown eth0  :关闭
	ifup eth0 :开启
	ifconfig eth0 IP/netmask : 临时

route :路由
	-n:数字化显示
	add:
		-host:主机路由				gw:指定网关
		-net:网络路由IP/netmask 		gw:指定网关
		default:默认路由
	del 192.168.0.1
	
ip 	:tab键查看子命令和选项
	ip [option]	odject {command|help}		
	网络层		
		ip addr add IP/netmask dev ens33	为网卡添加IP
		ip addr del IP/netmask dev ens33	删除指定网卡的指定IP
		ip addr flush dev ens33				清空指定网卡上所有IP
		ip route add 192.168.0.0/24 via 192.16.0.1 dev ens33
		添加网关:ip route add default via 172.16.0.1
	数据链路层
		ip link show ens33 			查看信息
		ip link set ens33 down|up 	启动或关闭
ss:命令
	netstat通过遍历/proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息
	选项:
		-t:tcp协议相关
		-u:udp协议相关
		-w:裸套接字相关
		-x:unix sock相关
		-l:listen状态相关
		-a:所有
		-n:数字显示
		-p:相关程序的PID
		-e:扩展的信息
		-m:内存使用信息
		-o:计时器信息
	常用组合:
		ss -l :显示本地打开的所有端口
		ss -pl:显示每个进程具体打开的socket
		ss -ta:显示所有TCP的socket
		ss -ua:显示所有UDP的socket
		ss -s :列出当前socket详细信息
		ss -o state established	'(dport = :ssh)'

Bonding技术

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

模式:
mode 0 (balance-rr)
	轮转策略:从头到尾顺序的在每一个slave接口上发送数据包,本模式提供负载均衡和容错的能力
mode 1 (active-backup)
	活动-备份策略:只有一个slave被激活,当活动的slave接口失效时才会激活其他slave,为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口可见
mode 3 (broadcast)
	广播策略:在所有slave接口上传送所有数据报,提供容错能力
注意:active-backup、balance-tlb、balance-alb模式不需要交换机的任何特殊配置,其他的绑定模式需要配置交换机以便整合连接,如思科交换机在模式0、2、3中使用etherchanne,但在模式4中需要LACP和etherchannel

bonding配置		bond(结合,凝聚)
	/etc/sysconfig/network-scripts/ifcfg-bond0
		DEVICE=bond0
		BOOTPROTO=none
		BONDING_OPTS="mode=0 miimon=100"	:mode是bonding的模式,用哪种,填哪种;
											  miimion是多网卡之间经过多长时间互相发送一个报文,测一下对方是否工作正常,如有损坏,立马接替工作;
bonding需要物理网卡配合使用,以下是物理网卡的配置:
	/etc/sysconfig/network-scripts/ifcfg-eth0
		DEVICE=eth0
		MASTER=bond0		:指明配合哪个bond,认为bond是主
		SLAVE=yes			:说明本网卡是辅助
		BOOTPROTO=none				
		USERCTL=none		:不允许用户操作

查看bond状态:/proc/net/bonding/bond#

bonding 的删除:
	ifconfig down :先禁用网卡
	lsmod | grep "bond"	:查看bond的模块
	rmmod bonding		:删除模块
		将原网卡配置文件恢复,重启网络服务即可

官网介绍:
https://www.kernel.org/doc/Documentation/networking/bonding.txt

猜你喜欢

转载自blog.csdn.net/qq_43058911/article/details/100688035