pfSense book之网络概念

  • 了解公共和私人IP地址
  • IP子网划分概念
  • IP地址,子网和网关配置
  • 了解CIDR子网掩码表示法
  • CIDR概述
  • 广播域名
  • IPv6

本书不是对网络的介绍,但有一些网络概念需要解决。 对于没有基本的网络基础知识的读者,我们建议找到更多的介绍性材料,因为本章不会提供所有必要的信息。 IPv6概念将在本章后面的IPv6中介绍。 为了清楚起见,传统的IP地址被称为IPv4地址。 除另有说明外,大多数功能都可以使用IPv4或IPv6地址。 通用术语IP地址是指IPv4或IPv6。

OSI模型层简介

OSI模型具有由七层组成的网络框架。 这些图层按从低到高的顺序排列。 下面解释了每个级别的简要信息。 更多信息可以在维基百科中找到。

Layer 1 – 物理层:
指的是将原始数据传输到所有更高层的电缆或光缆。
Layer 2 – 数据链接:
通常是指以太网或在线路上正在会话的另一个类似的协议。本书通常将第二层称为以太网交换机或其他相关主题,如ARP和MAC地址。
Layer 3 – 网络层:
用于将数据沿着一个主机到另一个主机的路径传递的协议,例如IPv4,IPv6,路由,子网等。
Layer 4 – 传输层:
用户之间的数据传输通常是指TCP或UDP或其他类似的协议。
Layer 5 – 会话层:
管理用户之间的连接和会话(通常称为“对话框”),以及如何正确连接和断开连接。
Layer 6 – 表示层:
处理用户所需的数据格式之间的任何转换,如不同的字符集,编码,压缩,加密等。
Layer 7 – 应用层:
与用户或软件应用程序进行交互,包括熟悉的协议,如HTTP,SMTP,SIP等

了解公共和私人IP地址

私人IP地址

网络标准RFC 1918定义了保留的IPv4子网,仅用于私有网络(表RFC 1918专用IP地址空间)。 RFC 4193为IPv6(RFC 4193唯一本地地址空间)定义了唯一的本地地址(ULA)。 在大多数环境中,RFC 1918的私有IP子网被选择并用于所有内部网络设备。 然后通过实施网络地址转换(NAT)软件(如pfSense)的防火墙或路由器将设备连接到Internet。 IPv6通过全球单播地址(GUA)从内部网络完全路由而无需NAT。 NAT将在网络地址转换中进一步解释。

RFC 1918 私有IP地址空间
CIDR 范围 IP 地址范围
10.0.0.0/8 10.0.0.0 – 10.255.255.255
172.16.0.0/12 172.16.0.0 – 172.31.255.255
192.168.0.0/16 192.168.0.0 – 192.168.255.255
RFC 4193特有的本地地址空间
前缀 IP 地址范围
fc00::/7 fc00:: – fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

特殊用途IPv4网络的完整列表可以在RFC 3330中找到。有一些私有IPv4地址,例如1.0.0.0/8和2.0.0.0/8,这些IPv4地址已经分配给日益缩小的IPv4池。 使用这些地址是有问题的,不建议使用。 此外,避免使用169.254.0.0/16,根据RFC 3927保留“Link-Local”自动配置。 它不应该由DHCP分配或手动设置,并且路由器将不允许来自该子网的数据包在特定的广播域外传播。 RFC 1918有足够的地址空间,所以不需要突破RFC 1918私有IP地址空间中的地址范围。 不正确的寻址会导致网络故障,应该予以纠正。

公共 IP地址

除最大的网络外,公共IP地址由互联网服务提供商分配。需要数百或数千个公共IP地址的网络通常具有直接从其地区互联网注册机构(RIR)分配的地址空间。 RIR是一个监督在世界指定地区分配和注册公共IP地址的组织。

大多数住宅互联网连接被分配一个公共IPv4地址。大多数业务类连接被分配多个公共IP地址。在许多情况下,单个公共IP地址就足够了,可以与NAT一起使用,将数百个专用地址系统连接到Internet。这本书将有助于确定所需的公共IP地址的数量。

大多数IPv6部署将使最终用户至少有一个/ 64前缀网络用作路由内部网络。对于每个站点,大致有2 64个IPv6地址或18个地址,完全从Internet上路由而不需要NAT。

保留和文件地址

除了在RFC 1918中定义的范围之外,RFC 5735还描述了为其他特殊用途(如文档,测试和基准测试)保留的IP范围。 RFC 6598更新了RFC 5735,并为运营商级NAT定义了地址空间。 这些特殊的网络包括:

RFC 5735 保留地址空间
CIDR 范围 目的
192.0.2.0/24 文档和示例代码
198.51.100.0/24 文档和示例代码
203.0.113.0/24 文档和示例代码
198.18.0.0/25 对网络设备进行基准测试
100.64.0.0/10 电信级NAT空间

在整本书中,我们使用了来自上述文档范围的地址以及RFC 1918网络的示例,因为它们对用户更为熟悉。

有些人发现这些地址昨时用于***甚至本地网络。 我们不推荐将它们用于除预定目的以外的任何其他用途,但是它们比RFC 1918网络更不容易被看到。

IP子网划分概念

在设备上配置TCP / IP设置时,必须指定子网掩码(或IPv6的前缀长度)。 此掩码使设备能够确定本地网络上的哪些IP地址,以及设备路由表中的网关必须到达哪些IP地址。 默认的LAN IP地址为192.168.1.1,掩码为255.255.255.0或CIDR表示的/ 24的网络地址为192.168.1.0/24。

IP地址,子网和网关配置

主机的TCP / IP配置由地址,子网掩码(或IPv6的前缀长度)和网关组成。 IP地址与子网掩码的结合是主机如何识别本地网络上的哪些IP地址。本地网络以外的地址被发送到主机配置的默认网关,它假定将把流量传递到所需的目的地。此规则的一个例外是指示设备联系通过本地连接的路由器可达的特定非本地子网的静态路由。网关和静态路由的列表保存在每个主机的路由表上。

在典型的pfSense部署中,主机会在pfSense设备的LAN范围内分配一个IP地址,子网掩码和网关。 pfSense上的LAN IP地址成为默认网关。对于通过LAN以外的接口连接的主机,请使用适用于设备连接的接口的相应配置。

一个网络中的主机直接相互通信,而不需要默认网关的参与。这意味着没有防火墙(包括pfSense)可以控制网段内的主机到主机的通信。如果需要此功能,则需要通过使用多个交换机,VLAN来分割主机,或使用PVLAN等同等交换机功能。虚拟局域网(VLAN)涵盖VLAN。

了解CIDR子网掩码表示法

在配置地址和网络时,pfSense使用CIDR(Classless Inter-Domain Routing,也叫无类别域间路由,它消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。它可以将好几个IP网络结合在一起,使用一种无类别的域际路由选择算法,使它们合并成一条路由从而较少路由表中的路由条目减轻Internet路由器的负担。)表示法,而不是通用子网掩码255.x.x.x。 请参阅下表CIDR子网表:查找十进制子网掩码的CIDR值。

CIDR 子网表
子网掩码 CIDR 前缀 总IP地址数 可用的IP地址数 24网络的数量
255.255.255.255 /32 1 1 1/256th
255.255.255.254 /31 2 2* 1/128th
255.255.255.252 /30 4 2 1/64th
255.255.255.248 /29 8 6 1/32nd
255.255.255.240 /28 16 14 1/16th
255.255.255.224 /27 32 30 1/8th
255.255.255.192 /26 64 62 1/4th
255.255.255.128 /25 128 126 1 half
255.255.255.0 /24 256 254 1
255.255.254.0 /23 512 510 2
255.255.252.0 /22 1024 1022 4
255.255.248.0 /21 2048 2046 8
255.255.240.0 /20 4096 4094 16
255.255.224.0 /19 8192 8190 32
255.255.192.0 /18 16,384 16,382 64
255.255.128.0 /17 32,768 32,766 128
255.255.0.0 /16 65,536 65,534 256
255.254.0.0 /15 131,072 131,070 512
255.252.0.0 /14 262,144 262,142 1024
255.248.0.0 /13 524,288 524,286 2048
255.240.0.0 /12 1,048,576 1,048,574 4096
255.224.0 0 /11 2,097,152 2,097,150 8192
255.192.0.0 /10 4,194,304 4,194,302 16,384
255.128.0.0 /9 8,388,608 8,388,606 32,768
255.0.0.0 /8 16,777,216 16,777,214 65,536
254.0.0.0 /7 33,554,432 33,554,430 131,072
252.0.0.0 /6 67,108,864 67,108,862 262,144
248.0.0.0 /5 134,217,728 134,217,726 1,048,576
240.0.0.0 /4 268,435,456 268,435,454 2,097,152
224.0.0.0 /3 536,870,912 536,870,910 4,194,304
192.0.0.0 /2 1,073,741,824 1,073,741,822 8,388,608
128.0.0.0 /1 2,147,483,648 2,147,483,646 16,777,216
0.0.0.0 /0 4,294,967,296 4,294,967,294 33,554,432

注意

使用/ 31网络是RFC 3021定义的特殊情况,其中子网中的两个IP地址可用于点对点链接以节省IPv4地址空间。 并非所有操作系统都支持RFC 3021,所以请谨慎使用。 在不支持RFC 3021的系统上,子网不可用,因为子网掩码定义的唯一两个地址是空路由和广播,并且没有可用的主机地址。

pfSense 2.3.4-RELEASE-p1支持使用/ 31网络接口和虚拟IP地址。

那么CIDR值从哪里来?

当转换为二进制时,CIDR值来自子网掩码中的数字。

常见的子网掩码255.255.255.0是二进制的11111111.11111111.11111111.00000000。 这加起来有24个,因此是/24。

子网掩码255.255.255.192是二进制的11111111.11111111.11111111.11000000,或者26个,因此是/ 26。

CIDR概述

除了指定子网掩码之外,CIDR还可以用于IP或网络汇总目的。 CIDR子网表中的“总IP地址”列指出给定CIDR掩码总结了多少个地址。 出于网络汇总的目的,“24网络数量”列是有用的。 CIDR汇总可用于pfSense Web界面的多个部分,包括防火墙规则,NAT,虚拟IP,IPsec和静态路由。

可以包含在单个CIDR掩码中的IP地址或网络被称为“CIDR可汇总的”。

在设计网络时,确保在特定位置使用的所有专用IP子网都是CIDR可汇总的。 例如,如果在一个位置需要三个/ 24子网,则应使用子网划分为四个/ 24网络的一个/ 22网络。 下表显示了与子网10.70.64.0/22一起使用的四个/ 24个子网。

CIDR 路由可汇总
10.70.64.0/22 分成24网络
10.70.64.0/24
10.70.65.0/24
10.70.66.0/24
10.70.67.0/24

这使通过使用专用WAN线路或***连接到另一个物理位置的多站点网络的路由更易于管理。 使用CIDR可汇总的子网,一个路由目标覆盖每个位置的所有网络。 没有它,每个位置有几个不同的目标网络。

可以在subnetmask.info网站上找到的网络计算器进行CIDR计算。

计算器从点分十进制转换为CIDR掩码,反之亦然,如图下图所示。 如果本章提供的CIDR子网表不可用,可以使用此工具将CIDR前缀转换为点分十进制表示法。 输入CIDR前缀或点分十进制掩码,然后单击相应的计算按钮以查找转换。


子网掩码转换

在Network/Node Calculator(网络/节点计算器)部分输入十进制掩码和IP地址, 点击Calculate, 在下面就会显示计算的结果。 在本例子中,网络地址是10.70.64.0/22,可用的/ 24网络是64到67。本表中的术语“Broadcast Address(广播地址)”是指该范围内的最高地址。


Network/Node Calculator(网络/节点计算器)

找到一个匹配的CIDR网络

别名支持格式为x.x.x.x-y.y.y.y的IPv4地址范围。 对于网络类型别名,IPv4范围将自动转换为等效的CIDR块。 对于主机类型别名,范围将转换为IPv4地址列表。

如果不需要完全匹配,则可以将数字输入到Network/Node Calculator(网络/节点计算器)进行计算。

广播域名

广播域是共享同一个第2层网段的网络部分。在没有VLAN的单个交换机的网络中,广播域就是整个交换机。在没有使用VLAN的多个互连交换机的网络中,广播域包括所有这些交换机。

单个广播域可以包含多个IPv4或IPv6子网,但是,这通常不被认为是良好的网络设计。应通过使用单独的交换机或VLAN将IP子网隔离到不同的广播域中。例外是在单个广播域内运行IPv4和IPv6网络。这就是所谓的双堆栈,它是一种常用且有用的技术,它为主机使用IPv4和IPv6连接。

广播域可以通过将两个网络接口桥接在一起进行组合,但是在这种情况下必须小心避免交换机环路。对于某些没有组合广播域但具有相同净效应的协议,也可以通过代理,例如将DHCP请求转发到另一个接口上的广播域的DHCP中继。