我需要通过 VMWare 机器路由我的 PC 网络流量。我考虑的设置是使用具有两个接口的虚拟机并强制 PC 将流量发送到VMNet1
而不是Ethernet
(使用接口度量或路由)。设置如下图所示:
我已经启用ip_forward
了/proc/sys/net/ipv4/
,但似乎还不够。
在 PC 中我可以访问ens33
和ens37
:
- 从 PC ping 192.168.1.3 没问题
- 从 PC ping 192.168.1.4 没问题
- ARP 表 (arp -a) 在 192.168.1.5 的条目中显示 192.168.1.3-4
- 我无法通过 VMNet1 ping 192.168.1.1(ping -S 192.168.1.5 192.168.1.1)
在虚拟机中:
- 正在 Ping 192.168.1.1仅有的通过 ens37 是可以的 (ping -I ens37 192.168.1.1)
问题
通过以上详细信息,我认为我的问题是在虚拟机中路由/转发传入的数据包ens33
,ens37
那么如何做到这一点?
更多信息:
~$ ip route
default via 192.168.1.1 dev ens37 proto static metric 101
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.3 metric 100
192.168.1.0/24 dev ens37 proto kernel scope link src 192.168.1.4 metric 101
~$ networkctl status -a
● 1: lo
Link File: /usr/lib/systemd/network/99-default.link
Network File: n/a
Type: loopback
State: carrier (unmanaged)
Address: 127.0.0.1
::1
● 2: ens33
Link File: /usr/lib/systemd/network/99-default.link
Network File: n/a
Type: ether
State: routable (unmanaged)
Path: pci-0000:02:01.0
Driver: e1000
Vendor: Intel Corporation
Model: 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
HW Address: 00:0c:29:2e:5e:a0 (VMware, Inc.)
Address: 192.168.1.3
fe80::a71c:e329:2378:4972
● 3: ens37
Link File: /usr/lib/systemd/network/99-default.link
Network File: n/a
Type: ether
State: routable (unmanaged)
Path: pci-0000:02:05.0
Driver: e1000
Vendor: Intel Corporation
Model: 82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
HW Address: 00:0c:29:2e:5e:aa (VMware, Inc.)
Address: 192.168.1.4
fe80::20c:29ff:fe2e:5eaa
Gateway: 192.168.1.1 (TP-LINK TECHNOLOGIES CO.,LTD.)
fe80::1 (TP-LINK TECHNOLOGIES CO.,LTD.)
~$ ip neigh
192.168.1.103 dev ens37 lladdr 3c:bb:fd:3d:25:00 REACHABLE
192.168.1.103 dev ens33 FAILED
192.168.1.1 dev ens37 lladdr 90:f6:52:03:3b:00 STALE
192.168.1.100 dev ens37 lladdr 40:61:86:e2:dd:00 STALE
192.168.1.1 dev ens33 FAILED
192.168.1.5 dev ens33 lladdr 00:50:56:c0:00:00 STALE
C:\WINDOWS\system32>arp -a
Interface: 192.168.1.100 --- 0x10
Internet Address Physical Address Type
192.168.1.1 90-f6-52-03-3b-00 dynamic
...
Interface: 192.168.1.5 --- 0x1e
Internet Address Physical Address Type
192.168.1.3 00-0c-29-2e-5e-a0 dynamic
192.168.1.4 00-0c-29-2e-5e-a0 dynamic
...
编辑:
我意识到尽管有网络,我的设置仍然不太正确,我的意思是在一个系统中使用具有相同子网的多个接口是错误的,所以我更改了设置:
答案1
这可能是由于反向路径过滤。您可以尝试禁用它。数据包在不同的接口上接收和发送,并且使用 rp_filter 的默认行为,数据包将被丢弃。来源:https://access.redhat.com/solutions/53031