IP地址和路由
IPv4地址
IP地址
-
IP地址是逻辑上的地址,可人为分配,具有可管理性
-
IP地址可唯一标识 IP 网络中的每台设备
-
每台主机(计算机、网络设备、外围设备)必须具有唯一的地址
-
IP地址由两部分组成
①网络ID
标识网络
每个网段分配一个网络ID
②主机ID
标识单个主机
由组织分配给各设备 -
IPv4地址格式:点分十进制
IP地址分类
-
A类:
0 000 0000 - 0 111 1111: 1-127
网络数:126, 127
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0
私网地址:10.0.0.0 -
B类:
10 00 0000 - 10 11 1111:128-191
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0 -
C类:
110 0 0000 - 110 1 1111: 192-223
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0 -
D类:组播
1110 0000 - 1110 1111: 224-239 -
E类:保留未使用
240-255 -
注:ABC类地址由于分类时主机数目差距特别庞大,不太适应于实际场景,因此目前一般采取不分类使用。(eg:2000台,每台主机分配一个地址,但根据ABC类地址分配地址就不符合应用场景)
-
公共IP地址
-
私有IP地址
-
特殊地址
①0.0.0.0
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服务器获取地址,系统会为主机分配这样地址
子网掩码
-
目前打破了ABC的分类方式,根据特定场景划分主机ID和网络ID,因此引入子网掩码,以便区分主机ID和网络ID。
-
子网掩码:32bit二进制数字,用于区分主机ID和网络ID。
-
对应于网络ID的位为1,对应于主机ID的位为0
-
子网掩码的八位
即可能成为掩码的十进制数字
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255 -
可变长度子网掩码,根据需求划分网络ID和主机ID eg:IP/21,IP/22
如何判断两个主机在同一网段?
-
两个主机在同一网段:主机ID位数相同,需要根据掩码判断主机位数
-
判断方法:IP与子网掩码相与,得出网络ID
(注意:二进制相与)
eg:192.168.38.7/24
网段:192.168.38.0
两个主机通信?
-
两个主机通信:
①首先知道对方IP
②判断对方和自己是否属于同一网段
同一网段:arp广播
不同网段:找网关,若没有配置网关,则对方网络不可达。 -
判断目标主机与自己是否在同一网段?
-
注意:通信时是用自己的子网掩码与对方ip相与,因为通信时不知道对方子网掩码
-
eg:主机A与主机B的IP地址如下,请问A与B通信机制?
A:192.168.38.100/25
B:192.168.38.200/24
此时子网掩码不一样的情况下:分别单独分析:
① A --> B (以A的子网掩码为基准)
NETMASK:255.255.255.128
192.168.38.0110 0100 & 255.255.255.1000 0000=192.168.38.0
192.168.38.1100 1000 & 255.255.255.1000 0000=192.168.38.128
ip-A 与 ip-B分别与A主机子网掩码相与,不相同,则不在同一网段
② B --> A(以B的子网掩码为基准)
NETMASK:255.255.255.128
192.168.38.0110 0100 & 255.255.255.0000 0000=192.168.38.0
192.168.38.1100 1000 & 255.255.255.0000 0000=192.168.38.0
ip-A 与 ip-B分别与B主机子网掩码相与,相同,则在同一网段
IP地址范围
- glob:全局有效
- link:只针对ip网卡所在链路有效
- host:只有在本机访问有效,其他主机访问无效
配置主机IP时应该结合物理实际和逻辑
- 场景一
- 场景二
- 逻辑上和物理上统一配置网络比较符合
划分子网
-
划分子网:将一个大网(主机数较多)分成多个小网(主机数较少)
-
实现:网络ID向主机ID借位
-
网络ID必须为高位,主机ID必须为低位
-
举例:
10.0.0.0/8(划分子网)
网络ID:8位
主机ID:24位
表示IP范围:10.0.0.1–10.255.255.254
①网络ID向主机ID借1位
10.0000 0000.0.0/9 — 10.0.0.0/9
10.0 0000000.0.0/9 — 10.0.0.0/9
10.1 0000000.0.0/9 — 10.128.0.0/9
(借1位时有0或1两种状态) 因此划分出2个子网
①网络ID向主机ID借2位
10.0000 0000.0.0/10 — 10.0.0.0/10
10.00 000000.0.0/10 — 10.0.0.0/10
10.01 000000.0.0/10 — 10.64.0.0/10
10.10 000000.0.0/10 — 10.128.0.0/10
10.11 000000.0.0/10 — 10.192.0.0/10
(借2位时具有:00 01 10 11) 因此划分出4个子网
…
(以此类推) -
例题:将10.0.0.0/8划分32个子网
1、子网的子网掩码?
2、最小的子网的网络ID?
3、最大的子网的网络ID?
4、第10个子网的IP范围?
解:32=2^5,因此网络ID需要向主机ID借5位,则子网一共13位
10.00000 000.0.0/13
1、子网的子网掩码:255.11111000.0.0=255.248.0.0
2、最小的子网的网络ID:10.0.0.0/13
3、最大的子网的网络ID:10.248.0.0/13
4、第10个子网的IP范围:10.72.0.1~10.72.255.254 -
合并超网:将多个小网合并成一个大网,主机id向网络id借位
合并超网作用:合并超网可以节约路由器的路由记录,即节约路由器的存储空间
eg:上图这些IP合并超网时:
220.78.10101 000.0
220.78.10101 001.0
…
220.78.10101 111.0
主机id向网络id借3位满足网络id保持不变~因此此时路由记录将上图中的多条改为:220.78.168.0/21 即子网掩码为255.255.168.0 -
还有可能出现以下场景:
①有时也设置30为的网络ID,剩下2主机IP
②在回环网卡上指定32网络ID,指定ip的情况。回环网卡指定ip不会因为物理网卡down导致ip丢失。
路由
路由简介
- 路由主要的功能实现跨网络通信
- 路由分类:
主机路由:描述网络中某主机怎么到达
网络路由:描述主机所在网络怎么到达,到达网络之后在ARP广播
默认路由:指明走的方向就能到达
访问时可能三种路由都知道,由优先级决定 - 路由的优先级:精度越高,优先级越高
路由表
-
路由器、主机中都有路由表,路由表有路由记录组成
-
有路由表主机与不在同一网段的主机通信才能出去
-
注: 路由是核心,网关是形式
-
路由记录的组成:
①网络ID:目标主机所在网络id/子网掩码 (其中可以是主机ip,网络id,默认路由)
②接口(interface):本路由器要到达对应的网络所发送的本地接口(即路由器到达对应网络应该从哪一个接口转发)
③网关(gateway):要到达目标网络,需要发送到下一个路由器的接口ip(即目标主机不是与本机路由器直接相连的链路时,应该要转发至去目标主机且与本机当相邻的路由—>每个路由只负责与自己直连的链路和转发)
④meric:数字越小优先级越高(当有多条路径可供选择时) -
查看当前主机路由表信息:
①与路由表中没有记录的主机通信时,走默认路由,默认路由(0.0.0.0)-可以去任何网段(而且系统默认路由的优先级最低)
②默认路由是由网关生成的,(配置文件不配置网关就不会生成默认路由) -
路由记录的描述
如上图加入A与B通信,路由器1(R1)和路由器2(R2)的路由记录图表
路由表的生成
①静态路由:手动一条一条添加;(小环境)
②动态路由:通过守护进程获取动态路由
路由表的自动生成:路由协议 利用软件实现
RIP(学习使用,走的路径越少,越好)
OSPF(中小型企业使用,考虑带宽)
BGP(大型企业使用)
quagga:软件包
命令vtysh配置
路由相关命令和配置文件
-
ip route:- routing table management
①删除路由:ip route del TARGET
②显示路由:ip route show|list
③添加网关:ip route add default via GW dev IFACE
④清空路由表:ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0 -
route命令
①默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1
②删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
③目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
④目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0
⑤显示:route / route -n -
路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE(需要手动创建)
• 注意:需service network restart生效
• 两种风格:(一般建议采用第一种风格)
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
实验
- 主机A和主机B通信,其中路由器使用Linux模拟,各阶段配置如下
- 实验总结:
①因为我在A主机没有配置默认网关(即没有默认路由),也并未配置路由记录去192.168.6.0/24网段
在A主机添加的路由记录:(没有指明去192.168.6.0/24网段的路由记录,然后其A主机 ping B主机 )
route add -net 192.168.38.0/24 gw 172.18.4.27/24
造成现象:
a、图中其他IP均能ping通除了A ping B;和B ping A
b、当A主机去pingB主机时:报文只能到达192.168.38.0/24网段;
c、当B主机去ping A主机时:A的响应报文也只能到达192.168.38.0/24网段;
②错误分析:此时172.18.0.0/16网段要抵达192.168.6.0/24 需要经192.168.38.0/24这个网段,但是添加的路由记录并不能抵达至192.168.6.0/24网段,受到路由的限制,报文在抵达192.168.38.0/24网段时就不进行转发了。
③错误原因:因为没有指明去192.168.6.0/24的路由记录。
④路由是指明方向,方向很重要╮(╯▽╰)╭