在 OpenBSD 上使用 NTPD 通过端口转发从 Linux 获取时间

在 OpenBSD 上使用 NTPD 通过端口转发从 Linux 获取时间

这是另一个问题,现在我对事情有了更深入的了解。

我已经设置以下网络:

    NTP
  10.21.3.169
    |     \______________
    |                    \
  10.21.3.160 (eth1)     |   
   L1                    |
  10.0.0.67 (eth0)       |
    |                    |
    |                    |
  10.0.0.65 (pcn1)       |
   OpenBSD               |
  10.0.0.51 (pcn0)       |
    |                    |
    |                    |
  10.0.0.49 (eth1) 10.21.3.159 (eth0)
                 L2

其中 L1 和 L2 是 Linux 机器。

我希望 OpenBSD 盒子能够从 NTP 服务器获取时间。有人告诉我,要实现这一点,我需要对 OpenBSD 盒子的/etc/pf.conf文件进行一些更改。

我的初步尝试如下。我知道我还需要对 Linux 机器上的 iptables 进行一些更改,但目前tcpdump udpLinux 机器上没有显示任何来自 OpenBSD 机器的流量,我假设 NTP 客户端的请求没有正确路由到 Linux 机器。

rdr on pcn1  proto udp from any to any port 123 -> 10.0.0.67
nat on pcn0 proto udp from any to 10.0.0.67 port 123 -> pcn1

我正在使用以下命令更新 OpenBSD 框的配置:

pfctl -F all ; pfctl -f /etc/pf.conf

我正在使用以下命令执行 ntp 更新以查看会发生什么:

ntpd -d -s

我正在使用“传统”ntp,而不是OpenNTP。

我需要在 pf.conf 中更改什么才能看到 UDP 数据包到达 L1?重申一下,PF 配置与我将运行 ntpd 客户端的同一台机器上。

答案1

好的,我让它工作了。首先,pf 配置是:

rdr on pcn0    proto udp from any to any port 123 -> 10.0.0.67
nat on pcn0 proto udp from any to 10.0.0.67 port 123 -> pcn1

但是,我还将我的 ntp 客户端配置为连接到10.21.3.169,事实上它应该连接到10.0.0.67

我现在需要配置在 10.0.0.67 上监听的机器以将 NTP 请求转发到 10.21.3.169,但这是另一个问题的主题!:)

相关内容