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的路由记录。

④路由是指明方向,方向很重要╮(╯▽╰)╭