我试图了解cloned_interfaces
FreeBSD 的rc.conf
真正作用。
手册页说:
cloned_interfaces
:(str) 设置为要在此主机上创建的可克隆网络接口列表。通过设置变量,可以将进一步的克隆参数传递给
ifconfig(8)
create
每个接口的命令create_args_<interface>
。如果使用关键字指定接口名称sticky
,则即使 使用参数rc.d/netif
调用脚本,该接口也不会被破坏。stop
这在重新配置接口而不破坏它时很有用。中的条目cloned_interfaces
会自动附加到network_interfaces
配置中。
这并没有提供任何有用的信息来说明它的作用。例如if_bridge
,if_tap
和使用它if_epair
。
它实际上是做什么的?
为什么我需要它用于特定的网络模块而不是其他网络模块?
它会创建某种虚拟设备吗?
什么时候需要?
安全隐患?
性能影响?
cloned_interfaces
是rc.conf
,rc.conf.local
, et al. 中的几个设置之一。控制网络接口的设置和关闭。在 Mewburnrc
系统中/etc/rc.d/netif
,主要负责使用这些设置。通过 nosh 系统管理,外部格式导入子系统采用这些设置并将它们转换为/var/local/sv
.两个系统在它们的基础上运行
ifconfig
很多,并运行一些长时间运行的守护进程。cloned_interfaces
network_interfaces
与列出要启动和关闭的网络接口的设置几乎相同。两者之间的唯一区别在于network_interfaces
描述了预先存在的网络接口,因为硬件检测(网络接口硬件)已经使它们存在;而cloned_interfaces
网络接口是通过这些服务启动和关闭操作单独产生的。A
bridge
、tap
或epair
网络接口不代表实际的网络接口硬件。因此,在启动和关闭时需要一个额外的步骤,即克隆和销毁新网络接口的点。这再次通过ifconfig
命令完成。第一个bridge
网络接口通过运行克隆ifconfig bridge0 create
,并通过销毁ifconfig bridge0 destroy
。列bridge0
在cloned_interfaces
列表中会导致这种情况发生,并且这些命令首先和最后运行;而将其列出则network_interfaces
不会,并且系统会假定存在bridge0
要操作的现有设备。(从技术上讲,环回接口也不是硬件。它也是克隆的;因此第一个克隆的环回接口
lo0
是, taps 和 epairs 是。)除此之外,两组接口的处理方式相同。
进一步阅读
你可以做很多事情,
cloned_interfaces
例如:调整 FreeBSD 虚拟 LAN 配置: VLAN 是一组具有共同要求的主机,它们可以像连接到同一条线路一样进行通信,而不管它们的物理位置如何。VLAN 具有与物理 LAN 相同的属性,但它允许将终端站组合在一起,即使它们不在同一个 LAN 网段上。网络重新配置可以通过软件完成,而不是物理地重新定位设备。要使配置持久化,请打开 /etc/rc.conf:
vi /etc/rc.conf
追加/修改如下:
ifconfig lo1 create
,然后将以下内容添加到 /etc/rc.conf:cloned_interfaces="lo1"
ifconfig_lo1="inet a.b.c.d/netmask"
where a.b.c.d is the ip address.
在 FreeBSD 中使用链路聚合控制协议 LACP 进行链路聚合/绑定:在 FreeBSD 中将多个以太网链路绑定在一起非常简单,例如使用 LACP 需要一些交换机配置才能工作,然后确保链路聚合模块在启动时启动,所以编辑 /boot/loader.conf 并添加以下行:
if_lagg_load=”YES”
现在配置端口……在本例中,我们将 igb0 和 bge0 绑定到一个两个端口的 LACP 捆绑包中。我们将为接口分配 IP 192.0.2.10/24。将以下内容添加到 /etc/rc.conf:
在您的 rc.conf 中将环回接口克隆到 lo1,以便我们可以使用 192.168。, 10. , 或 172.16.* 用于我们的私人监狱网络。
以上将创建一个 lo1 环回设备,在该接口上创建 192.168.0.1 到 192.168.0.9。从这里我们将创建一个 192.168.0.2 的监狱。然后我们将配置 PF 以允许来自这些本地地址的出站流量 (NAT) 以及将 web (80) 和 SSH 端口传递到特定的监狱 IP。
启用桥接:在 FreeBSD 中,
if_bridge
是一个内核模块,ifconfig
在创建桥接接口时会自动加载。也可以通过将设备添加if_bridge
到自定义内核配置文件来将桥接支持编译到自定义内核中。网桥是使用接口克隆创建的。创建桥接接口:# ifconfig bridge create
bridge0
# ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0
创建网桥接口时,会自动为其分配一个随机生成的以太网地址。maxaddr 和 timeout 参数控制网桥将在其转发表中保留多少 MAC 地址,以及在最后一次看到每个条目后多少秒内将其删除。其他参数控制 STP 的运行方式。
接下来,指定要添加为网桥成员的网络接口。为了让网桥转发数据包,所有成员接口和网桥都需要启动:
网桥现在可以在 fxp0 和 fxp1 之间转发以太网帧。将以下行添加到 /etc/rc.conf 以便在启动时创建网桥:
如果桥接主机需要 IP 地址,请在桥接接口上设置,而不是在成员接口上设置。地址可以静态设置或通过 DHCP 设置。此示例设置静态 IP 地址:
也可以将 IPv6 地址分配给网桥接口。要使更改永久生效,请将寻址信息添加到 /etc/rc.conf。
这些是一些应用
cloned_interfaces
!!更多:1 , 2 , 3 , 4