<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Freebsd on 浙江物链网络科技有限公司</title><link>https://www.wlstack.com/cn/tags/freebsd/</link><description>Recent content in Freebsd on 浙江物链网络科技有限公司</description><generator>Hugo</generator><language>zh-CN</language><managingEditor>info@wlstack.com (物链网络)</managingEditor><webMaster>info@wlstack.com (物链网络)</webMaster><lastBuildDate>Tue, 27 Sep 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://www.wlstack.com/cn/tags/freebsd/index.xml" rel="self" type="application/rss+xml"/><item><title>FreeBSD ZFS存储与samba配置</title><link>https://www.wlstack.com/cn/blog/freebsd-zfs-samba/</link><pubDate>Tue, 27 Sep 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/freebsd-zfs-samba/</guid><description>&lt;h1 id="作为穷人我们选择基于freebsdzfssamba构建山寨存储">作为穷人，我们选择基于FreeBSD+ZFS+SAMBA构建山寨存储&lt;/h1>
&lt;p>毋庸质疑，也无需赘述&lt;/p>
&lt;p>&lt;strong>freebsd操作系统是公认的“快”、“安全”、“稳定”&lt;/strong>&lt;/p>
&lt;p>&lt;strong>zfs是人类有史以来最先进的文件系统&lt;/strong>&lt;/p>
&lt;h2 id="freebsd入门">FreeBSD入门&lt;/h2>
&lt;h3 id="软件包管理">软件包管理&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Linux® 命令 (Red Hat/Debian)&lt;/th>
 &lt;th>FreeBSD 等价命令	目的&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>yum install package / apt-get install package&lt;/td>
 &lt;td>pkg install package	从远程仓库安装 package&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rpm -ivh package / dpkg -i package&lt;/td>
 &lt;td>pkg add package	安装 package&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>rpm -qa / dpkg -l&lt;/td>
 &lt;td>pkg info	列出已安装的软件包&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="系统管理">系统管理&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Linux&lt;/th>
 &lt;th>FreeBSD 等价命令	目的&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>lspci&lt;/td>
 &lt;td>pciconf	列出 PCI 设备&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>lsmod&lt;/td>
 &lt;td>kldstat	列出已载入的内核模块&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>modprobe.&lt;/td>
 &lt;td>kldload / kldunload	载入/卸载内核模块&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>strace.&lt;/td>
 &lt;td>truss	跟踪系统调用&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="网络管理">网络管理&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Linux&lt;/th>
 &lt;th>FreeBSD 等价命令	目的&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>ip&lt;/td>
 &lt;td>ifconfig&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ifconfig&lt;/td>
 &lt;td>ifconfig&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>iptable&lt;/td>
 &lt;td>ipfw&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="zfs入门">ZFS入门&lt;/h2>
&lt;h3 id="zfs-的历史">ZFS 的历史&lt;/h3>
&lt;p>ZFS是由 Matthew Ahrens 和 Jeff Bonwick 在 2001 年开发的。ZFS 是作为 太阳微系统(Sun MicroSystem) 公司的 OpenSolaris 的下一代文件系统而设计的。在 2008 年，ZFS 被移植到了 FreeBSD 。同一年，一个移植 ZFS 到 Linux 的项目也启动了。然而，由于 ZFS 是 通用开发和发布许可证 (Common Development and Distribution License)（CDDL）许可的，它和 GNU 通用公共许可证 不兼容，因此不能将它迁移到 Linux 内核中。为了解决这个问题，绝大多数 Linux 发行版提供了一些方法来安装 ZFS。
在甲骨文公司收购太阳微系统公司之后不久，OpenSolaris 就闭源了，这使得 ZFS 的之后的开发也变成闭源的了。许多 ZFS 开发者对这件事情非常不满。 三分之二的 ZFS 核心开发者 ，包括 Ahrens 和 Bonwick，因为这个决定而离开了甲骨文公司。他们加入了其它公司，并于 2013 年 9 月创立了 OpenZFS 这一项目。该项目引领着 ZFS 的开源开发。
让我们回到上面提到的许可证问题上。既然 OpenZFS 项目已经和 Oracle 公司分离开了，有人可能好奇他们为什么不使用和 GPL 兼容的许可证，这样就可以把它加入到 Linux 内核中了。根据 OpenZFS 官网 的介绍，更改许可证需要联系所有为当前 OpenZFS 实现贡献过代码的人（包括初始的公共 ZFS 代码以及 OpenSolaris 代码），并得到他们的许可才行。这几乎是不可能的（因为一些贡献者可能已经去世了或者很难找到），因此他们决定保留原来的许可证。&lt;/p></description></item><item><title>FreeBSD Lagg 端口聚合与LACP配置</title><link>https://www.wlstack.com/cn/blog/freebsd-lagg/</link><pubDate>Fri, 23 Sep 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/freebsd-lagg/</guid><description>&lt;h1 id="基础环境">基础环境&lt;/h1>
&lt;p>os:FreeBSD 12.3-RELEASE&lt;/p>
&lt;p>网卡:Mellanox Technologies ConnectX-4 Lx&lt;/p>
&lt;p>交换机：华为ce6820-48S6CQ-B&lt;/p>
&lt;h1 id="需求">需求&lt;/h1>
&lt;p>FreeBSD 通过ConnectX-4 两个端口连接到交换机。
配置端口聚合（bonding、aggregate，port-chanel，portgroup 好多种说法），实现2个端口负载均衡。&lt;/p>
&lt;h1 id="配置">配置&lt;/h1>
&lt;h2 id="freebsd侧配置">FreeBSD侧配置：&lt;/h2>
&lt;p>kldload if_lagg ### 加载bonding，即freebsd里的lagg内核模块&lt;/p>
&lt;p>ifconfig lagg0 create ### 创建lagg接口&lt;/p>
&lt;p>ifconfig mce0 up ### 启动mce1 网卡&lt;/p>
&lt;p>ifconfig mce1 up ### 启动mce1 网卡&lt;/p>
&lt;p>ifconfig lagg0 up laggproto lacp laggport mce0 laggport mce1 ### 启动聚合接口，聚合协议为lacp，同时还有loadbalance/fce/failover/roundrobin和none模式可选&lt;/p>
&lt;h2 id="交换机侧配置">交换机侧配置：&lt;/h2>
&lt;p>int eth 111&lt;/p>
&lt;p>mode lacp-dynamic&lt;/p>
&lt;h2 id="持久化配置到服务器上编辑etcrcconf-配置文件">持久化配置到服务器上，编辑/etc/rc.conf 配置文件&lt;/h2>
&lt;pre tabindex="0">&lt;code>ifconfig_mce0=&amp;#34;up&amp;#34;
ifconfig_mce1=&amp;#34;up&amp;#34;
cloned_interfaces=&amp;#34;lagg0&amp;#34;
ifconfig_lagg0=&amp;#34;up laggproto lacp laggport mce0 laggport mce1&amp;#34;
ipv4_addrs_lagg0=&amp;#34;x.x.x.x/x&amp;#34;
defaultrouter=&amp;#34;x.x.x.x&amp;#34;
&lt;/code>&lt;/pre>&lt;h2 id="freebsd-lagg协议的分类">FreeBSD Lagg协议的分类&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>协议&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>failover&lt;/td>
 &lt;td>主备模式，第一个端口为主端口，后续端口为备用端口。流量默认走主端口，主端口故障中断后切换到备用端口&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LACP&lt;/td>
 &lt;td>支持 IEEE 802.3ad 链路聚合控制协议 (LACP) 和标记协议。 LACP 将与一个或多个链路聚合组中的对等方协商一组可聚合链路。 每个 LAG 由相同速度的端口组成，设置为全双工操作。 流量将在总速度最大的 LAG 中的端口之间进行平衡，在大多数情况下，只有一个 LAG 包含所有端口。如果物理连接发生变化，链路聚合将快速收敛到新配置。根据协议标头hash信息平衡活动端口之间的传出流量，并接受来自任何活动端口的传入流量。hash包括以太网源地址和目标地址，以及 VLAN 标记（如果可用）以及 IPv4/IPv6 源地址和目标地址。一般和华为交换机对接时使用&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FEC&lt;/td>
 &lt;td>支持思科 EtherChannel。 这是一种静态设置，不会与对等方协商聚合或交换帧来监控链路，如果交换机支持 LACP，则应改为使用它。根据标头信息hash平衡活动端口之间的传出流量，并接受来自任何活动端口的传入流量。 hash包括以太网源地址和目标地址，以及 VLAN 标记（如果可用）以及 IPv4/IPv6 源地址和目标地址。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>loadbalance&lt;/td>
 &lt;td>FEC的别名&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>roundrobin&lt;/td>
 &lt;td>使用轮询分发流量，通过所有活动端口分配传出流量，并接受来自任何活动端口的传入流量。 此模式将违反以太网帧顺序，应谨慎使用。大概率负载不均。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>none&lt;/td>
 &lt;td>这个协议什么都不做：它在不禁用 lagg 接口本身的情况下禁用任何流量。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description></item><item><title>内核优化参数记录之FreeBSD</title><link>https://www.wlstack.com/cn/blog/freebsd-kernel-optimizations/</link><pubDate>Mon, 07 Mar 2022 00:00:00 +0000</pubDate><author>info@wlstack.com (物链网络)</author><guid>https://www.wlstack.com/cn/blog/freebsd-kernel-optimizations/</guid><description>&lt;p>#最大的待发送TCP数据缓冲区空间
net.inet.tcp.sendspace=65536&lt;/p>
&lt;p>#最大的接受TCP缓冲区空间
net.inet.tcp.recvspace=65536&lt;/p>
&lt;p>#最大的接受UDP缓冲区大小
net.inet.udp.sendspace=65535&lt;/p>
&lt;p>#最大的发送UDP数据缓冲区大小
net.inet.udp.maxdgram=65535&lt;/p>
&lt;p>#本地套接字连接的数据发送空间
net.local.stream.sendspace=65535&lt;/p>
&lt;p>#加快网络性能的协议
net.inet.tcp.rfc1323=1
net.inet.tcp.rfc1644=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1&lt;/p>
&lt;p>#最大的套接字缓冲区
kern.ipc.maxsockbuf=2097152&lt;/p>
&lt;p>#系统中允许的最多文件数量
kern.maxfiles=65536&lt;/p>
&lt;p>#每个进程能够同时打开的最大文件数量
kern.maxfilesperproc=32768&lt;/p>
&lt;p>#当一台计算机发起TCP连接请求时,系统会回应ACK应答数据包.
#该选项设置是否延迟ACK应答数据包,把它和包含数据的数据包一起发送,
#在高速网络和低负载的情况下会略微提高性能,但在网络连接较差的时候,
#对方计算机得不到应答会持续发起连接请求,反而会降低性能.
net.inet.tcp.delayed_ack=0&lt;/p>
&lt;p>#屏蔽ICMP重定向功能
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0&lt;/p>
&lt;p>#防止ICMP广播风暴
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0&lt;/p>
&lt;p>#限制系统发送ICMP速率
net.inet.icmp.icmplim=100&lt;/p>
&lt;p>#安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用
net.inet.icmp.icmplim_output=0
net.inet.tcp.drop_synfin=1&lt;/p>
&lt;p>#设置为1会帮助系统清除没有正常断开的TCP连接,这增加了一些网络带宽的使用,但是一些死掉的连接最终能被识别并清除.死的TCP连接是被拨号用户存取的系统的一个特别的问题,因为用户经常断开modem而不正确的关闭活动的连接
net.inet.tcp.always_keepalive=1&lt;/p>
&lt;p>#若看到net.inet.ip.intr_queue_drops这个在增加,就要调大net.inet.ip.intr_queue_maxlen,为0最好
net.inet.ip.intr_queue_maxlen=1000&lt;/p>
&lt;p>#防止DOS攻击,默认为30000
net.inet.tcp.msl=7500&lt;/p>
&lt;p>#接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包
net.inet.tcp.blackhole=2&lt;/p>
&lt;p>#接收到一个已经关闭的端口发来的所有UDP包直接drop
net.inet.udp.blackhole=1&lt;/p>
&lt;p>#为网络数据连接时提供缓冲
net.inet.tcp.inflight.enable=1&lt;/p>
&lt;p>#如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间,但会需要大量的内核内存空间来保存路由表
net.inet.ip.fastforwarding=0&lt;/p>
&lt;p>##kernel编译打开options POLLING功能,高负载情况下使用低负载不推荐
##SMP不能和polling一起用
#kern.polling.enable=1&lt;/p>
&lt;p>#并发连接数,默认为128,推荐在1024-4096之间,数字越大占用内存也越大
kern.ipc.somaxconn=32768&lt;/p>
&lt;p>#禁止用户查看其他用户的进程
security.bsd.see_other_uids=0&lt;/p>
&lt;p>#设置kernel安全级别
kern.securelevel=0&lt;/p>
&lt;p>#记录下任何TCP连接
net.inet.tcp.log_in_vain=1&lt;/p>
&lt;p>#记录下任何UDP连接
net.inet.udp.log_in_vain=1&lt;/p>
&lt;p>#防止不正确的udp包的攻击
net.inet.udp.checksum=1&lt;/p></description></item></channel></rss>