ip地址的分类
既然每个人的ip地址都不一样,那一台主机怎么通过ip地址找到另一台主机的呢,茫茫人海,不可能一个个查找把,所以就有专门的人来管理和分配这个ip地址,看看以前怎么分的地址(了解)
网络号由你所连的网决定,学校的局域网,公司的局域网,城市的广域网等,就是相当于先市、在区、在到村这样的。跟快递一样,你ip地址肯定也得这样分,先找到大的,然后慢慢一层层找下去。
A类地址:网络号有8位,第一位固定为0,127种,主机号有24位,那么就能给该类地址划分16777215个ip地址,也就1千多万个地址,意思就是比如你需要组建一个有1千多万台主机的网络,
那么你就要去分配一个A类地址,要求给你一个网络号,然后其中1千多万的ip地址就由你自己分配了,最多也就只能分配127个这样的网络
B类:网络号、主机号16位,就能有65535个网络号和65535个主机号了。
C类:网络号有24位,也就能够分配1000多万个网络,但是主机号只有8位,也就是只能够自己分配254台主机最多
D类:用于多播,多播后面讲
E类:留着以后用
这就是我们老早以前所使用的ip地址,就是这样分的,这样看起来很合理啊,你看B类中,有那么多种,肯定够分了把,但是会暴露出一个问题就是,C类地址只能分配254台主机,
现在中小型网络那么多,都超过了254台电脑,如果A公司有1000台电脑,那他肯定要去分配B类地址,就造成了几万个的ip地址浪费了。这显然不是很合理。
以前
================================================================================================
现在:
划分子网 = <网络号>+<子网号>+<主机号>
这是ip地址分类的第二大步,中间加了一个子网号,这样就加大了对上面的A类和B类地址的使用率。也就减少了A类和B类地址的浪费,但是也有问题就是C类地址不管怎么划分,
他所容纳的主机太小了,随着网路的扩增,人人度使用电脑,那么A类和B类迟早度会用光,所以就用到了我们现在的IP地址。
无分类编址 = <网路前缀>+<主机号> 这个就是我们现在用的ip地址的算法。
这个一看,跟第一种分类编址一样呀,其实很大的不同就在于分类编址的网络号不能变,是固定长度,而无分类编址通过网络前缀可变化,就能根据你需要多少个主机号来自由给你分配网络前缀了。
网络前缀:也就是用不定长的一连串1来表示ip地址的网络号。什么意思呢?
网络前缀:255.0.0.0 ip地址:192.168.1.1 那么该ip地址的前8位就属于网络号。
网络前缀:255.224.0.0 ip地址:192.255.1.1 因为255是8个1,224是111 00000 ,所以前11位表示网络号,也就是这个ip地址是处于192.224.0.0这个网络中,在这个网络中,能包含21个1转换为10进制这么多的主机。
这个网络前缀我们也称子网掩码,所以现在知道ip地址和我们的子网掩码什么意思了吗。
例如:已知ip地址141.14.72.24,所在网络的子网掩码是255.255.192.0,试求其网络地址?
子网掩码:255.255.192.0 11111111,11111111,11000000,00000000
ip地址:141.14.72.24 10001101,00001110,01001000,00011000
所以根据子网掩码知道ip地址的前18位为网络号,网络地址就为:10001101.00001110.01
所以根据子网掩码知道ip地址的前18位为网络号,网络地址就为:10001101.00001110.01000000.00000000 转换为10进制就是141.14.64.0, 能够存纳14位1也就是16383台主机。
(别问我怎么算的,肯定拿二进制转换器啊,不可能自己手算把,哈哈,二进制转10进制这么多怎么手算呢,记住特殊的,8个1就是255)
网段划分:
网络层实现数据包的选路和转发。WAN(广域网)通常使用众多分级的路由器来连接分散的主机或LAN(局域网),因此通信的两端通常不是直接相连的,而是通过多个中间节点(路由器)连接的。
网络层的任务就是选择这些中间节点,以确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络连接的细节,使得在传输层和网络应用程序看来,通信的双方是直接相连的。
下面三个名词的概念需要区分一下:
主机:配有IP地址,但不进行路由控制的设备
路由器:既配有IP地址,又能进行路由控制的设备
节点:主机和路由器的统称
网络层最核心的协议就是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给路由器来转发。多次重复这个一跳一跳的过程,最终将数据包交送给目标主机,或者由于发送失败而被丢弃。
网络层另一个重要的协议是ICMP协议(Internet Control Message Protocol,因特网控制报文协议),它是IP协议的重要补充,主要用于检测网络连接。
本文先来了解一下网络层的IP地址是怎么来划分的。
IP地址分为网络号和主机号
网络号:保证相互连接的两个网段具有不同的标识
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
-
不同的子网其实就是把网络号相同的主机放到一起
-
如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中其他的主机重复
DHCP(自动分配IP):能够自动地给子网内新增主机节点分配IP地址的一门技术,一般的路由器都有DHCP功能,因此路由器也可以看做是一个DHCP服务器。
路由器的插口的名称
WAN口:插宽带的口 LAN口:插网线的口
下图是之前提出的一种划分网络号和主机号的方式,现在已经不用了,ABCDE类的前几位都是有规律的
为什么现在不用,是因为大多组织申请B类网络地址,导致B类很快就分配完,A类却浪费了大量地址
针对以前的这种分配地址的方式,现在用的是CIDR的划分方案
引入了一个额外的子网掩码(subnet mask)来区分网络号和主机号
子网掩码是一个32位的正整数,通常用一串“0”来结尾
将IP地址与子网掩码进行按位与操作,得到的结果就是网络号
网络号和主机号的划分与这个IP地址是A类、B类还是C类无关
划分子网的例子1
IP地址
140.252.20.68
8C FC 14 44
子网掩码
255.255.255.0
FF FF FF 00
网络号
140.252.20.0
8C FC 14 00
子网地址范围
140.252.20.0-140.252.20.255
划分子网的例子2
IP地址
140.252.20.68
8C FC 14 44
子网掩码
255.255.255.240
FF FF FF F0
网络号
140.252.20.64
8C FC 14 40
子网地址范围
140.252.20.64-140.252.20.79
特殊的IP地址
将IP地址中的主机地址全部设为0,就是网络号,表示这个局域网
将IP地址中的主机地址全部设为1,就称为了广播地址,用于给同一链路中相互连接的所有主机发送数据包(ARP协议中就用到了)
127.*的IP地址通常用于本机环回(loop back)测试,通常是127.0.0.1
增加IP地址数量的方法
动态分配IP地址:只给接入网络的设备分配IP地址。因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定是相同的。
NAT技术(重要),这在之后的文章中会有讲到
IPv6:与IPv4是两个互不相干的协议,它用16字节的128位来表示一个地址
私有IP地址和公网IP地址
10.*:前8位是网络号,后24位用来表示主机号,一共是2^24=16777216个地址
172.16--172.31.:前12位是网络号,一共是2^20=1048579个地址
192.168.*:前16位是网络号,共65536个地址
包含在这个范围中的,都称为私有IP,其余的全是公网IP
一个路口器可以配置两个IP地址,一个是WAN口IP,一个是LAN口IP(子网IP)
路由器LAN口连接的主机,都从属于当前这个路由器子网中
不同的路由器,子网IP其实都是一样的(通常都是192.168.1.1),子网内的主机IP地址不能重复,但是不同子网之间的IP的地址就可以重复了(如上图)
最外层的运营商路由器,WAN口IP就是一个公网IP了
子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行转换(替换成WAN口IP),这样逐级替换,最终数据包中的IP地址称为一个公网IP。这种技术称为NAT(网络地址转换)
如果希望自己的服务器,能够在公网上被访问到,就需要把程序部署在一台具有外网IP的服务器上
NAT和NAPT
NAT技术(Network Address Translation,网络地址转换)
NAT技术是解决IP地址不够用的主要手段,是路由器的一个重要功能
NAT能够将私有IP对外通信时转为公有IP,也就是一种将私有IP和全局IP相互转化的技术方法
公有IP要求是唯一的,但私有IP不需要;在不同的局域网中出现相同的私有IP是不受影响的
一般每个终端设置私有IP,而在路由器或必要的服务器上设置公有IP
发送请求
我们在家里玩吃鸡游戏,就是在申请访问吃鸡的服务器
我们的主机有一个私有IP,打个比方就是192.168.1.201
对于这个主机,有一个给它分配私有IP的家用路由器,这个路由器的IP一般为192.168.1.1,这个是该路由器的对应LAN口IP
该路由器有对应的WAN口IP,此时我们访问吃鸡服务器,之间还有一个运营商提供给我们的路由器,运营商路由器的WAN口一般对应的是公有IP,在广域网中能够被访问到
在访问该路由器的过程中,家用路由器将我们本机的私有IP替换成它的WAN口IP发送给运营商路由器,所以看起来实际是WAN口IP来访问这个路由器
运营商再通过它的WAN口IP 122.77.241.4来通过公网访问吃鸡服务器,所以真正在吃鸡服务器看到是122.74.241.4这个IP在访问它,于是吃鸡服务器把响应返回给这个IP的节点,即返回给运营商路由器
NAT路由器(以上的路由器都配有NAT技术)内部,有一张自动生成的,用于地址转换的表,注意,这张表不同于路由表(route命令查看的路由表)
当家用路由器10.1.1.2第一次向运营商路由器就会生成表中的映射关系
返回数据(NAPT)
那么运营商服务器怎么知道是IP 为10.1.1.2的家用路由器在访问而不是IP为10.1.1.3的家用路由器在访问呢?
这时NAPT(Network Address Port Translation,网络地址端口转换)就来解决问题了,使用IP+port来建立这个关联关系
首先这个局域网下的两台客户机10.0.0.10和10.0.0.11都要通过应用程序(该应用程序的端口号是1025)访问同一个服务器上的应用程序,服务器上该应用程序的端口号是80
这两个请求同时到达了给客户机分配IP的NAT路由器(这种自动分配IP的的技术是DHCP),它的LAN口IP是10.0.0.1,WAN口IP是202.224.171.37
在这个路由器内部维护了一张转换表,使用IP+port的形式来解决到底是局域网内部的哪台主机的请求
两者到达NAT路由器的次序总有快慢,假设客户机10.0.0.10先到,那么它的请求中的源IP就被替换成202.224.171.37,它的端口号不变默认是1025(这是NAT技术)
好这个时候客户机10.0.0.11的请求来了,它的请求中的源IP也被替换成202.224.171.37,但是端口号1025已经被上一个客户机给占了啊,所以路由器就往后找一个没有使用过的端口号给该客户机(在上图中就是1026),这样两个请求对应的转换表就形成了
在服务器看来,这就是源IP为202.224.171.37上的两个应用程序来访问的我(分别是1025和1026),那就分别把对应的应答发送给源IP上的1025和1026端口应用程序
路由器接着根据转换表,发送给每个请求对应的客户机。
这种关联关系也是NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项;在断开连接时,就会删除这个表项
NAT技术缺陷(因为太过于依赖这个转换表)
无法从NAT外部向内部服务器进行连接
装换表的生成和销毁都需要开销
通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也会断开
NAT和代理服务器的区别
从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器, 也是使用代理服务器.
从底层实现上讲, NAT是工作在网络层, 直接对IP地址进行替换. 代理服务器往往工作在应用层
从使用范围上讲, NAT⼀般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网
从部署位置上看, NAT⼀般集成在防火墙, 路由器等硬件设备上, 代理服务器则是⼀个软件程序, 需要部署在服务器上
代理服务器的技术
翻墙:广域网中的代理
负载均衡:局域网中的代理
NAT与桥接模式的区别(写的不准确,容易误导)
桥接模式:此模式虚拟机就是局域网一台独立的主机,需要手动配置IP地址、子网掩码,而且还要和本机处于一个网段才行,这样才能够和本机进行通信。同时,配置好网关和DNS的地址之后,以实现通过局域网的网关或路由器访问互联网
NAT模式:此模式虚拟机借助NAT功能,通过本机的网络来访问互联网。NAT模式下的虚拟机的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手动修改,因此虚拟机就无法和局域网中的其他主机进行通信。
像我的虚拟机就是采用NAT模式网络连接,可以先在Windows下的cmd命令窗口输入窗口输入ipconfig,找到VMnet8选项,可以找到IPv4的地址和子网掩码
我们可以在虚拟机中看一下虚拟机的IP地址和子网掩码
================
https://www.cnblogs.com/xuliangxing/p/7027124.html
在VMware中,虚拟机的网络连接主要是由VMware创建的虚拟交换机(也叫做虚拟网络)负责实现的,VMware可以根据需要创建多个虚拟网络。在Windows系统的主机上,VMware最多可以创建20个虚拟网络,每个虚拟网络可以连接任意数量的虚拟机网络设备;
在Linux系统的主机上,VMware最多可以创建255个虚拟网络,但每个虚拟网络仅能连接32个虚拟机网络设备。
VMware的虚拟网络都是以"VMnet+数字"的形式来命名的,例如 VMnet0、VMnet1、VMnet2……以此类推(在Linux系统的主机上,虚拟网络的名称均采用小写形式,例如 vmnet0 )。
当我们安装VMware时,VMware会自动为3种网络连接模式各自创建1个虚拟机网络:VMnet0(桥接模式)、VMnet8(NAT模式)、VMnet1(仅主机模式)。此外,我们也可以根据需要自行创建更多的虚拟网络。
VMware 桥接模式
VMware桥接模式,也就是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络(例如图中所示的局域网和Internet,下同)。简而言之,这就好像在上图所示的局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。桥接模式网络连接支持有线和无线主机网络适配器。如果你想把虚拟机当做一台完全独立的计算机看待,并且允许它和其他终端一样的进行网络通信,那么桥接模式通常是虚拟机访问网络的最简单途径。
VMware NAT模式
NAT,是Network Address Translation的缩写,意即网络地址转换。NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据"包裹",都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据"包裹",也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机。
此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的。
前面我们已经提到,默认情况下,外部网络无法访问到虚拟机,不过我们也可以通过手动修改NAT设置实现端口转发功能,将外部网络发送到主机指定端口的数据转发到指定的虚拟机上。比如,我们在虚拟机的80端口上"建立"了一个站点,只要我们设置端口转发,将主机88端口上的数据转发给虚拟机的80端口,就可以让外部网络通过主机的88端口访问到虚拟机80端口上的站点。
VMware 仅主机模式
仅主机模式,是一种比NAT模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见,并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言,仅主机模式不具备NAT功能,因此在默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件,或者在Windows系统的主机上使用Internet连接共享功能,仍然可以让虚拟机连接到Internet或其他网络)。
在同一台主机上可以创建多个仅主机模式的虚拟网络,如果多个虚拟机处于同一个仅主机模式网络中,那么它们之间是可以相互通信的;如果它们处于不同的仅主机模式网络,则默认情况下无法进行相互通信(可通过在它们之间设置路由器来实现相互通信)。
自定义网络连接配置
利用 WMware 提供的虚拟网络连接组件,你还可以创建复杂的虚拟网络。在这里我们不对其进行详细介绍,你可以参考官方文档,然后通过VMware提供的虚拟网络编辑器来创建虚拟网络
————————————————
版权声明:本文为CSDN博主「TLpigff」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lvyibin890/article/details/80206979
默认网关,网段表示法
https://www.cnblogs.com/embedded-linux/p/10200831.html
局域网两个不同网段互相访问
局域网内为便于管理和接入,经常划分为不同的网段,不同网段的PC通过一个路由器与上层网段连接,可访问外网或上层网络;但上层或同层网络不同网段PC不能访问其他网段PC。
PC通过一个路由器与主网或上层网络连接时,也出现上述现象:自己的路由器连接到主网上,PC和嵌入式设备连接到路由器,PC和嵌入式设备可访问上层网络或外网,但上层网络或其他网段PC不能访问自己PC或嵌入式设备。就是说不能作为服务器
可通过设置上层网络的网关的静态路由实现互相访问;若是同级,可互相指定路由。
基础知识
1. 网关,简单来说就是网络中数据的关口,网关的IP地址就是具有路由功能设备的IP地址,而此类设备可以是路由器、启动路由协议的服务器或者代理服务器等。
2. 路由就是把信息从源传输到目的地的行为,在大多数宽带路由器中,未配置静态路由的情况下,内部就存在一条默认路由,这条路由将LAN口下所有目的地不在自己局域网之内的信息包转发到WAN口指定的网关去。每个信息包在经过路由器时,路由器会检查目的IP,将它和路由表中的子网掩码做与计算,并与路由条目中的IP进行对比,相同,就按照这条路由规则转发,不相同就在检查对比下一条,如果所有的都不相同,则转发到默认路由去。
3. 默认路由,路由器在转发时,它将所有非本网段的目的IP包都发到WAN口的网关去,由WAN口网关所指定的设备决定信息包是发到它自己连的内网还是发到外网去。
4. 路由器隔绝广播,划分了广播域,也就是说,路由器不会转发广播数据,不同路由器之间通讯,是通过ARP协议来获得下一跳路由器的MAC地址,ARP是基于广播的,路由器只能发现一跳范围内的其他路由器设备。
5. IPv4地址是有4段8位二进制数组成,一部分是网络位,一部分是主机位,网络位对于的子网掩码部分全为1,而主机位全为0.
-----------------------------------------------------------------------
如下转自:多个路由器设置静态路由 不同网段可以互相访问
随着宽带接入的普及,很多家庭和小企业都组建了局域网来共享宽带接入。而且随着局域网规模的扩大,很多地方都涉及到2台或以上路由器的应用。当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由。由于网络规模较小且不经常变动,所以静态路由是最合适的选择。可是如果是多网段,又想实现不同网段电脑互访,设置静态路由就要掌握方法了。
本文作为一篇初级入门类文章,会以几个简单实例讲解静态路由,并在最后讲解一点关于路由汇总(归纳)的知识。由于这类家庭和小型办公局域网所采用的一般都是中低档宽带路由器,所以这篇文章就以最简单的宽带路由器为例。(其实无论在什么档次的路由器上,除了配置方式和命令不同,其配置静态路由的原理是不会有差别的。)常见的1WAN口、4LAN口宽带路由器可以看作是一个最简单的双以太口路由器+一个4口小交换机,其WAN口接外网,LAN口接内网以做区分。
路由就是把信息从源传输到目的地的行为。形象一点来说,信息包好比是一个要去某地点的人,路由就是这个人选择路径的过程。而路由表就像一张地图,标记着各种路线,信息包就依靠路由表中的路线指引来到达目的地,路由条目就好像是路标。在大多数宽带路由器中,未配置静态路由的情况下,内部就存在一条默认路由,这条路由将 LAN口下所有目的地不在自己局域网之内的信息包转发到WAN口的网关去。宽带路由器只需要进行简单的WAN口参数的配置,内网的主机就能访问外网,就是这条路由在起作用。本文将分两个部分,第一部分讲解静态路由的设置应用,第二部分讲解关于路由归纳的方法和作用。
静态路由设置
下面就以网络初学者遇到的几个典型应用为例,说明一下什么情况需要设置静态路由,静态路由条目的组成,以及静态路由的具体作用。
例一:最简单的串连式双路由器型环境
这种情况多出现于中小企业在原有的路由器共享Internet的网络中,由于扩展的需要,再接入一台路由器以连接另一个新加入的网段。而家庭中也很可能出现这种情况,如用一台宽带路由器共享宽带后,又加入了一台无线路由器满足无线客户端的接入。
公司里原有一个局域网LAN 1,靠一台路由器共享Internet,现在又在其中添加了一台路由器,下挂另一个网段LAN 2的主机。经过简单设置后,发现所有主机共享Internet没有问题,但是LAN 1的主机无法与LAN 2的主机通信,而LAN 2的主机却能Ping通LAN 1下的主机。这是怎么回事?
这是因为路由器隔绝广播,划分了广播域,此时LAN 1和LAN 2的主机位于两个不同的网段中,中间被新加入的路由器隔离了。所以此时LAN 1下的主机不能“看”到LAN 1里的主机,只能将信息包先发送到默认网关,而此时的网关没有设置到LAN 2的路由,无法做有效的转发。这种情况下,必须要设置静态路由条目。此种网络环境的拓扑示意如下:
图1(注:图中省略了可能存在的交换层设备)
如图一所示,LAN 1为192.168.0.0这个标准C类网段,路由器R1为原有路由器,它的WAN口接入宽带,LAN口(IP为192.168.0.1)挂着 192.168.0.0网段(子网掩码255.255.255.0的C类网)主机和路由器R2(新添加)的WAN口(IP为 192.168.0.100)。R2的LAN口(IP为192.168.1.1)下挂着新加入的LAN 2这个192.168.1.0的C类不同网段的主机。
如果按照共享 Internet的方式简单设置,此时应将192.168.0.0的主机网关都指向R1的LAN口(192.168.0.1),192.168.1.0网段的主机网关指向R2的LAN口(192.168.1.1),那么只要R2的WAN口网关指向192.168.0.1,192.168.1.0的主机就都能访问192.168.0.0网段的主机并能通过宽带连接上网。这是因为前面所说的宽带路由器中一条默认路由在起作用,它将所有非本网段的目的IP包都发到WAN口的网关(即路由器R1),再由R1来决定信息包应该转发到它自己连的内网还是发到外网去。但是192.168.0.0网段的主机网关肯定要指向 192.168.0.1,而R1这时并不知道192.168.1.0这个LAN 2的正确位置,那么此时只能上网以及本网段内的互访,不能访问到192.168.1.0网段的主机。这时就需要在R1上指定一条静态路由,使目的IP为 192.168.1.0网段的信息包能转发到路由器R2去。
一条静态路由条目一般由3部分组成:1)目的IP地址或者叫信宿网络、子网;2)子网掩码;3)网关或叫下一跳。
例一中R1上设定的静态路由条目就应该为:目的IP地址192.168.1.0(代表1.x这个网段),子网掩码255.255.255.0(因为是C 类网段),下一跳192.168.0.100。如图2,此图为TP-LINK R410中的静态路由表配置项,保存后即可生效。如果是Cisco的路由器,则在全局配置模式下键入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。
注意:其中的网关IP必须是与WAN或LAN口属于同一个网段。那条默认路由写出来就是:目的IP为 0.0.0.0,子网掩码0.0.0.0,下一跳为WAN口上的默认网关,有时我们也称它为“8个0的默认路由”。另外,如果目的IP是一个具体的主机 IP(如192.168.1.2),那么路由条目应为:目的IP 192.168.1.2,子网掩码255.255.255.255,下一跳或网关192.168.0.100。
使用此种连接方式,还可以方便的使用路由器内置的访问控制列表来设置LAN 2下主机的访问权限,这对企业用户而言还是很方便的。宽带路由器中的“防火墙设置”其实就是一个简化的访问控制列表,即ACL- Access Control Lists。如:希望局域网LAN 2中IP地址为192.168.1.7的计算机不能收发邮件,IP地址为192.168.1.8的计算机不能访问企业内部位于LAN 1的ERP服务器(假设其IP为192.168.0.10),对局域网中的其它计算机则不做任何限制,这时您需要指定如下的数据包过滤表,如图:
例二:两台平级并连的路由器,下挂子网中主机需要互相通信的环境这种情况
两台平行并连的路由器上层应该还有一个总的出口网关,而这个网关有可能因某种原因不便设置路由,而此时网络中存在3个不同的网段。
我家是小区共享型的宽带接入,我自己用一台宽带路由器构建了一个家庭局域网以共享Internet,正好邻居也跟我一样用宽带路由器构建了另一个家庭局域网。而我们各自局域网内的主机之间却不能互相通信,根本ping不通,这是怎么回事?
这种情况下整个小区其实就是一个大的局域网,主机不能互通的原因,其实跟例一中LAN 1不能ping通LAN 2的原因一样,都是因为上层的默认网关不知道目的IP所属网段的正确位置,无法做有效转发所致。这种环境的典型示意图如下:
图中内网网关就是小区的网关,R1和R3分别为两户的宽带路由器,它们之间一般通过楼层的接入交换机和小区的骨干交换机连接在一起,此图省略了这一部分。图4的这种情况,只要在网关设备上按例一的方式添加两条路由就能实现两个子网中主机的互访,而且其10.0.0.0这个A类网段中存在的主机也都能通过这两条路由访问到R1和R3下的内网机。但是如果是小区的网关设备,那肯定是不会让用户随便配置路由条目的,而且你应该也不想小区内的所有用户都能直接访问到你的内网主机。这时,我们可以在R1和R3上各添加一条路由指向对方来实现R1和R3下主机直接互访的效果。
在R1上:目的IP地址172.16.0.0,子网掩码255.255.0.0(B类网段),下一跳10.1.1.3。
在R3上:目的IP地址192.168.0.0,子网掩码255.255.255.0(C类网段),下一跳10.1.1.2。
注:有些新型小区中使用了P-VLAN技术,这种网络的情况比较复杂,这样上面简单的静态路由设置有可能无法达到目的。
例三:既串且并,网络中有多级路由设备的环境
这种情况可以说是例一和例二两种应用的整合和延伸,看似复杂其实简单。如果像例二中那样的环境中,我家里的局域网再添置一个路由器,下挂另一个网段以做扩展,那要怎么设置呢?
这种网络结构,确实就是将例一和例二合在一起了。这时一共有4个网段并存,我们的设置是要让两户家庭局域网下的3个子网内主机能够互通,而此时小区的网关当然还是不能去设置的。其拓扑示意图如下:
可以看到图5就是将图1和图4整合在一起了。既然拓扑图是例一、例二的结合,那将例一、例二中的路由条目加在一起是不是就可以了呢?当然也不是这么简单,如果只是配置了前两例的路由条目,R3下的主机是无法直接访问到R2下的192.168.1.0这个子网的。所以在R3上还要加一条到 192.168.1.0这个子网的路由。静态路由条目配置如下:
R1:目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳192.168.0.100。
目的IP地址172.16.0.0,子网掩码255.255.0.0,下一跳10.1.1.3。
R3:目的IP地址192.168.0.0,子网掩码255.255.255.0,下一跳10.1.1.2。
目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳10.1.1.2。
为何R3中第二条路由的下一跳不是直接指向R2,而是也指向R1呢?
这个问题要从路由器间通信的原理来讲解。路由器是通过ARP解析协议来获得下一跳路由器的MAC地址,而ARP基于广播,在一般情况下路由器是不会转发广播,也就是广播包无法过路由。所以对于路由器R3来讲,R1和R3才是同等级的,它只能看到R1,不能看到R2,这就是为何在例一的注意中提到:“其中的网关IP必须是与WAN或LAN口属于同一个网段”的原因。而文中所说的静态路由条目组成的第3部分:网关又叫下一跳,而不叫下两跳、下三跳也是这个意思。总之,在一般情况下,下一跳路由的IP地址肯定要跟这个路由器的某个接口是在同一个网段的。
路由汇总(或叫路由归纳)
上面例三中R3上的静态路由条目,其实可以写成一条:目的IP地址192.168.0.0,子网掩码255.255.0.0(不再是C类子网的掩码),下一跳10.1.1.2。这时192.168.0.0,掩码255.255.0.0这个网段不能称为C类或B类的子网了,由于它超过了本身C类网段的范围,所以可以称它是一个超网。这个网段包含了192.168.0.0~192.168.255.0所有的子网。也就是说,这条静态路由会使所有目的IP在这个范围内的信息包,都发给10.1.1.2的路由器R1。将多条子路由条目汇总成一条都包含其内的总路由条目,这就是路由汇总或叫路由归纳。路由器在检查计算路由时是比较消耗资源的,路由条目越多,路由表越长,则这个过程耗时越多,所以通过路由汇总减少路由表的长度,对提高路由器工作效率是很有帮助的。虽然在举例中的这种只有几个路由器的小网络中起到的作用有限,但是如果是几十、几百甚至上千、上万个路由器的大型网络中,路由归纳起到的作用就非常明显了,可以说不使用路由归纳是不可想象的。
例四:多层次多主机网络
可能细心的读者已经发现,例三最后的那条归纳路由虽然包含了R1下所有的两个子网(192.168.0.0和192.168.1.0),但是也包含了 R1下实际上并不存在的一些子网(192.168.2.0~192.168.255.0)。如果在整个局域网中别的路由器下还存在这些子网(如图6,R4 下存在192.168.2.0子网),那么路由就会出错了,所以这条汇总路由是一条不精确的汇总。
我们都知道IPv4的地址是由4段8位的二进制数组成,一部分是网络位,一部分是主机位。其对应的子网掩码网络位部分就是全1的二进制数,而主机位就是全0 的二进制数。每个信息包在过路由器时会检查其目的IP,和路由表中路由条目的子网掩码做“与”运算,并与路由条目中目的IP进行比对,相同的就按照这条路由规则转发,不相同的就再检查比对下一条。可以看出我们做的汇总路由的操作,就是将多条路由条目中目的IP相同的网络位提取出来写成一条。而例三中的汇总路由之所以不精确就是因为相同部分未能全部提出来。
如例三中,R3上的第一条:目的IP为 192.168.0.0;第二条:目的IP为192.168.1.0。我们只提取了前面的两段192.168,而后面的第三段网络位中还是有相同的部分的。192.168.0.0中第三段写成二进制数为00000000(8位0),182.168.1.0中第三段写成二进制数为00000001(7位 0,1位1),那么它们的前7位是相同的,在对应的子网掩码位置上就应该是11111110(7位1,1位0),合成十进制为254。所以这条汇总路由应该写成:目的IP为192.168.0.0,子网掩码255.255.254.0,下一跳10.1.1.2。这样,这条汇总路由只包含 192.168.0.0和192.168.1.0两个子网,是一条精确的汇总路由。如图6中,R3下172.16.0.0的主机发送到 192.168.2.0网段的信息包,其第三段网络位写成二进制为00000010(前6位0),就不包含在这条精确的汇总路由内了。
这时我们在R3上静态路由条目应该为:
1.目的IP地址192.168.0.0,子网掩码255.255.254.0,下一跳10.1.1.2。
2.目的IP地址192.168.2.0,子网掩码255.255.255.0,下一跳10.1.1.4。
我们在进行路由汇总时应该尽量使用精确的汇总条目,本着能汇总的条目就汇总,不能精确汇总的条目就不汇总的原则。这样在网络以后的扩展和变动时能更有条理的增改路由表,减少出错的几率。
=========================
https://blog.csdn.net/tao546377318/article/details/50313441
同网段和不同网段设备通信原理详解
在当今的以太网络通信中,在 IP 数据包中有两个必不可少的地址,那就是 IP 地址和网卡地址(即 MAC 地址),在数据包中,无论是 IP 地址还是 MAC 地址,都有源地址和目标地址,因为通信是双方的,所以就必须同时拥有双方的地址!在同一 IP 网络中通信,将会发生以下事件:
主机A与主机B通信,这时主机A肯定首先要封装这些需要发给主机B的数据包,那么对于主机A来说,自己的IP地址和MAC自己肯定能够轻易得到,对于主机B的IP地址这时主机A也应该知道,要不然它就不清楚自己将要和谁通信,当有了自己的IP地址,MAC地址以及主机B的IP地址后,主机A在数据包中可以正确地写上源IP地址,目标IP地址,接下来的工作就是写入自己的MAC地址(即源MAC),最后还必须正确写入目标主机B的MAC地址,可这时主机A才发现自己根本没有目标主机B的MAC地址,那该怎么办呢?这时主机A就通过比较上面已经封装好的源IP和目标IP,通过子网掩码计算一下,发现源IP和目标IP恰好在同一个IP网络内,那么它想要得到目标主机B的MAC地址就有办法了,首先主机A就向本网段发过一个ARP请求,这个ARP请求包中包括主机A的源IP地址,源MAC地址,目标主机B的IP地址,而目标MAC地址为广播MAC地址(全部为F),因为我们要找的就是目标MAC,所以这里用广播MAC地址,又因为是以太网,所以整个局域网的所有主机都能收到这个请求MAC地址的数据包,当然主机B也能收到,因此在主机B收到此ARP请求后,立即构建一个包括自己的MAC地址的ARP回应包,回应给主机A,当主机A收到这个ARP回应后,终于完成了找寻目标MAC的重大任务,从而把目标主机B的MAC地址正确封装进上面还未封装结束的正准备发给主机B的数据包,在这时,源IP和源MAC以及目标IP和目标MAC都已正确存在于数据包中,那么这里主机A向网络内发出这些数据包,因为目标地址在本网段,所以本网段所有主机都能收到这个数据包(这是以太网的特性),最后只有真正的目标主机B能够打开这些数据包,在此,同网段两台主机之间的通信就此圆满结束!
在这里应该注意另外一个问题,因为主机A要寻找的目标主机B在同一网络,所以主机A能够通过ARP得到目标主机B的MAC地址,从而完成通信,当主机A在封装数据包时检测到目标主机并不在本网段,在这时,数据包不能把目标主机的MAC地址顺利封装进去,那么就用到另一种方法,那就是网关,主机A在准备发向主机B的数据中,封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址,数据包封装到这里,主机A就利用上面得到同网段目标主机B的方法去请求得到网关的MAC地址,同样也是用ARP去广播,因为网关必须和本机在同一网段,理所当然,网关能够收到这个ARP请求并能正确回应给主机A,这时主机A在数据包中封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址和网关的MAC地址,把数据包从网卡发出去,因为目标MAC是网关的,所以网关收到这个数据包后,发现目标MAC是自己,而目标IP却是别人,所以它不可以再往上打开这个数据包,它要做的工作就是把这些数据包发给下一跳路由器(如果网关自身就是一台路由器的话),如果网关是一台普通PC,那么它就发给路由器,让路由器把这些数据包正确传输到远程目标网络,到达远程网络后,它们的网关再将数据包发给数据包中的目标IP,即源主机A苦苦寻找的目标主机B,从而真正结束不同网络之间的通信,回应的数据包也是用同样的方法到达目的地,在这里,还需要注意的是,当网关把数据包发给下一跳路由器时,这个数据包必须由网关把目标MAC改成下一跳路由器的MAC地址(通过ARP得到),而源端MAC改成发出端口的MAC地址,否则下一跳路由器收到目标MAC不是自己的数据包,会丢弃不予理睬,下一跳路由器再发给下一跳路由器同样要把目标MAC地址改为下一跳路由器的MAC地址再发出去!
最后还可以总结出:在网段通信时,数据包中的地址就是源IP,目标IP,源MAC,目标MAC,根本用不到网关,而当检测到需要把数据包发到远程网络时,这时,目标MAC就必须改变了,在还没有出内网时,目标MAC必须写成网关的MAC地址发出去,当网关收到时,再把目标MAC地址改成下一跳的MAC地址发出去,同时源MAC地址要始终保持为发出端口的MAC地址(回应报文可以依靠它路由回去),而源IP及目标IP不曾改变(用于判断收到数据包的本机IP和数据包IP是否一致,若一致不转发),就算到达了公网上,目标MAC仍然在不断改变着,直到最后,这个数据包到达目标IP的网络,最终通信结束!
下面是个例子:Ping过程详细解
配置好路由器Route和pc0、pc1的IP地址以及网关
————————————————
版权声明:本文为CSDN博主「Ijuan_0712」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tao546377318/article/details/50313441
例子:
作者:车小胖
链接:https://www.zhihu.com/question/56895036/answer/150953183
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
从前有一个地主,有256间房子,地主家的门牌号码是“192.168.1”,那么他家第一间房子的门牌号码是192.168.1.0,第二间是192.168.1.1,…第256间的编号是192.168.1.255。
地主老了,需要把256间房子分给4个儿子,平均分配,每个儿子可以分64间。
请来一位先生主持公道,先生这么来操作:
192.168.1.0-192.168.1.63 分给大儿子
192.168.1.64-192.168.1.127 分给二儿子
192.168.1.128 -192.168.1.191 分给三儿子
192.168.1.192-192.168.1.255 分给四儿子
那如何来描述四个儿子的子网网段呢?
192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26
/26是什么鬼?
255.255.255.192的二进制是多少? “11111111-11111111-11111111-11”大家数数一共多少个1?不用数了,是26个1,为了简化子网掩码的表示,用/26代替255.255.255.192。
按位与运算
我们来看大儿子的网段192.168.1.0/26是如何得到的?
以大儿子的房间为例:
192.168.1.0-192.168.1.63
二进制表示:
192.168.1.0
11000000.10101000.00000001.00000000
192.168.1.63
11000000.10101000.00000001.00111111
首尾地址完全相同的是多少?
11000000.10101000.00000001.00
数数一共多少位?26位!那么用这个“192.168.1.0/26”就可以表示大儿子所有房间。
对照房间的门牌号码“192.168.1.199”,很显然属于四儿子的。
一个主机192.168.1.199/26 能否和直连主机192.168.1.200/24 通信?可以的,因为都是四儿子的房间。路由通过IP来识别
一个主机192.168.1.199/26 能否和直连主机
192.168.1.1/24 通信? 不可以,因为一个是大儿子的房间,一个是四儿子的房间,无法直连通信!
版权声明:本文为CSDN博主「TLpigff」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lvyibin890/article/details/80181443
===================================
https://blog.csdn.net/lvyibin890/article/details/80175103?spm=1001.2014.3001.5501
TCP/IP协议族的数据链路层基础(1)——MTU
数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网,令牌环网等)上的传输 。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个接口。
数据链路层常用的两个协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(Reverse Address Resolve Protocol,逆地址解析协议 )。它们实现了IP地址和机器物理地址(通常是MAC地址,以太网,令牌环网,无限网卡等都是使用的MAC地址)之间的相互转换。
网络层必须先将目标机器的IP地址转化为物理地址才能够使用数据链路层提供的服务,这就是ARP协议的用途。而RARP仅用于网络上的某些无盘工作站,它们无法记住自己的IP地址,但可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自己的IP地址
以太网
以太网不是一种具体的网络,而是一种技术标准;既包含了数据链路层内容,又包含了物理层的内容。
以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M
与以太网并列的还有无线LAN,令牌环网等
以太网帧格式
-
目的地址和源地址是指网卡的硬件地址(即MAC地址 ),长度是48位(6字节),是在网卡出厂时固化的
-
帧协议类型字段有三个值:分别对应IP(0x800)、ARP(0x806)、RARP(0x835)
-
帧末尾是CRC校验码
MAC地址与IP地址的区别(下面这样理解很好理解)
-
IP地址描述的路途的起点与终点
-
MAC地址描述的是这个路途中某一段区间的起点和终点
MTU (最大传输单元)
MTU相当于是数据在数据链路层被打包后最大的一个包大小(以太网是1500字节),这个限制是不同的数据链路对应的物理层产生的限制
以太网帧中的数据长度规定为最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位
最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,需要对数据包进行分片
不同的数据链路层标准的MTU是不同的
MTU对IP协议的影响
由于数据链路层MTU的限制,就要对较大的IP数据包进行分包
将较大的IP包分成多个小包,为每个小包打上标签
每个小包的IP协议头的16位标识部分都是相同的
每个小包的IP协议头的3位标志字段中,第2位置为0(为0表示可以分片),第三位表示结束标记(当前包是否为最后一个包,如果是则置为1,否则置为0)
到达对端时再将这些小包按顺序重组,拼装到一起返回给传输层
一旦小包中任意一个丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据
MTU对UDP协议的影响
-
一旦UDP的数据超过1472(1500-20(IP首部)-8(UDP首部)),那么就会在网络层分成多个IP数据报
-
这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败,这就意味着,如果UDP数据报在网络层被分片,整个数据报被丢失的可能性就大大增加了
MTU对TCP协议的影响
TCP的一个数据报也不能无限大,还是受限制于MTU,TCP的单个最大数据报的最大消息长度,称为MSS(Max Segment Size)
TCP在建立连接的过程中,通信双方会进行MTU协商
最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然受限制于数据链路层的MTU)
双方在发送SYN的时候会在TCP首部写入自己能支持的MSS值
然后双方得知对方的MSS之后,选择较小的作为最终MSS
MSS的值就是在TCP首部的40字节变长选项中(kind=2)
下图是关于MSS和MTU的两者之间的关系图
版权声明:本文为CSDN博主「TLpigff」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lvyibin890/article/details/80175103
https://blog.csdn.net/lvyibin890
参考转载:
https://www.cnblogs.com/zhangyinhua/p/7609242.html
https://blog.csdn.net/lvyibin890/article/details/80181443
https://www.cnblogs.com/embedded-linux/p/10200831.html
https://blog.csdn.net/gengyiping18/article/details/53581534
https://blog.csdn.net/tao546377318/article/details/50313441
https://blog.csdn.net/lvyibin890