【FRRouting User Guide】【Basic 】(五)VTY shell

vtysh为单个组合会话中的所有FRR守护进程提供了一个组合前端。默认情况下,它在生成时启用,但可以通过configure脚本的--disable vtysh选项禁用。

vtysh有一个配置文件,vtysh.conf文件。该文件的位置不能从/etc/frr更改,因为它包含控制身份验证行为的选项。此文件也不会由配置保存命令写入,而是由管理员使用外部编辑器手动更新。

警告
这也意味着hostname和banner motd命令(两者都对vtysh有效)需要在vtysh.conf文件中手动更新.

  • copy FILENAME running-config

手动处理和加载配置文件;文件中的每一行都被读取和处理,就好像它被键入(或通过管道)到vtysh一样。

Pager usage

vtysh可以调用外部分页程序(例如,或多或少)对命令的长输出进行分页。此功能以前默认情况下启用,但现在由 VTYSH_PAGER环境变量和terminal paginate命令控制:

  • VTYSH_PAGER

如果设置了,则VTYSH_PAGER环境变量会使vtysh 通过给定的命令通过管道输出命令。请注意,无论输出的长度如何,都会发生这种情况。因此,标准pager 行为(特别是在输出结束时等待)往往会让用户感到恼火。建议使用较少的-EFX以获得更好的用户体验。

如果此环境变量未设置,则vtysh默认不使用任何pager 。
这个变量应该由用户根据自己的喜好在~/.profile文件中设置。

  • terminal paginate

启用/禁用vtysh输出分页。此命令将放置在vtysh.conf文件设置 system-wide 的默认值。如果启用了此选项,但未设置VTYSH_PAGER ,则将使用系统默认的pager (可能是more or /usr/bin/pager)。

Permissions and setup requirements

vtysh通过/var/run/frr中的Unix套接字连接到运行守护进程。因此,运行vtysh需要访问该目录,以及frrvty组中的成员资格(这是守护进程将其套接字的所有权更改为的组)。

要限制对FRR配置的访问,请确保没有未经授权的用户是frrvty组的成员。

警告
VTYSH实现了一个CLI选项-u,--user,它不允许在命令行中输入字符“en”,这在理想情况下限制了对配置命令的访问。然而,VTYSH从来没有被设计成特权代理,也没有使用安全编码实践构建。此选项不提供任何安全保证,在任何情况下都不应使用此选项来提供对FRR的任何表面安全性或只读访问。

PAM support (experimental)

vtysh有工作(但相当无用)PAM支持。它将使用frr作为服务名称执行“身份验证”PAM调用。vtysh将不执行其他(记帐、会话、密码更改)调用。

使用vtysh的用户仍然需要对守护进程的VTY套接字有适当的访问权限,通常是frrvty组的成员。如果他们有这个成员资格,PAM支持是无用的,因为他们可以连接到守护进程并使用其他工具发出命令。或者,可以将vtysh二进制文件设为frrvty组的SGID(set group ID)。

警告
此配置没有安全保证。

  • username USERNAME nopassword

如果在构建时启用PAM支持,则此命令允许在每个用户基础上禁用PAM的使用。如果vtysh发现用户正在尝试使用vtysh,并且找到了“nopassword”条目,则根本不会调用PAM。

Integrated configuration mode

集成配置模式使用单个配置文件,frr.conf,对于所有守护进程。这将替换单个文件,如zebra.conf或者bgpd.conf文件.

frr.conf位于/etc/frr。所有守护进程在启动时都会检查此文件是否存在,如果存在,则不会加载各自的配置文件。相反,必须调用vtysh -b来处理frr.conf并将其设置应用于各个守护进程。

警告
vtysh-b也必须在重新启动任何守护进程之后执行。

Configuration saving, file ownership and permissions

那个 frr.conf 文件不是由任何守护进程编写的;相反,vtysh包含从所有守护进程收集配置、合并并写入所需的逻辑。

警告
vtysh必须运行守护程序才能收集其配置。执行配置保存后,非运行守护程序中的任何配置都将永久丢失。

由于vtysh命令可能作为系统上的普通用户运行,因此将通过watchfrr在内部使用write integrated命令来尝试配置写入。由于watchfrr是以超级用户的身份运行的,因此vtysh能够确保frr.conf.

如果watchfrr没有运行或者配置写入失败,vtysh将尝试直接写入文件。如果以非特权用户身份运行,则此操作可能会失败;或者,它可能会使文件的所有者或权限不正确。

编写配置可以通过调用vtysh-w直接触发。这对于编写脚本可能很有用。注意:此命令应以超级用户或FRR用户的身份运行。

我们建议您不要混合使用这两种类型的文件。此外,最好不要使用集成的frr.conf文件,因为其中的任何语法错误都可能导致/all/守护进程无法启动。每个守护程序文件更健壮,因为配置中错误的影响仅限于发生错误的守护程序文件。

  • service integrated-vtysh-config

控制是否集成frr.conf文件是在发出“写入文件”时写入的。

这些命令需要放置在vtysh.conf文件有任何影响。注意,自vtysh.conf文件FRR本身不编写,因此需要手动将它们放置在该文件中。

此命令有3种状态:

(1) service integrated-vtysh-config

vtysh会一直写frr.conf.

(2) no service integrated-vtysh-config

vtysh永远不会写frr.conf,相反,它会要求守护进程编写各自的配置文件。

(3) Neither option present (default)

vtysh将检查frr.conf存在。如果是这样,配置写入将更新该文件。否则,将通过各个守护进程执行写操作。

此命令主要用于包装/分发目的,以预设两种操作模式之一,并确保跨安装的一致操作。

  • write integrated

无条件地(不管服务集成vtysh config设置)写出集成frr.conf通过watchfrr归档。如果watchfrr未运行,则此命令不可用。

警告
某些守护程序未运行时所做的配置更改对该守护程序不可见。守护进程将以其保存的配置启动(在其单个配置文件中,或在frr.conf). 这对于路由映射和前缀列表尤其麻烦,否则它们将在守护进程之间同步。

猜你喜欢

转载自blog.csdn.net/weixin_39094034/article/details/115195608
今日推荐