网络故障排除

本文记录网络故障排除,以备今后遇到同样问题时,快速解决。

交换机Telnet、SSH 无法登录奇怪故障一例

交换机上配置了 Vlanif 9 - 10.12.9.250/24Vlanif 10 - 10.12.10.250/24, 想要通过 10.12.10.0/23 网段上的终端,通过 SSH/TELNET 登录交换机,交换机上 SSH/TELNET 配置已配置妥当,但无论是通过 SSH, 还是 TELNET 都无法连接上 10.12.9.250/24,不过可通过 10.12.10.250/24 可以连接上。为何会这样呢?

这是由于发起 SSH/TELNET 的数据包,是交换机上 Vlanif 9 收到的,但返回的数据包,则是从 Vlanif 10 发出的,那么就造成了混乱,导致 SSH/TELNET 连接无法建立。

光模块起不来的问题

光模块起不来,通常是因为所使用的光模块,与光纤不匹配的原因造成。其中,多模光模块使用 810nm 波长的激光,而单模光模块则使用 1310nm 波长的激光。有关单模与多模的区别,请参考:Fiber Optic Cable Types: Single Mode vs Multimode Fiber Cable。排查此问题的三个命令(H3C):

  • display transceiver interface Ten-GigabitEthernet 1/0/52

输出:

[xfoss-com-core]display transceiver interface Ten-GigabitEthernet 1/0/52
Ten-GigabitEthernet1/0/52 transceiver information:
  Transceiver Type              : 10G_BASE_SR_SFP
  Connector Type                : LC
  Wavelength(nm)                : 850
  Transfer Distance(m)          : 80(OM2),30(OM1),300(OM3)
  Digital Diagnostic Monitoring : YES
  Vendor Name                   : XFOSS-COM
  Vendor Part Number            : SFPXG-850C-D30
  Part Number                   : SFPXG-850C-D30
  Serial Number                 : 012345678901
  • display transceiver manuinfo interface Ten-GigabitEthernet 1/0/52

输出:

[xfoss-com-core]display transceiver manuinfo interface Ten-GigabitEthernet 1/0/51
Ten-GigabitEthernet1/0/51 transceiver manufacture information:
  Manu. Serial Number : 01234567890123456789
  Manufacturing Date  : 2017-04-01
  Vendor Name         : XFOSS-COM
  • display transceiver diagnosis interface Ten-GigabitEthernet 1/0/51

输出:

[xfoss-com-core]display transceiver diagnosis interface Ten-GigabitEthernet 1/0/51
Ten-GigabitEthernet1/0/51 transceiver diagnostic information:
  Current diagnostic parameters:
    Temp.(C) Voltage(V)  Bias(mA)  RX power(dBm)  TX power(dBm)
    42         3.41        6.42      -2.55          -2.71
  Alarm thresholds:
          Temp.(C) Voltage(V)  Bias(mA)  RX power(dBm)  TX power(dBm)
    High  80         3.60        15.00     0.00           0.00
    Low   -15        3.00        0.00      -10.90         -8.30
  • display transceiver alarm interface Ten-GigabitEthernet 1/0/52

输出:

[xfoss-com-core]display transceiver alarm interface Ten-GigabitEthernet 1/0/52
Ten-GigabitEthernet1/0/52 transceiver current alarm information:
  RX power low
  RX signal loss

H3C IPv6 DHCP snooping 设置

此问题源起 Windows DNS 解析异常的一种情况,排查发现在防火墙(FortiGate 60E)上已经禁用 IPv6,故分析主机获取到的局域网IPv6地址,是从交换机上得到。但继续排查发现核心交换机同样没有启用 IPv6 栈,那么就可能是网络上有具备 IPv6 DHCP 功能的设备,给主机了局域网的 IPv6 地址,以及 IPv6 DNS 服务器。

尝试在核心交换机上开启 IPv6 DHCP snooping 功能:

ipv6 dhcp snooping enable

并在接入接口上,开启 IPv6 DHCP snooping 功能,已消除上述设备 IPv6 DHCP 功能的影响:

interface GigabitEthernet1/0/1
 port link-mode bridge
 port access vlan 10
 ipv6 dhcp snooping deny

随后发现,终端主机已经没有获取到 IPv6 DNS server 了。Windows DNS 解析异常问题解除。

:H3C 交换机建立端口组的命令为:interface range name acc,其中 acc 为端口组的名字,命令后跟要加入该端口组的接口。

FG 防火墙问题

本小节记录网络设备 FG 防火墙的有关问题。

开启 SSLVPN 的双因素认证

经测试,要在 FGT-60F 启用双因素认证(2FA),需要以下必要条件。

  • 用户手机上要安装 FortiToken App;
  • 需要采购软件 Token(“用户与认证” -> “FortiToken” -> “+新建” 导入)。

然后在 “用户与认证” -> “设置用户” 下,导入 LDAP/AD 中的用户,并与采购的软件 Token 绑定。随后 FGT-60F 将通过设置的用户邮箱,发出一封带有在 FortiToken 中建立 2FA 验证码条码密钥、二维码图片附件的邮件。用户籍由此邮件便可在 FortiToken App 中获得 2FA 验证码。在今后的 SSLVPN 拨号操作,就都需要 2FA 验证码了。

使用 LDAP/AD 认证 SSLVPN 时指定用户组

需要在 “远程组” 中:

  • “编辑” “远程服务器” 中的项目

  • 在弹出的 “添加组匹配” 弹窗中

  • 浏览到特定组后,在其上点击右键,选择 “添加已选”

  • 然后点击 “OK” 确认

在防火墙上无法 ping 通 IPSec VPN 远端网络问题

在一台 FG-60F 上配置测试 LDAP 与双因素认证的 SSLVPN 时,发现无法连通 IPSec VPN 下的远端 AD 控制器,进而检查防火墙无法 ping 通该 AD 控制器,于是联系 FG TAC。FG TAC 排除解决后答复:

“如远程排查结果,IPSec VPN 阶段 2 中感兴趣流严格控制了只有内网网段能访问,防火墙 LDAP 配置没有指定源,所以流量无法通过 VPN 转发,带上内网接口 IP 源后已经可以正常访问”

TAC 工程师并给出有关指令如下。

# 为 ping 制定源 IP 地址
exec ping-options source <source-intf_ip>
# 配置 LDAP 查询源 IP 地址
config user ldap
    edit <LDAP object name>
    set source-ip <IP address associated an interface>
    end

检查配置命令:

show user ldap <LDAP object name>

利用 “策略与对象” - “QoS 限速”,实现 IPSec VPN 流量优先

此举的目的,是运用设备的流量整形特性,在发生拥塞(接入带宽耗尽)时,使 IPSec VPN 隧道流量仍能得到保证。

TAC 给的示例配置如下:

config firewall shaper traffic-shaper
    edit "guarantee-ipsec-traffic"
        set guaranteed-bandwidth 50000  //保证带宽,单位kbps,确保如果发生拥塞的时候能够流量优先保证
        set maximum-bandwidth 100000 //最大带宽,单位kbps
        set per-policy enable
    next
    edit "guarantee-wan-traffic"
        set maximum-bandwidth 100000 //最大带宽,单位kbps
        set per-policy enable
    next
end
config firewall shaping-policy
    edit 0 //顺序新建一条限速策略
        set name "guarantee-ipsec-traffic"
        set service "ALL"
        set srcintf X    //流量的进入接口
        set dstintf Y    //流量的出接口(ipsec接口)
        set traffic-shaper "guarantee-ipsec-traffic"
        set traffic-shaper-reverse "guarantee-ipsec-traffic"
        set srcaddr "all"    //可以具体指定流量的IP范围
        set dstaddr "all"    //可以具体指定流量的IP范围
    next
end
config firewall shaping-policy
    edit 0 //顺序新建一条限速策略
        set name "guarantee-wan-traffic"
        set service "ALL"
        set srcintf X    //流量的进入接口
        set dstintf Z    //流量的出接口(wan接口)
        set traffic-shaper "guarantee-wan-traffic"
        set traffic-shaper-reverse "guarantee-wan-traffic"
        set srcaddr "all"    //可以具体指定流量的IP范围
        set dstaddr "all"    //可以具体指定流量的IP范围
    next
end

参考示例配置进行配置后,使用配置查看命令,查看到的配置如下:

FG-60F-BJ-KG # show firewall shaper traffic-shaper
config firewall shaper traffic-shaper

(...)

    edit "guarantee-ipsec-traffic"
        set guaranteed-bandwidth 5000
        set maximum-bandwidth 10000
        set per-policy enable
    next
    edit "guarantee-wan-traffic"
        set maximum-bandwidth 50000
        set per-policy enable
    next
    edit "guarantee-dmz-traffic"
        set maximum-bandwidth 30000
        set per-policy enable
    next
end


FG-60F-BJ-KG # show firewall shaping-policy
config firewall shaping-policy
    edit 1
        set uuid ba271712-8b82-51ef-606c-50e63838e1a5
        set name "guarantee-ipsec-traffic"
        set service "ALL"
        set srcintf "internal"
        set dstintf "to_ks"
        set traffic-shaper "guarantee-ipsec-traffic"
        set traffic-shaper-reverse "guarantee-ipsec-traffic"
        set srcaddr "LAN"
        set dstaddr "to_ks_remote_subnet_1"
    next
    edit 2
        set uuid bddc113a-8b84-51ef-e3d2-5e0685bba2ae
        set name "guarantee-dmz-traffic"
        set service "ALL"
        set srcintf "dmz"
        set dstintf "wan1"
        set traffic-shaper "guarantee-dmz-traffic"
        set traffic-shaper-reverse "guarantee-dmz-traffic"
        set srcaddr "all"
        set dstaddr "all"
    next
    edit 3
        set uuid 0c2ac2c8-8b85-51ef-d450-c9c2b69983c5
        set name "guarantee-wan-traffic"
        set service "ALL"
        set srcintf "internal"
        set dstintf "wan1"
        set traffic-shaper "guarantee-wan-traffic"
        set traffic-shaper-reverse "guarantee-wan-traffic"
        set srcaddr "all"
        set dstaddr "all"
    next
end

预期这样配置后,可以解决北京 site 在接入带宽耗尽时,IPSec VPN 受到影响的问题。

SSLVPN 中策略放行但某个网段下主机不通问题

这是因为 FG 中 SSLVPN 下,还有路由的设置,通过这个设置,控制了 SSLVPN 拨号进来的用户,总体上可以访问哪些网段。设置位于

VPN --> SSL-VPN 门户 --> full-access --> 隧道分割 --> 隧道分离地址

若在此设置中未加入某个网段,那么即使在 “策略” 中放行了这个网段中的某些主机,SSLVPN 拨入的用户也仍然不能连接到这些主机。同时 SSLVPN 拨号的终端上,也不会有到这个网段的路由条目(加入到隧道分离地址中的网段,在拨号终端的路由表中是有对应的路由条目的)。

IPSec 隧道下站点 B 无法访问站点 A 特定子网问题

站点 B 可以访问到站点 A 的 10.11.1.0/24 子网,但无法访问到 10.11.2.0/24 子网,检查站点 B 上已设置正确的路由,站点 A 上也放行了 IPSec 隧道对 10.11.2.0/24 子网的访问。

随后联系 FG 官方支持工程师对此问题进行排查,发现是策略配置错误导致。10.11.1.0/2410.11.2.0/24 两个子网,是配置在 FG 60E 防火墙的两个不同 internal 接口上,而原先的策略配置,把 IPSec 隧道对 10.11.2.0/24 子网的访问放行,与对 10.11.1.0/24 子网的放行,一并放在了 10.11.1.0/24 所在接口上,由此造成站点 B 对 10.11.2.0/24 子网的访问不通。

解决方法:在 Site A 的 FG 防火墙上,把 IPSec 隧道对 10.11.2.0/24 网段的访问放行策略,建立在 10.11.2.0/24 子网所对应的接口上。

IPSec 隧道建立问题

  • 建立 “接口模式” IPSec 隧道时,务必要选择物理接口,否则会报错;

  • 特性(“Feature”)版本下,无法在网页 GUI 界面下修改IPSEC VPN 配置;成熟版本下可以,选择“转换未自定义隧道”后就可以了。

“自定义” 隧道下参数配置

在不同企业、对端为非 FG 防火墙的如下 IPSec 隧道参数约定下,FG 端的配置如下面的截图所示。

Phase 1 Proposal:
    IKE Version:            IKEv1
    Authentication Method:  Preshared
    Preshared Key:          somekey(根据客户不同进行事先协商确定)
    DH Group:               Group 2
    Encryption Algorithm:   3DES-CBC
    Hash Algorithm:         SHA-1
    IKE SA Lifetime:        480 Mins
    Mode:                   Main

Phase 2 Proposal:
    Perfect Forward Secrecy:    NO-PFS
    Encapsulation:
        Encryption (ESP)
            Encryption Algorithm:       3DES-CBC
            Authentication Algorithm:   SHA-1
    IPSEC Tunnel Lifetime:      60 Mins

图 1、阶段 1 认证方法

阶段 1 认证方法

图 2、阶段 1 参数

阶段 1 参数

图 3、阶段 2 参数

阶段 2 参数

FG 固件升级

FG 防火墙固件升级,需要按照升级路径进行。访问 Recommended Upgrade Path,可以找到升级路径。

在未按照升级路径升级固件时,就会出现系统无法启动,如下所示。

FortiGate-60F (19:09-07.21.2021)
Ver:05000009
Serial number: FGT60FTK2209J3YG
CPU: 1200MHz
Total RAM: 2 GB
Initializing boot device...
Initializing MAC... NP6XLITE#0
Please wait for OS to boot, or press any key to display configuration menu......

Booting OS...
Initializing firewall...
failed verification on /data/datafs.tar.gz
fos_ima: System Integrity check failed...
CPU7: stopping
CPU4: stopping
CPU0: stopping
CPU2: stopping
CPU5: stopping
CPU6: stopping
CPU1: stopping

此时,设备可以启动到 Bootloader,可进入 configuration menu,选择升级前可启动的固件启动。如下所示。

FortiGate-60F (19:09-07.21.2021)
Ver:05000009
Serial number: FGT60FTK2209J3YG
CPU: 1200MHz
Total RAM: 2 GB
Initializing boot device...
Initializing MAC... NP6XLITE#0
Please wait for OS to boot, or press any key to display configuration menu..

[C]: Configure TFTP parameters.
[R]: Review TFTP parameters.
[T]: Initiate TFTP firmware transfer.
[F]: Format boot device.
[I]: System information.
[B]: Boot with backup firmware and set as default.
[Q]: Quit menu and continue to boot.
[H]: Display this list of options.

Enter C,R,T,F,I,B,Q,or H:

Loading backup firmware from boot device...


Booting OS...
.Initializing firewall...

System is starting...
Starting system maintenance...
Scanning /dev/mmcblk0p1... (100%)
Scanning /dev/mmcblk0p3... (100%)

7.2.x 后固件升级

“7.2系列的固件在“系统”--“Fabric管理”这边上传固件。”

进入 Firmware & Registration 后,需要在当前运行固件版本上点击,后 “升级” 按钮由灰色变为正常可用。

深信服 Sangfor SSL VPN

解锁用户

“运行状态” -> “在线用户” -> “锁定用户:n[查看]”

VPN 上的 DNS 服务器设置

系统设置 -> SSL VPN选项 -> 系统选项 -> 内网域名解析

参考链接VPN设备上的DNS解析顺序

Last change: 2024-11-13, commit: 6d4da9c