进一步阅读

进一步阅读

我试图了解cloned_interfacesFreeBSD 的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

它实际上有什么作用?
为什么特定网络模块需要它而不是其他网络模块?
它会创建某种虚拟设备吗?
什么时候需要?
安全影响?
性能影响?

答案1

cloned_interfacesrc.conf是、rc.conf.local、 等中的几个设置之一。控制网络接口的设置和关闭。在 Mewburnrc系统中/etc/rc.d/netif,主要负责使用这些设置。通过 nosh 系统管理,外部格式导入子系统可以获取这些设置,并将它们转换为/var/local/sv.

两个系统的基础都运行ifconfig很多并且运行一些长时间运行的守护进程。

cloned_interfacesnetwork_interfaces与列出要启动和关闭的网络接口的设置几乎相同。两者之间的唯一区别在于,它network_interfaces描述了预先存在的网络接口,因为(网络接口硬件的)硬件检测已经使它们存在;而cloned_interfaces网络接口是仅通过这些服务启动和关闭操作而存在的。

bridgetapepair网络接口并不代表实际的网络接口硬件。因此,在启动和关闭时需要一个额外的步骤,此时需要一个新的网络接口克隆的并被摧毁。这也是通过ifconfig命令完成的。第一个bridge网络接口通过运行进行克隆ifconfig bridge0 create,并通过 进行销毁ifconfig bridge0 destroy。列表bridge0中的列出cloned_interfaces会导致这种情况发生,并且这些命令首先和最后运行;而将其列出则network_interfaces不会,并且系统会假设存在bridge0要操纵的现有设备。

(从技术上讲,环回接口也不是硬件。它也是克隆的;因此第一个克隆的环回接口是lo0,对于那些曾经想知道这个名称的人来说。但是它有特殊的外壳,因为它作为桥接器不是可选的、水龙头和 epair 是。)

除此之外,两组接口的处理方式相同。

进一步阅读

  • 乔纳森·德博因·波拉德 (2017)。 ”联网”。小吃指南。软件。
  • 安德鲁·汤普森. ”桥接“。 FreeBSD 手册
  • 布鲁克斯·戴维斯(2004)。动态网络接口的挑战

答案2

有了cloned_interfaces你可以做很多事情,例如:

  • 调整 FreeBSD 虚拟 LAN 配置:VLAN 是一组具有一组共同要求的主机,这些主机之间的通信就像连接到同一条线路上一样,无论其物理位置如何。 VLAN 具有与物理 LAN 相同的属性,但它允许将终端站分组在一起,即使它们不在同一 LAN 网段上也是如此。网络重新配置可以通过软件完成,而不是物理地重新定位设备。要使配置持久化,请打开/etc/rc.conf:

    vi /etc/rc.conf

追加/修改如下:

cloned_interfaces="vlan0"
ifconfig_vlan0="inet x.x.x.x netmask y.y.y.y vlan 2 vlandev em0"
  • 创建永久环回接口 (FreeBSD),使用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.

  • 使用链路聚合控制协议 LACP 在 FreeBSD 中进行链路聚合/绑定:在 FreeBSD 中将多个以太网链路绑定在一起相当简单,例如使用 LACP,它确实需要一些交换机配置才能工作,然后确保链路聚合模块在启动时启动,因此编辑 /boot/loader.conf 并添加以下行:

    if_lagg_load=”YES”

现在配置端口…在本示例中,我们将 igb0 和 bge0 绑定在一起形成两个端口 LACP 捆绑包。我们将 IP 192.0.2.10/24 分配给该接口。将以下内容添加到 /etc/rc.conf 中:

cloned_interfaces=”lagg0″
ifconfig_igb0=”up”
ifconfig_bge0=”up”
ifconfig_lagg0=”laggproto lacp laggport igb0 laggport bge0 up”
ifconfig_lagg0_alias0=”inet 192.0.2.10/24″
  • 单一 IP 的 FreeBSD Jail,假设我们有以下场景:您有一个带有单个 IP 的 FreeBSD VPS,并且您希望创建一个 FreeBSD 监狱以提供额外的安全性和/或隔离。在这篇文章中,我将说明如何使用单个 VPS 和在内部 IP 上创建的监狱,并通过 NAT 访问和端口转发到监狱的特定端口(Web、ssh 等)。然后创建本地接口如下:

在 rc.conf 中将环回接口克隆到 lo1,以便我们可以使用 192.168。, 10.,或 172.16.* 我们的私人监狱网络。

cloned_interfaces="lo1"
ipv4_addrs_lo1="192.168.0.1-9/29"

上面的代码将创建一个 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 的运行方式。

接下来,指定要添加为网桥成员的网络接口。为了使网桥能够转发数据包,所有成员接口和网桥都需要处于 up 状态:

# ifconfig bridge0 addm fxp0 addm fxp1 up
# ifconfig fxp0 up
# ifconfig fxp1 up

网桥现在可以在 fxp0 和 fxp1 之间转发以太网帧。将以下行添加到 /etc/rc.conf 以便在启动时创建桥:

cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"

如果桥接主机需要 IP 地址,请在桥接接口上设置,而不是在成员接口上设置。地址可以静态设置或通过 DHCP 设置。此示例设置静态 IP 地址:

# ifconfig bridge0 inet 192.168.0.1/24

还可以将 IPv6 地址分配给桥接接口。要使更改永久生效,请将寻址信息添加到 /etc/rc.conf。

这些是 !! 的一些应用程序cloned_interfaces

更多的:1,2,3,4

相关内容