ERSPAN 到同一子网上具有多个接口的 Centos 主机上的 IP

ERSPAN 到同一子网上具有多个接口的 Centos 主机上的 IP

我有一个有趣的配置并希望获得一些帮助以使它工作。

在硬件网络监控探测器上,我有 2 个物理接口。mgmt 是管理接口,mon1 是监控接口。在正常操作中,mon1 接口配置为混杂模式,我们将网络流量镜像到探测器,探测器会为看到的流量生成 IPFIX。

我现在尝试配置一个 ERSPAN GRE 隧道以终止于探测器,但似乎无法保持流量从监控接口 (mon1) 进入。GRE 隧道似乎更喜欢管理接口 (mgmt)。

示例中的 IP 为:

Network Probe:
  mgmt -> 10.30.15.16
  mon1 -> 10.30.15.41 (For the GRE tunnel)
  tun0 -> 10.30.15.41 (Also for the GRE tunnel)

Switch:
  External IP -> 10.1.1.4
  Tunnel IP -> 10.30.15.40

我猜想这可能是一个时间问题,在隧道建立之前,交换机使用来自 mgmt 的 MAC 将 10.30.15.41 标记为关闭...

这可能是路由问题,但我不确定如何解决。以下是当前配置的路由:

[root@hardwareheavy ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.30.1.1       0.0.0.0         UG    100    0        0 mgmt
0.0.0.0         10.30.1.1       0.0.0.0         UG    103    0        0 mon1
10.30.0.0       0.0.0.0         255.255.0.0     U     100    0        0 mgmt
10.30.0.0       0.0.0.0         255.255.0.0     U     103    0        0 mon1
10.30.15.40     0.0.0.0         255.255.255.255 UH    0      0        0 tun0

[root@hardwareheavy ~]# cat /etc/sysconfig/network-scripts/route-mon1
10.1.1.4 via 10.30.1.1 dev mon1 table mon1
10.30.15.41 via 10.30.1.1 dev mon1 table mon1
default via 10.30.1.1 dev mon1 table mon1

[root@hardwareheavy ~]# cat /etc/sysconfig/network-scripts/rule-mon3
to 10.1.1.4 src 10.30.15.41 table mon3
to 10.30.15.40 src 10.30.15.41 table mon3
from 10.1.1.4 src 10.30.15.41 table mon3
from 10.30.15.40 src 10.30.15.41 table mon3

我为 tun0(隧道终止接口)配置 ifcfg 文件后,便创建了 GRE 隧道

[root@hardwareheavy ~]# cat /etc/sysconfig/network-scripts/ifcfg-tun0
DEVICE=tun0
NAME=tun0
ONBOOT=yes
BOOTPROTO=none
TYPE=GRE
MTU=9000
GATEWAYDEV=mon2
PEER_OUTER_IPADDR=10.1.1.4
PEER_INNER_IPADDR=10.30.15.40
MY_INNER_IPADDR=10.30.15.41

我改变的内核设置:

net.ipv4.ip_forward = 0
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2

我不是专家,所以如果您需要了解其他信息来帮助解决这个问题,请告诉我。任何帮助我都会非常感激。

在您说之前,不,我无法更改操作系统,是的,它需要是 ERSPAN/GRE 隧道。也许我完全搞错了,在 centos 中配置 ERSPAN 有更好的方法……

答案1

我找到了答案。我需要每隔几秒发送一次 arping,以使交换机保持与隧道关联的接口的 MAC 最新状态。

while sleep 5 ; do arping -I $args{interface} -D $args{peerOutside} -c2 -q ; done

希望这对某些人有帮助...

相关内容