最近收了一台二手的Fortinet FG-50E,替换掉了用虚机跑的爱快作为家里的边界路由。

这个想法由来已久,最初是想用CRS326来拨号上网,奈何这货NAT性能只能跑300Mbps,临时用爱快顶了一段时间。路由器选型这事,需求比较特殊,不想为wifi这种附带功能额外付费,wifi用了华为AirEngine LeadAP的方案,关于家庭网络到时候再写一篇细聊。单纯想要台路由器,能跑满千兆宽带,支持ipv6,策略路由,SNMP功能。家用路由器功能不满足,企业设备又不便宜。没错,Mikrotik的hEX都嫌贵,甚至都考虑起了之前不屑的arm软路由。然后就发现了这个二手的飞塔,做个路由器也不赖。咸鱼230从一个像是收废品的人手里收的,不带电源。飞塔的电源接口是一个特殊的接口,molex 2pin,12V DC供电。不想拆外壳改插座,便自己做了条电源线,插在了我的12V分电排上。

这台设备还是注册在dcl-cs.datacontrol.co.jp账户上,安全模块授权才过期半年,看来这台洋垃圾才淘汰不久。咸鱼花5块找了个6.2的固件,到我这继续发挥余热。

安装

由于是桌面设备,是没有挂耳可选配的,于是画了一个支架3D打印出来,来适配标准的19英寸机柜。如果有需要stl的话可以邮件联系我。至于设备顶上写的禁止遮盖顶面避免影响散热,目前观察了几天,室温20度下,感觉发热量也不高。

拨号上网

上网方式是支持静态ip、dhcp和pppoe的,另外还支持ipsec,l2tp、vxlan、ipip、gre隧道协议。配置好WAN口的pppoe认证信息,就能看到路由表里自动获取到了ppp接口的默认路由。

关于性能

在不开IPS、IDS、WAF规则的前提下,pppoe拨号跑满千兆的情况下CPU负载只有46%,为以后加一条其他运营商宽带或者开安全功能留出了可能性。

ipv6

Fortinet的ipv6配置需要在System/Feature Visibility里手动打开ipv6功能。但是,直接在WAN口配置里启用pppoe类型的ipv6是无效的,飞塔需要我们在cli手动配置WAN口允许运营商通过SLAAC下发ipv6前缀,以及LAN口ipv6、dhcpv6配置。由于网络不专业,不保证说法准确性,这里参考了Myles Gray的文章Enabling IPv6 with DHCPv6-PD and PPPoE on a Fortigate。参数解释的部分就不搬过来了,感兴趣的看原文,作者解释得很详细。

WAN口配置

config system interface
    edit "wan1"
        set vdom "root"
        set mode pppoe
        set allowaccess ping
        set type physical
        set role wan
        set snmp-index 1
        config ipv6
            set ip6-mode pppoe
            set ip6-allowaccess ping
            set dhcp6-prefix-delegation enable
            set autoconf enable
        end
        set username "xxxx" 
        set password ENC xxxx
        set dns-server-override disable
    next
end

LAN口配置

config system interface
    edit "lan"
        config ipv6
            set ip6-mode delegated
            set ip6-allowaccess ping https ssh snmp
            set ip6-send-adv enable
            set ip6-manage-flag enable
            set ip6-upstream-interface "wan1"
            set ip6-subnet ::1/64
            config ip6-delegated-prefix-list
                edit 1
                    set upstream-interface "wan1"
                    set autonomous-flag enable
                    set onlink-flag enable
                    set subnet ::/64
                next
            end
        end
    next
end

DHCP6配置

config system dhcp6 server
    edit 1
        set interface "lan"
        set upstream-interface "wan1"
        set ip-mode delegated
        set dns-server1 2400:3200::1
        set dns-server2 2400:3200:baba::1
    next
end

于是你的内网设备就能分配到公网ipv6地址了,路由表里也能看到对应的ipv6地址。

待尝试功能

防火墙、IPS、IDS、WAF

尽管只是拿来当路由拨号上网,这货是具备NGFW的功能的,之后会作为家里网络的硬件防火墙来用。

内网DNS

用来代替pihole来管理内网dns记录,看起来fortios支持用restful api进行管理。但是在6.0.4的api文档里并没有找到管理dns database的接口,又没有fndn的账号能让我查最新的文档,难受。

LB

用来代替kube-vip作为apiserver的LB。

LTE USB dongle

目前家里的4G备用出口是移远的模块挂在openwrt虚机里作为家里的备用网络,似乎FortiGate支持使用LTE modem来上网。

参考资料

Enabling IPv6 with DHCPv6-PD and PPPoE on a Fortigate https://blah.cloud/networks/enabling-ipv6-dhcpv6-pd-pppoe-fortigate/