Networking 为什么iptables NAT在mininet中工作,而iptables日志记录不工作?

Networking 为什么iptables NAT在mininet中工作,而iptables日志记录不工作?,networking,iptables,mininet,Networking,Iptables,Mininet,我在mininet.nodelib中查找了NAT类,它是通过iptables实现的: 但是,当我安装日志规则时: iptables -A INPUT -j LOG --log-prefix "IPT log: " --log-level 4 /var/log/kern.log文件中没有出现一个/related/entry(如果我在没有mininet的情况下运行相同的规则,它会工作) 提前谢谢 编辑: 更准确地说,以下是我试图做的: mininet>h2 iptables -A OUTPU

我在
mininet.nodelib
中查找了NAT类,它是通过iptables实现的:

但是,当我安装日志规则时:

iptables -A INPUT -j LOG --log-prefix "IPT log: " --log-level 4
/var/log/kern.log
文件中没有出现一个/related/entry(如果我在没有
mininet
的情况下运行相同的规则,它会工作)

提前谢谢

编辑: 更准确地说,以下是我试图做的:

mininet>h2 iptables -A OUTPUT -j LOG --log-prefix "IPT log: " --log-level 3
mininet>h2 iptables -I OUTPUT -j LOG --log-prefix "IPT log: " --log-level 3
mininet>h2 ping h0
.... normal ping output ....
mininet>h2 wget h0
.... index.html being saved on disk ....
mininet>h2 grep "IPT log" /var/log -R
正如
grep
所示,尽管ping发送了多条ICMP消息,而
wget
执行了TCP通信,但日志中没有一条相关行

编辑2: 以下是我的iptables规则,实验后(对不起,文本图片):
输入链将只包含目的地为本地计算机的数据包,而不包含正在转发的数据包

节点(在本例中,包含iptables规则的机器)正在路由(转发)的数据包将通过以下链:

预路由->转发->后路由

如果要记录正在转发的所有数据包,则需要使用日志规则中的转发链更改输入链

如果只想记录正在进行NATd的数据包,则需要使用日志规则中的POSTROUTING链和NAT

编辑

由于iptables规则(在您实验的输出链中)目标日志被触发(基于您的屏幕截图),我们可以排除任何
iptables
[LOG rules]问题


问题必须在其他地方,例如日志记录设施服务(例如,
syslog
)。

如果我在NAT盒的预路由上或在“数据包源”机器的输出链上安装相同的规则,它仍然无效:
iptables-t NAT-A预路由-j LOG-日志前缀“IPT LOG”:--日志级别4
能否尝试使用-I而不是-A?(这将在表的开头插入日志规则,而不是将其追加到表的尾部,从而排除了以前的任何规则可能会阻止日志规则的实现)。只是这样做了,没有效果。我将扩展这个问题来解释这些实验。您的系统日志配置是否触发[如写入任何日志文件]任何日志级别为3的消息?我不知道触发级别。我刚刚为所有级别
——日志级别1
、2、3、4安装了规则。也在mininet之外
——日志级别4
工作
mininet>h2 iptables -A OUTPUT -j LOG --log-prefix "IPT log: " --log-level 3
mininet>h2 iptables -I OUTPUT -j LOG --log-prefix "IPT log: " --log-level 3
mininet>h2 ping h0
.... normal ping output ....
mininet>h2 wget h0
.... index.html being saved on disk ....
mininet>h2 grep "IPT log" /var/log -R