Sysctl参数accept_local和rp_filter在双网卡计算机上不起作用

戴夫
root@host-3:~# uname -a
Linux host-3 4.4.35-1-pve #1 SMP Fri Dec 9 11:09:55 CET 2016 x86_64 GNU/Linux
root@host-3:~# cat /etc/debian_version
8.9
root@host-3:~# ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.1.2  Bcast:192.168.1.2.255  Mask:255.255.255.0
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3313 errors:0 dropped:0 overruns:0 frame:0
          TX packets:348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:224843 (219.5 KiB)  TX bytes:29794 (29.0 KiB)

eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3028 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:196588 (191.9 KiB)  TX bytes:1330 (1.2 KiB)

在下面的设置中,在主机3上,流量不会通过网络传输出去。堆栈只是将其发送回接收应用程序。

在两个接口上捕获的数据包都表明,实际上没有数据包到达任何网络接口。

为什么是这样?

2个主机,1个NIC /主机:此工作方式(与下面的主机3比较)

---------------------          -------------------------------------------          ---------------------
| Linux Host host-1 |          |        Device Under Test (router)       |          | Linux Host host-2 |
|     192.168.1.2/24|----------|192.168.1.1/24             192.168.2.1/24|----------|192.168.2.2/24     |
---------------------          -------------------------------------------          ---------------------

1个主机和2个NIC:不起作用

---------------------
| Linux Host host-3 |
|     192.168.1.2/24|--------|
|               eth0|        |
|                   |        |
|                   |        |
|               eth1|        |
|     192.168.2.2/24|---|    |
---------------------   |    |
                        |    |
                        |    |
                        |    |
                        |    |         -------------------------------------------
                        |    |         |        Device Under Test (router)       |
                        |    |---------|192.168.1.1/24             192.168.2.1/24|---------|
                        |              -------------------------------------------         |
                        |                                                                  |
                        |                                                                  |
                        |                                                                  |
                        |                                                                  |
                        |------------------------------------------------------------------|

主机3的路由表,包括静态路由

Destination    Gateway        Genmask            Flags Metric Ref Use Iface
192.168.1.0    0.0.0.0        255.255.255.0      U     0      0   0   eth0
192.168.1.2    192.168.2.1    255.255.255.255    UGH   0      0   0   eth1
192.168.2.0    0.0.0.0        255.255.255.0      U     0      0   0   eth1
192.168.2.2    192.168.1.1    255.255.255.255    UGH   0      0   0   eth0

主机3的相关内核参数

root@host-3:~# sysctl -a | grep "\.rp_filter"
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0

root@host-3:~# sysctl -a | grep "accept_local"
net.ipv4.conf.eth0.accept_local = 1
net.ipv4.conf.eth1.accept_local = 1
net.ipv4.conf.all.accept_local = 1
net.ipv4.conf.default.accept_local = 1
net.ipv4.conf.lo.accept_local = 0

更新#1

回应评论询问流量类型以及是否涉及虚拟机...

流量只是ping。我还对UDP单播进行了测试,发现行为没有差异。

是的,这些是VM。实际上,更确切地说,它们是在Proxmox 4.4下运行的LXC Linux容器。

另外,自从我的原始帖子以来,我还发现了另一件事。

进行ping操作时,如果使用-I选项指定出口(即源)IP地址,则看不到行为更改。但是,如果我使用ping的-I选项指定出口接口,则似乎有一点需要注意。我说它们起作用是因为ping命令以大约40毫秒的往返时间获得回复。这是关于如果数据包实际上是流出而不是被堆栈短路(在这种情况下,往返时间不到一毫秒)的情况,我所期望的。但是,这是警告...

出口和入口接口上的数据包捕获显示回显请求。捕获结果显示回声回复。我不确定这怎么可能...

豪克
# ip rule list
0:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

# ip route list table local
[...]
broadcast 192.168.0.0 dev eth0  proto kernel  scope link  src 192.168.0.100
local 192.168.0.100 dev eth0  proto kernel  scope host  src 192.168.0.100
broadcast 192.168.0.255 dev eth0  proto kernel  scope link  src 192.168.0.100

您不能修改表local; 内核维护它。这是具有最高优先级的表,因此您在其他表(即main)中定义的内容无关紧要这些条目永远不匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WSDualHttpBinding在某些计算机上不起作用

来自分类Dev

Windows Server 2012-DNS和DHCP在客户端计算机上不起作用

来自分类Dev

Java自定义光标在新计算机上不起作用

来自分类Dev

Flask流在我的计算机上不起作用

来自分类Dev

XAMPP-Project在其他计算机上不起作用

来自分类Dev

中断处理程序在真实计算机上不起作用

来自分类Dev

OpenGL深度测试在某些计算机上不起作用

来自分类Dev

OrderBy仅在我的计算机上不起作用

来自分类Dev

Java自定义光标在新计算机上不起作用

来自分类Dev

Codecademy Flipboard代码在我的计算机上不起作用

来自分类Dev

克隆了Android项目,但Google Maps在新计算机上不起作用

来自分类Dev

Cat7电缆仅在一台计算机上不起作用

来自分类Dev

为什么“主机名--fqdn”在我的Ubuntu计算机上不起作用?

来自分类Dev

使用通配符rspec命令的ruby在Windows计算机上不起作用

来自分类Dev

旧计算机上的Apple证书不起作用

来自分类Dev

.php文件上的jQuery在移动设备(iOS和Android)上不起作用,但在计算机上可以完美运行

来自分类Dev

由Pyinstaller创建的PyQt应用程序中的图标在其他计算机上不起作用

来自分类Dev

泊坞窗:端口映射在非默认计算机上不起作用

来自分类Dev

查询本地文件的Excel工作表在其他计算机上不起作用

来自分类Dev

@ font-face在其他计算机上不起作用-带有正确的文件链接

来自分类Dev

Kivy 应用程序在 android 手机上不起作用,尽管它可以在计算机上运行

来自分类Dev

到样式表的相对链接在本地计算机上不起作用,可以在线工作。为什么是这样?

来自分类Dev

存储到ContentRootPath的ASP.NET Core数据保护密钥在其他计算机上不起作用

来自分类Dev

SSL(imap)在某些计算机上不起作用-SSL握手失败-如何进一步缩小范围?

来自分类Dev

我想将我的应用程序提供给某人,但它在他的计算机上不起作用 Python pyinstaller

来自分类Dev

Ansible-with_fileglob循环-变得_user不起作用-在源计算机上运行操作

来自分类Dev

提交CodeEval,程序可以在我的计算机上运行,但提交时不起作用。C

来自分类Dev

同一台Windows计算机上的串行端口通信不起作用

来自分类Dev

在多台计算机上共享的GridGain缓存不起作用

Related 相关文章

  1. 1

    WSDualHttpBinding在某些计算机上不起作用

  2. 2

    Windows Server 2012-DNS和DHCP在客户端计算机上不起作用

  3. 3

    Java自定义光标在新计算机上不起作用

  4. 4

    Flask流在我的计算机上不起作用

  5. 5

    XAMPP-Project在其他计算机上不起作用

  6. 6

    中断处理程序在真实计算机上不起作用

  7. 7

    OpenGL深度测试在某些计算机上不起作用

  8. 8

    OrderBy仅在我的计算机上不起作用

  9. 9

    Java自定义光标在新计算机上不起作用

  10. 10

    Codecademy Flipboard代码在我的计算机上不起作用

  11. 11

    克隆了Android项目,但Google Maps在新计算机上不起作用

  12. 12

    Cat7电缆仅在一台计算机上不起作用

  13. 13

    为什么“主机名--fqdn”在我的Ubuntu计算机上不起作用?

  14. 14

    使用通配符rspec命令的ruby在Windows计算机上不起作用

  15. 15

    旧计算机上的Apple证书不起作用

  16. 16

    .php文件上的jQuery在移动设备(iOS和Android)上不起作用,但在计算机上可以完美运行

  17. 17

    由Pyinstaller创建的PyQt应用程序中的图标在其他计算机上不起作用

  18. 18

    泊坞窗:端口映射在非默认计算机上不起作用

  19. 19

    查询本地文件的Excel工作表在其他计算机上不起作用

  20. 20

    @ font-face在其他计算机上不起作用-带有正确的文件链接

  21. 21

    Kivy 应用程序在 android 手机上不起作用,尽管它可以在计算机上运行

  22. 22

    到样式表的相对链接在本地计算机上不起作用,可以在线工作。为什么是这样?

  23. 23

    存储到ContentRootPath的ASP.NET Core数据保护密钥在其他计算机上不起作用

  24. 24

    SSL(imap)在某些计算机上不起作用-SSL握手失败-如何进一步缩小范围?

  25. 25

    我想将我的应用程序提供给某人,但它在他的计算机上不起作用 Python pyinstaller

  26. 26

    Ansible-with_fileglob循环-变得_user不起作用-在源计算机上运行操作

  27. 27

    提交CodeEval,程序可以在我的计算机上运行,但提交时不起作用。C

  28. 28

    同一台Windows计算机上的串行端口通信不起作用

  29. 29

    在多台计算机上共享的GridGain缓存不起作用

热门标签

归档