图 1-3 带简单路由功能的ADSL Modem接入示意图
本文将首先介绍网络共享原理,然后逐个分析目前常用的各种 ADSL 接入协议以及实现共享的方式。最后以 Motorola 850SAR + Vxworks5.4为开发平台,设计一套带简单路由功能的 ADSL 接入设备,重点阐述ATM SAR 层驱动的编写、AAL5 业务、各种接入协议以及带宽共享功能的软件实现。
2 网络共享原理
2.1 私有网络地址和公有网络地址
私有地址是指内部网络(局域网内部)的主机地址,而公有网络地址是局域网的外部地址(在因特网上的全球唯一的IP地址)。因特网地址分配组织规定以下的三个范围网络地址保留用做私有地址:
10.0.0.0 —— 10.255.255.255
172.16.0.0 —— 172.31.255.255
192.168.0.0 —— 192.168.255.255
也就是说这三个范围网络的地址不会在因特网上被分配,但可以在一个企业(局域网)内部使用。各个企业根据在可预见的将来主机数量的多少,来选择一个合适的内部网络地址。不同的企业,他们的内部网络地址可以相同。如果一个公司选择上述三个范围之外的其他网段作为内部网络地址,则有可能会引起路由的混乱。
2.2 NAT原理
NAT(Network Address Translation)网络地址转换,是一个IETF标准,允许一个机构以一个公有网络地址出现在Internet上。NAT将每个局域网节点的私有网络地址转换成一个公有网络地址,反之亦然。它也可以应用到防火墙技术里,把私有地址隐藏起来不被外界发现,使外界无法直接访问内部网络设备,同时,它还帮助网络可以超越地址的限制,合理地安排网络中的公有网络地址和私有网络地址的使用。
NAPT (Network Address and Port Translation) 网络端口地址转换,可以将外部网的公有 IP 及端口号与内部网络的私有网络IP 及端口号相互映射。 通过这种端口重定向方式实现的 NAT 映射功能,可以将来自公共网络的服务请求映射到内部网络某台微机上。
例如,如果公司想以内部网络中的主机A 作为对外公开的Web服务器,就得告诉NAT设备将任何访问其公网地址80端口的连接重新定向为到内部网络A主机地址的80端口。如下图所示
图 2-1 NAT 端口映射应用示意图
3 ADSL 连接协议概述
3.1 RFC1483 Bridged 接入方式
RFC1483标准的制定是为了实现多种协议数据包在ATM 的 AAL5 层的封装传送。在协议模型上,RFC1483-Bridged方式在数据链路层对 MAC 帧进行 LLC/SNAP 或VCMUX 的封装,以此来指明上层所应用的协议类型,因此可以适用于网络层上的多协议传送。在形式上,它仿真了以太网的桥接功能,相当于将用户侧的终端设备直接挂接在网络侧的网桥设备上。
由于ADSL接入设备配置为桥连接方式,理论上来说,设备后可以接多台配置为公网IP地址的微机,这些微机都可以通过网关直接接入 Internet 网络中。但实际上可分配的公有 IP 地址并不多,很多服务提供商限制了每根线上可分配的 IP 个数,因此只有将IP 地址设在ADSL 接入设备的 WAN 端, 然后通过 NAT 的方式来共享有限的 IP 资源,这就是目前较为常见的 1483Bridged+NAT 接入方式,又称为桥路由方式,其接入模型如图3-1所示。
图 3-1 1483Bridged+NAT 接入示意图
3.2 RFC1577 经典IPOA接入方式
严格的说,RFC1577 并非一种接入标准,它规定了在 ATM 的AAL5上使用的地址解析机制,是对 RFC1483 Routed 接入方式在 ATMARP 实现细节的补充。在协议模型上,RFC1577不再转发类似ARP 协议的各种以太网报文, 而是通过和网络指定的ARP 服务器交互 ATMARP信息获得下一跳 IP 地址所对应的 ATM 地址,然后采用 RFC1483 LLC/SNAP 或 基于VC 的复用方式对Routed报文进行封装处理。