nat的优化

如何确认光猫是桥接还是路由模式?

当数据包进入桥接器时,桥接器会查看源MAC地址,并将其存储在一个表格中。然后,桥接器会检查目的MAC地址,并将其与该表中的所有MAC地址进行比较。如果该目的MAC地址已保存在表格中,桥接器就将数据包切换到与目的MAC地址相应的端口上。如果目的MAC地址不在表格中,则桥接器广播数据包到所有端口。

方法一: 我们用一台电脑的网口使用网线直接连接光猫的LAN口(也就是上网口),若是电脑连上之后能直接上网,那么就说明,光猫为:路由模式。 反之,若是电脑不能直接上网,那么说明光猫是桥接模式,需要电脑拨号,输入上网宽带账号、密码才能拨号上网。
方法二: 我们还可以直接登录光猫的后台管理界面查看,查看网络-网络设置里面的连接模式是路由还是桥接。如下:

常见组网模式

方法一:跑量设备,直接接入光猫LAN口,光猫开启DMZ或者UNPN(推荐);
方法二:光猫连接模式改成桥接、路由器上网模式改成拨号上网。

光猫超密:
|运营商 |账号 |密码|
| —— | —— | —— |
|电信 |telecomadmin |nE7jA%5m|
|联通 |CUAdmin |CUAdmin|
|移动 |CMCCAdmin |aDm8H%MdA|

光猫拨号改桥接

部分地区因运营商限制,必须使用光猫拨号(详情可咨询运营商)。如有光猫管理员账号,可以尝试将光猫改为桥接模式,且关闭DHCP服务,再接入设备进行拨号。

  1. 修改网络模式
    通过浏览器登录后依次点击 网络-网络设备 后,可以看到如下页面,选择连接名称为 上网 2_INTERNET_B_VID_41 的连接;

    记住当前拨号使用的账号密码,后续路由器拨号使用,记录账号密码后,修改光猫连接模式,将路由改成桥接(如果不支持直接修改的,需要记好VlanID,这个ID每个地区不一致,删除配置页,重新建立新的配置页);

    关于要不要关掉光猫DHCP功能,取决于网络拓扑结构,如果光猫和路由器不在一个网段就可以不用关掉DHCP,因为内部设备申请IP地址,光猫是收不到的。但是有个问题就是电脑无法登录上光猫的管理页面,因为不在一个网段了,解决办法是连接光猫的WIFI再次输入地址就可以登录,或者路由器LAN口和光猫的LAN口之间再插入一根网线,让他们在同一个局域网下,用电脑也能访问了,但是插了网线就要关掉光猫的DHCP了,避免DHCP报文冲突,影响网络。
  2. 修改家用路由器
    浏览器输入管理ip登录家用路由器http://192.168.1.1
    默认管理ip,默认账号密码可看设备背面,ip一般为192.168.1.1、192.168.0.1
    或者可以按照以下方式获取路由器管理ip 获取路由器管理IP: 同时按下Win键+R键,输入cmd,直接回车;再输入:ipconfig

    打开浏览器:输入路由器即默认网关地址 192.168.x.1,输入账号密码,选择 常用设置-上网设置-上网方式-宽带拨号 上网,输入宽带账号密码,既可拨号成功;

优化

设备与拨号拿到运营商IP能做DMZ对应映射最优,通过开启UPNP做端口映射次之。

IPv6配置

目前运营商提供的IPv6线路主要分为支持前缀授权和不支持前缀授权两种。
1、支持前缀授权的IPv6线路上网设置方法,用户自行分配IPv6地址,路由器开启路由模式,主机DHCP获取路由器分配的IPv6地址,需要路由器支持IPv6路由模式。(不推荐NAT6模式,类似于IPv4的NAT,主机使用内网IPv6地址)

2、不支持前缀授权的IPv6线路上网设置方法,用户不能分配IPv6地址,路由器设置桥接模式,由运营商分配IPv6地址,需要路由器支持IPv6桥接模式。

WAN口参数设置

根据运营商提供的IPv6上网方式进行WAN口IPv6设置,并在高级设置中开启前缀授权功能,此处以PPPoE拨号为例(可以复用IPv4的拨号链路),拨号成功后可看到WAN口获取到IPv6地址。

LAN口参数设置

IP协议类型选择IPv6,并点击启用,地址配置方式选择EUI-64,前缀授权接口选择刚才设置好的WAN口(EUI-64表示自动获取64位IPv6的前缀地址)。

地址分配设置

根据需要设置LAN口IPv6地址分配方式,可以选择DHCPv6或者SLAAC(二选一),DNS不填时默认为路由器的IPv6地址,路由器作DNS代理。其中DHCPv6是路由器手动设置一个范围下发地址;SLAAC是根据地址前缀路由器随机下发地址。

开启桥模式后WAN口和LAN口的IPv6参数均不可设置.

IPv6详解

IPv6支持多个地址,地址分配更加灵活方便。与 IPv4 仅仅依赖 DHCP 协议的地址分配方法不同,IPv6 加入了原生的无状态地址自动配置 (Sateless Address Autoconfiguration,简写 SLAAC) 协议。SLAAC 既可以单独工作为主机提供 IPv6 地址,又能与 DHCPv6 协同运作产生新的分配方案。这里对 IPv6 动态地址分配机制做一个全面分析。

地址构成

IPv6 与 IPv4 最显著的不同,就是其超大的地址空间。IPv4 有32比特 (4字节),允许大约42.9亿(232)个地址。而 IPv6 定义了128比特 (16字节),支持大约340 x 1036个地址。这是一个相当可观的数字,在可预见的未来都不会出现地址枯竭的问题。典型的 IPv6 地址可被划分成两部分。如下图所示,开头的64比特用来代表网络,后面的64比特用作接口标识:

为了便于书写,IPv6 推荐末端加上网络前缀长度的压缩格式标记,据此上面的地址可以缩短表示为: 2001:db8:130f::7000:0:140b/64

地址类型

RFC 4291 区分了三种 IPv6 地址类型:

  • 单播 (unicast):网络地址和网络节点一一对应,点对点连接
  • 任播 (anycast):发送地址对应一群接收节点,但只有最近一个接收到
  • 组播 (multicast):发送地址对应一群接收可以复制信息的节点

留意到 IPv6 取消了广播 (broadcast) 地址类型,对应的 IPv4 广播功能可以更好地由组播实现。任播地址与单播并无不同,应用场景非常有限。任播的一个典型应用是设定 DNS 根服务器,以便让主机就近查询域名。对于单播和组播地址,它们之间可由不同的网络前缀所辨认:

地址类型 英文名称 二进制 16进制 应用
链路本地地址(单播) Link-local address 1111 1110 10 fe80::/10 单链路通信
唯一本地地址(单播) Unique local address 1111 1101 fd00::/8 本地网络通信
全局单播地址 Global unicast address 001 2000::/3 互联网通信
组播地址 Multicast address 1111 1111 ff00::/8 群组通信,流媒体视频

IPv6全局地址的网络前缀通常以”2000::/3”开头,这包括所有以”2”开头的16位数值的地址段。但也可能有其他的前缀。”2000::/3”表示网络前缀的长度为24位,即网络前缀的地址范围为”2000:0000:0000:0000::”到”3fff:ffff:ffff:ffff::”,总共有35个可用的网络前缀。

IPv6 网络中,FD00::/8 地址段保留给私有网络,它们在互联网上不可用,类似 IPv4 中的 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 地址段。FD 前缀的 IPv6 地址用于唯一本地地址(Unique Local Address,ULA),是一种私有地址。ULA 的设计目的是为了在企业组织内部或本地网络内部使用,可用于设备之间的通信,而无需使用全局唯一的公共 IPv6 地址。

地址分配

NDP(Neighbor Discovery Protocol)是IPv6网络中的一种协议,用于节点之间的邻居关系发现和状态维护。在IPv6网络中,NDP协议可以被用来进行地址分配。IPv6中的地址分配有两种方式:静态配置和动态分配,其中动态分配可以通过SLAAC(Stateless Address Autoconfiguration)和DHCPv6(Dynamic Host Configuration Protocol version 6)来实现。

NDP 定义了五种 ICMPv6 消息类型:

  • 路由器请求 (Router Solicitation,简称 RS)
  • 路由器通告 (Router Advertisement,简称 RA)
  • 邻居请求 (Neighbor Solicitation)
  • 邻居通告 (Neighbor Advertisement)
  • 重定向 (Redirect)

这里的头二个消息类型 RS 和 RA,就是实现 IPv6 动态地址分配的关键。主机会发送 RS 消息到本地网段所有路由器组播地址 ff02::2,请求路由信息。当路由器收到网络节点发出的 RS 时,会即时发送 RA 回应。RA 的消息格式如下

1
2
3
4
5
6
7
8
9
10
11
12
13
 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cur Hop Limit |M|O| Reserved | Router Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reachable Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Retrans Timer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-

它定义了两个特殊比特位 M 和 O,其意义如下:

  • M — 受监管的地址配置标志,设为1时地址从 DHCPv6 获取。
  • O — 其他配置标志,设为1时指示其他配置信息从 DHCPv6 获取

网络中的路由器会周期性的发送 RA 消息到本地网段所有节点组播地址 (ff02::1)。但是,为了避免时延,主机启动完成后会马上发送一个或多个 RS 消息到本地网段所有路由器。协议规定路由器要在0.5秒内回应 RA 消息。之后,根据所收到的 RA 消息中的 M/O/A 比特位的取值,主机会决定如何动态配置接口的唯一本地地址和全局单播地址,以及如何获取其他配置信息。在某些比特位取值组合下,主机需要运行 DHCPv6 客户端软件,连接到服务器以获取地址分配和/或其他配置信息。整个过程如以下消息时序图所示:

SLAAC是最简单的 IPv6 地址自动分配方案,不需要任何服务器。其工作原理是主机启动后发送 RS 消息请求,路由器回送 RA 消息至本地网段所有节点。如果 RA 消息包含如下设置:

  • 首部的 M 比特和 O 比特都清零
  • 前缀信息选项的 L 比特和 A 比特置为1

那么主机收到这个 RA 消息后,执行如下操作实现 SLAAC:

  1. 组合网络前缀与本地接口标识,生成唯一本地地址或全局单播地址
  2. 安装默认网关(或缺省路由)指向路由器地址 (RA消息的源地址)
  3. 将此接口设为对应网络前缀的“在链路”,也是以上默认网关的下一跳接口
  4. 如果包含 RDNSS 和/或 DNSSL 选项,安装域名服务器和域名后缀

SLAAC + 无状态 DHCPv6,SLAAC 自动地址分配快捷方便,为中小型网络部署提供了即插即用的 IPv6 部署方案。但是如果网络节点需要获得其他一些配置信息,比如 NTP/SNTP 服务器、TFTP 服务器和 SIP 服务器地址,或者其功能依赖某些厂商特定的信息选项 (Vendor-specific Information Option) 时,就必须选择 SLAAC + 无状态 DHCPv6 的方案。

这一方案依然使用 SLAAC 自动地址分配,但是路由器会指示主机去连接 DHCPv6 服务器以获取其他配置信息。这时路由器回送的 RA 消息设置变为:

  • 首部的 M 比特清零,O 比特置为1
  • 前缀信息选项的 L 比特和 A 比特置为1

主机收到这个 RA 消息后,执行如下操作:

  1. 组合网络前缀与本地接口标识,生成唯一本地地址或全局单播地址
  2. 安装默认网关(或缺省路由)指向路由器地址 (RA消息的源地址)
  3. 将此接口设为对应网络前缀的“在链路”,也是以上默认网关的下一跳接口
  4. 如果包含 RDNSS 和/或 DNSSL 选项,安装域名服务器和域名后缀
  5. 启动 DHCPv6 客户端,连接 DHCPv6 服务器请求其他配置信息
  6. 保存 DHCPv6 服务器回复的其他配置信息

可以看到,SLAAC + 无状态 DHCPv6 在地址分配上与 SLAAC 并没有什么不同。DHCPv6 只是提供附加配置信息,不会分配 IPv6 地址。所以 DHCPv6 服务器不会追踪网络节点的地址分配状况,这就是“无状态”的含义。

有状态 DHCPv6,许多大型企业应用 DHCP 管理设备的 IPv4 地址,所以部署 DHCPv6 集中分配和管理 IPv6 地址是自然的优先选择。这就是有状态 DHCPv6的用武之地。这一方案同样需要路由器发送的 RA 消息,但是不会仅仅依靠网络前缀进行自动地址分配。RA 消息的控制比特位设置是:

  • 首部的 M 比特置为1,O 比特无所谓
  • 前缀信息选项的 L/A 比特可按需要设为1或0

收到这个 RA 消息后,主机执行操作如下:

  1. 如果有前缀信息选项 A 比特设为1,则组合生成唯一本地地址或全局单播地址
  2. 安装默认网关(或缺省路由)指向路由器地址 (RA消息的源地址)
  3. 如果有前缀信息选项 L 比特设为1,将此接口设为对应网络前缀的“在链路”
  4. 如果包含 RDNSS 和/或 DNSSL 选项,安装域名服务器和域名后缀
  5. 启动 DHCPv6 客户端,连接服务器请求地址和其他配置信息
  6. 将 DHCPv6 服务器分配的地址设置到此接口
  7. 保存 DHCPv6 服务器回复的其他配置信息

如何分辨主机接口动态分配的地址来源?方法很简单。要记住的一点是,DHPCv6 不会发送网络前缀长度给请求者,所以从 DHPCv6 拿到的地址的网络前缀长度都是128。而 SLAAC 生成的地址网络前缀长度不会是128的。

简要说明

在使用NDP进行地址分配时,可以使用SLAAC方式进行。SLAAC是一种无状态的地址自动配置方式,使用时需要一个具有唯一性的前缀,以及网络接口标识符(Interface Identifier)来组成IPv6地址。在网络中,当一个IPv6设备连接到网络时,会向路由器发送Router Solicitation(RS)消息来请求路由器发送Router Advertisement(RA)消息。RA消息中包含了IPv6地址的前缀和其他配置信息。设备通过这些信息生成自己的IPv6地址。

下面是使用NDP进行地址分配的过程:

  1. 设备向网络发送Router Solicitation(RS)消息,以请求路由器发送Router Advertisement(RA)消息。
  2. 路由器接收到RS消息后,会向网络发送RA消息,包含了IPv6地址前缀、IPv6地址的有效期限等信息。
  3. 设备接收到RA消息后,根据前缀生成IPv6地址,并将其配置到网络接口上。
  4. 设备使用新的IPv6地址与其他设备进行通信。

需要注意的是,在使用NDP进行地址分配时,前缀必须是全局唯一的,否则可能会导致网络地址冲突。此外,IPv6地址的生成方式可能因为不同的实现而有所不同,需要根据具体情况进行设置和配置。

为了让主机重新发送 RS 消息请求,可以通过重启网络接口来使主机重新发送 RS 消息请求。具体地,可以使用 ifdown 命令将网络接口关闭,然后使用 ifup 命令将网络接口重新启动。或者ifconfig eth0 down && ifconfig eth0 up。

nephen wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!