我有一个网络问题,其中源 MAC 与我的主机的源 MAC 之一匹配的帧到达主机 - 明显的重复 MAC、循环或其他 L2 问题。
我相信这是这种情况,因为我的 linux 网桥的 MAC 表(CAM 表)将本地 MAC(用于托管虚拟机)注册为在上游端口上,并且内核日志显示错误:
bridgename: received packet on bond0.2222 with own address as source address
Run Code Online (Sandbox Code Playgroud)
我想获得有关这些“流氓”数据包/帧的更多详细信息,但我不知道如何将它们归零。使用 tcpdump 您可以过滤特定的源 MAC( 'ether src MAC' ),但这是基于帧中的字节 - 而不是帧是“发送”还是“接收”。我们通常假设带有源 MAC 的帧意味着我们将其发送出去,但如果接收到重复的帧,则过滤器的内容看起来完全相同。
如何观察在数据包捕获中是接收帧还是发送帧?
背景:
在PATH
环境变量指定通过时的命令而不指定路径发出搜索的目录。"sbin" 路径 ( /sbin
, /usr/sbin
) 旨在容纳管理实用程序,因此许多 *nix 发行版不将这些目录包含在PATH
. 也就是说,在许多情况下,非管理帐户合法地需要访问这些实用程序,并且必须指定完整路径或修改其PATH
变量才能这样做。此任务相对容易执行,但对于新用户来说可能很麻烦。更糟糕的是,当您涉及 PAM、sudo、ssh 和其他与PATH
环境。对该站点或整个互联网的搜索会产生许多这些问题的样本,这些问题困扰着新老用户。
问题:
有了上述背景,是否有充分的理由不将 sbin 目录添加到默认 PATH ?(推测是通过/etc/profile
,/etc/profile.d
或等同物)
我承认“好”是主观的,但在我看来,这里有一些不成立的原因。也许你不同意?
不好的理由:
r-x
)无关。可能会提出一个默默无闻的论点,即足够不熟练的坏人找不到“隐藏的”实用程序,但这将是一个可悲的透明幕布。reboot
命令,他们可以通过自己的自定义目录访问这些命令,并将其添加到PATH
sbin 目录中,而系统默认值会胜过他们的配置。这是一个极端情况,并且有问题的用户已经了解PATH
含义并且可以修改他们的配置以在序列中更早地使用他们的目录。我正在尝试配置我的 rsyslog 客户端以将消息转发到我的 syslog-ng 日志存储库系统。转发消息“开箱即用”,但我的客户记录的是短名称,而不是 FQDN。因此,系统日志存储库上的消息也使用短名称,这是一个问题,因为人们无法轻松确定消息源自哪个系统。我的客户通过 DHCP/DNS 获取他们的名字。
我尝试了多种解决方案试图使其正常工作,但没有成功。我正在使用 rsyslog 4.6.2 和 syslog-ng 3.2.5。
我尝试将其设置$PreserveFQDN on
为 /etc/rsyslog.conf 中的第一个指令(当然还重新启动 rsyslog)。好像没有什么效果。
hostname --fqdn
客户端上的 FQDN 返回正确的 FQDN,因此问题不在于系统是否能够真正找出自己的 FQDN。
$LocalHostName <fqdn>
看起来很有希望,但该指令在我的 rsyslog 版本中不可用(自 4.7.4+、5.7.3+、6.1.3+ 起可用)。目前无法选择升级。
配置 syslog-ng 服务器以通过 DNS 进行反向查找来填充名称并不是一种选择。反向 DNS 和公共云很复杂。
乍一看,指定转发器使用自定义模板似乎是一个可行的选择。我可以指定以下内容,这会导致本地日志记录开始使用 syslog-ng 存储库上的 FQDN。
$template MyTemplate, "%timestamp% <FQDN> %syslogtag%%msg%"
$ActionForwardDefaultTemplate MyTemplate
Run Code Online (Sandbox Code Playgroud)
但是,当我将其放在适当的位置时,syslog-ng 似乎无法按设施或优先级对消息进行分类。消息以 FQDN 形式传入,但所有内容都放入 user.log 中。当我不使用自定义模板时,消息会根据设施和优先级正确分类,但使用短名称。
因此,总而言之,如果我手动诱使 rsyslog 包含 FQDN,那么优先级和设施就会丢失 syslog-ng 的详细信息。如何让 rsyslog 进行 FQDN 日志记录,该日志记录可以正常工作到 syslog-ng 存储库?
rsyslog 客户端配置:
$ModLoad imuxsock.so # provides support for local …
Run Code Online (Sandbox Code Playgroud)