这是另一个问题,现在我对事情有了更深入的了解。
我已经设置以下网络:
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 udp
Linux 机器上没有显示任何来自 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,但这是另一个问题的主题!:)