一、Network Servers
- DNS
- unbound/local_unbound
-
# /etc/rc.conf local_unbound_enable="YES" # 测试指定 DNS 服务器是否畅通且启用安全特性(DNSSEC),测试通过的 DNS 服务器地址可保留在 /etc/resolv.conf 用作 unbound 或 local_unbound(系统自带的仅用于本地服务的精简版) 的緩存源 drill -S FreeBSD.org @8.8.8.8
$ drill -S FreeBSD.org ;; Number of trusted keys: 1 ;; Chasing: freebsd.org. A DNSSEC Trust tree: freebsd.org. (A) |---freebsd.org. (DNSKEY keytag: 36786 alg: 8 flags: 256) |---freebsd.org. (DNSKEY keytag: 32659 alg: 8 flags: 257) |---freebsd.org. (DS keytag: 32659 digest type: 2) |---org. (DNSKEY keytag: 49587 alg: 7 flags: 256) |---org. (DNSKEY keytag: 9795 alg: 7 flags: 257) |---org. (DNSKEY keytag: 21366 alg: 7 flags: 257) |---org. (DS keytag: 21366 digest type: 1) | |---. (DNSKEY keytag: 40926 alg: 8 flags: 256) | |---. (DNSKEY keytag: 19036 alg: 8 flags: 257) |---org. (DS keytag: 21366 digest type: 2) |---. (DNSKEY keytag: 40926 alg: 8 flags: 256) |---. (DNSKEY keytag: 19036 alg: 8 flags: 257) ;; Chase successful
#启用 local_unbound,之后每个域名从第二次重复訪问时,将通过本地 DNS 緩存加速解析 service local_unbound onestart(服务启动后将会注释掉 resolv.conf 中已有的 nameserver IP)
- FTP 服务器
- ftpd:FreeBSD 自带的一个精简实用的 ftp 服务器
-
# /etc/ftpusers:禁止登陆 ftp 服务器的用户名单 root ... nobody # /etc/ftpchroot:将所有用户锁定在指定目录(如:/home/ftp)下,禁止查看外部的目录結构 @ /home/ftp # /etc/rc.conf ftpd_enable="YES"
- 允许匿名登陆
- 建立名为 ftp 的用户,任意客户端可使用 ftp 用户名(无需密码)登陆
- 匿名用的户的可见范围被自动锁定在 ftp 用户的 home 目录中
- NTP 服务器
-
# /etc/rc.conf ntpd_enable="YES" # /etc/ntp.conf:用于陈列多条上游(源) NTP 服务器地址 server ntp1.nl.net server 120.25.108.11
-
二、Advanced Networking
- Gateways and Routes
-
# /etc/rc.conf #设置默认路由(等效命令:route add default 10.0.0.1) defaultrouter="10.0.0.1" #设置静态路由(等效命令:route add -net 192.168.0.0/24 192.168.0.1) static_routes="net1 net2" route_net1="-net 192.168.0.0/24 192.168.0.1" route_net2="-net 192.168.1.0/24 192.168.1.1"
-
- USB Tethering
-
# Android 手机网络共享 kldload if_urndis
-
- Bridging
- 基础应用
-
#手动创建虚拟网桥,添加网口成员,成员类型可以为物理端口或其它虚拟端口(如:vlan 等) ifconfig bridge create #可以自定义端口名称,如:ifconfig bridge8 create,将创建名为 bridge8 的设备,仅能以 虚拟设备类型 后跟 数字的方式命名 ifconfig bridge addm alc0 addm alc1 up # 静态设置:/etc/rc.conf cloned_interfaces="bridge0" ifconfig_bridge0="addm alc0 addm alc1 up inet 10.0.0.2/8" ifconfig_alc0="up" ifconfig_alc1="up" # RSTP(The Rapid Spanning Tree Protocol):传统 stp 协议的升級版,用于防止产生环路 ifconfig bridge0 stp alc0 stp alc1
- 高級应用
-
# 将多个物理网口的流量聚集到虚拟网桥,用于监控分析,被聚积的流量经过网桥后将被直接丢弃 ifconfig bridge0 addm alc0 addm alc1 addm alc2 addm alc3 monitor up tcpdump -i bridge0 # 设定鏡像端口(span),网桥收到的所有流量都将复制一份至鏡像端口,但从鏡像口流入的流量不再进入网桥,例如本例中的 alc4 端口 ifconfig bridge0 span alc4 # 限制成员的 IP 数量,通常是 vlan 成员 ifconfig bridge0 ifmaxaddr vlan_1 10
- Link Aggregation and Failover
- 多网口链路聚合技术,用于负载均衡与容灾,类似于 Linux 下的 bonding 或 teamd 的应用场景
- 创建 lacp 类型的链路聚合端口
-
# 需交换机支持,且成员端口必須具备相同的速率与工作模式,如:1000M 全双工
# Cisco® switch 设置# 创建 channel group
interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacp# 查看端口聚合的状态
show lacp neighbor
# FreeBSD 主机设置
# 手动设置
ifconfig lagg9 create up
ifconfig lagg9 laggprotolacplaggport alc0 laggport alc1 10.0.0.3/24 #laggproto 指定端口聚合类型,实用的模式有两种:failover(仅容錯)、lacp(容錯、负载均衡)
# /etc/rc.conf
ifconfig_alc0="up"
ifconfig_alc1="up"
cloned_interfaces="lagg9"
ifconfig_lagg9="laggproto lacp laggport alc0 laggport alc1 10.0.0.3/24" - 创建 failover 类型的链路聚合端口
-
# 无需交换机支持,对成员端口的速率与工作模式无要求 # FreeBSD 主机设置 # 手动设置 ifconfig lagg create up ifconfig lagg0 laggproto failover laggport alc0 laggport alc1 10.0.0.3/24 #laggproto 指定端口聚合类型,实用的模式有两种:failover(仅容錯)、lacp(容錯、负载均衡) # /etc/rc.conf ifconfig_alc0="up" ifconfig_alc1="up" cloned_interfaces="lagg0" ifconfig_lagg0="laggproto failover laggport alc0 laggport alc1 10.0.0.3/24"
...