本书不是对网络的介绍,但一些网络概念需要理解。 对于没有网络基础知识的读者,我们建议阅读其他入门资料,因为本章不会提供所有必要的信息。 IPv6概念将在本章后面的IPv6中介绍。 为了清楚起见,传统的IP地址被称为IPv4地址。 除另有说明外,大多数功能都可以使用IPv4或IPv6地址。 通用术语IP地址是指IPv4或IPv6。
OSI模型层介绍
OSI模型是由七个层级组成的网络框架。这些层级按从低到高的层次结构列出。
- 第1层-物理层:在局域网上传送数据帧(data frame),它负责管理计算机通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。
- 第2层-数据链路层:负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。分为两个子层:逻辑链路控制(logic link control,LLC)子层和介质访问控制(media access control,MAC)子层。
- 第3层-网络层:决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。例如:互联网协议(IP)等。
- 第4层-传输层:把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。
- 第5层-会话层:负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。
- 第6层-表示层:把数据转换为能与接收者的系统格式兼容并适合传输的格式。
- 第7层-应用层:提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
公共和私有IP地址
私有IP地址
网络标准RFC 1918定义了保留的IPv4子网,仅用于私有网络(表RFC 1918私有IP地址空间)。 RFC 4193为IPv6(表RFC 4193唯一本地地址空间)定义了唯一的本地地址(ULA)。 在大多数环境中,RFC 1918的私有IP子网被选择并用于所有内部网络设备。 然后通过网络地址转换(NAT)软件(如pfSense)的防火墙或路由器将设备连接到Internet。 IPv6通过全球单播地址(GUA)从内部网络完全路由而无需NAT。
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 |
前缀 | 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定义了地址空间。 这些特殊的网络包括:
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网络,它们对于一般用户来说更加熟悉。
有些人发现这些地址很想用于VPN甚至局域网。我们不建议将它们用于其他用途,但是与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。在CIDR子网掩码表示法中讨论了 CIDR。
IP地址,子网和网关配置
主机的TCP/IP配置由地址、子网掩码(或IPv6的前缀长度)和网关组成。 IP地址与子网掩码的结合是主机如何识别本地网络上的哪些IP地址。本地网络以外的地址被发送到主机配置的默认网关,它假定将把流量传递到所需的目的地。该规则的一个例外是静态路由,该路由指示设备联系可通过本地连接的路由器访问的特定非本地子网。网关和静态路由的此列表保留在每个主机的路由表中。
在典型的pfSense部署中,主机会在pfSense设备的LAN范围内分配一个IP地址、子网掩码和网关。 pfSense上的LAN IP地址成为默认网关。对于通过LAN以外的接口连接的主机,请使用适用于设备连接的接口的相应配置。
单个网络中的主机直接相互通信,而无需默认网关的参与。这意味着没有防火墙(包括pfSense)可以控制网段内主机到主机的通信。如果需要此功能,则需要通过使用多个交换机,VLAN或采用等效的交换机功能(例如PVLAN)来对主机进行分段。
CIDR子网掩码表示法
在配置地址和网络时,pfSense使用CIDR(Classless Inter-Domain Routing,也叫无类域间路由,它消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。它可以将好几个IP网络结合在一起,使用一种无类的域间路由选择算法,使它们合并成一条路由从而减少路由表中的路由条目,减轻Internet路由器的负担。)表示法,而不是通用子网掩码255.x.x.x。 请参阅下表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..45支持使用/31网络接口和虚拟IP地址。
CIDR值如何计算
当转换为二进制时,CIDR编号来自子网掩码中的1。
公用子网掩码255.255.255.0是二进制的11111111.11111111.11111111.00000000。总计为24个1,所以为/ 24。
子网掩码255.255.255.192是二进制的11111111.11111111.11111111.11000000,即26个1,因此为/ 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子网。
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线路或VPN,使连接到另一个物理位置的多站点网络的路由更易于管理。使用CIDR可概括子网,一个路由目标可以覆盖每个位置的所有网络。没有它,每个位置都有几个不同的目标网络。
可以在subnetmask.info网站上使用网络计算器进行CIDR计算。
计算器将点分十进制转换为CIDR掩码,反之亦然,如下图所示。如果本章提供的 CIDR子网表不可用,则可以使用此工具将CIDR前缀转换为点分十进制表示法。输入CIDR前缀或点分十进制掩码,然后单击相应的“计算” 按钮来查找转换的值。
在Network/Node Calculator(网络/节点计算器)部分输入十进制掩码和IP地址, 点击Calculate, 下面就会显示计算的结果。 在本例中,网络地址是10.70.64.0/22,可用的/ 24网络是64到67。本表中的术语“Broadcast Address(广播地址)”是指该范围内的最高地址。
找到一个匹配的CIDR网络
别名支持格式为x.x.x.x-y.y.y.y的IPv4地址范围。 对于网络类型别名,IPv4范围将自动转换为等效的CIDR块。 对于主机类型别名,范围将转换为IPv4地址列表。
如果不需要完全匹配,则可以将数字输入到Network/Node Calculator(网络/节点计算器)进行计算。
广播域
广播域是网络共享同一第2层网段的部分。在不带VLAN的单个交换机的网络中,广播域就是整个交换机。在多个互连交换机且不使用VLAN的网络里,广播域包含所有这些交换机。
单个广播域可以包含多个IPv4或IPv6子网,但这不是好的网络设计。IP子网应通过使用单独的交换机或VLAN隔离到单独的广播域中。例外是在单个广播域中同时运行IPv4和IPv6网络。这称为双栈,这是对主机同时使用IPv4和IPv6连接的一种常见且有用的技术。
可以通过将两个网络接口桥接在一起来组合广播域,但是在这种情况下,必须小心避免交换环路。对于某些协议,也存在一些代理,这些代理没有组合广播域,保持了网络的干净,例如DHCP中继,它将DHCP请求中继到另一个接口的广播域中。