如何在 sles15 中创建持久隧道设备(有或没有 wicked xml 配置)

如何在 sles15 中创建持久隧道设备(有或没有 wicked xml 配置)

我正在尝试简化 sles15 的一些配置,通过 ansible 将隧道配置推送到我的机器。目前,每当我配置隧道时,我都会使用机器上的 ssh 来启动 ssh 隧道和 sudo 命令(运行 tunctl (不再存在))。

我想做的是将隧道持久保留在 sles15 计算机上,然后使用 ssh 和 -w 命令连接到它。

然而,这根本不值一提:

<interface>
  <link-type>tun</link-type>
  <name>tun1</name>
  <control>
    <mode>boot</mode>
  </control>
  <firewall/>
  <tun>
    <owner>ansible</owner>
    <group>sshinternalusers</group>
  </tun>

  <ipv4>
    <enabled>true</enabled>
    <forwarding>true</forwarding>
  </ipv4>
  <ipv6>
    <enabled>false</enabled>
    <forwarding>false</forwarding>
  </ipv6>
</interface>

这也不起作用(我认为这是传统的做法)

STARTMODE='onboot'
BOOTPROTO='static'
TUNNEL_SET_PERSISTENT='yes'
TUNNEL='tun'
TUNNEL_LOCAL_IPADDR=172.20.26.115
TUNNEL_REMOTE_IPADDR=172.20.26.114
TUNNEL_DEVICE=tun0
TUNNEL_SET_OWNER=ansible
TUNNEL_SET_GROUP=sshinternalusers

我没有找到任何有关 XML 的文档(除了对架构进行逆向工程之外)。当我重新启动机器时,隧道似乎确实启动了,但必须有不同的方法来启动隧道,因为当我运行 ifup tun0 时,它告诉我“没有设备”

答案1

弄清楚邪恶者在做什么的最简单方法是制作老式的网络配置脚本(记录在man ifcfg-tunnel

添加这个:

STARTMODE='auto'
BOOTPROTO='static'
TUNNEL_SET_PERSISTENT='yes'
TUNNEL='tun'
IPADDR=172.20.26.115
REMOTE_IPADDR=172.20.26.114
TUNNEL_DEVICE=tun0
TUNNEL_SET_OWNER=ansible
TUNNEL_SET_GROUP=sshinternalusers
ZONE=public
MTU=1300

作为 /etc/sysconfig/network/ifcfg-tun0

跑步wicked ifup tun0

隧道应该出现在ip addr show

现在(这是基于 suse 发布的一些幻灯片来展示 wicked 有多酷)

cd 到 /etc/sysconfig/network

跑步wicked show-config compat:

这将吐出此目录中所有内容的接口文件(即 ifcfg-tun0)

输入该输出,可能如下所示:

<interface >
  <name>tun1</name>
  <control>
    <mode>auto</mode>
  </control>
  <firewall>
    <zone>public</zone>
  </firewall>
  <tun>
    <owner>479</owner>
    <group>479</group>
  </tun>
  <link>
    <mtu>1300</mtu>
  </link>
  <ipv4>
    <enabled>true</enabled>
    <forwarding>true</forwarding>
  </ipv4>
  <ipv4:static>
    <address>
      <local>172.20.42.115/32</local>
      <peer>172.20.42.114</peer>
    </address>
  </ipv4:static>
  <ipv6>
    <enabled>false</enabled>
    <forwarding>false</forwarding>
  </ipv6>
</interface>

在 /etc/wicked/ifconfig/tun0.xml 中并从 sysconfig 中删除旧的配置文件

如果你这样做wicked ifreload tun0

现在应该使用新的配置,您可以重新启动或使用 wicked ifdown/ifup 来确认。

注意,所有者和组是 ID,而不是用户名

并且,由于您使用的是 ssh,因此不要忘记PermitTunnel Yes在 sshd 配置文件中进行设置。


FWIW(而且不多,因为您不想在运行 wicked 时手动使用它)的替代品tunctl似乎是ip tunnel.

相关内容