在两个虚拟机上的两个 NIC 之间路由流量

在两个虚拟机上的两个 NIC 之间路由流量

我知道这个问题可能已经被问过,但我正在努力按照我想要的方式去做。好的,情况是这样的:

2 个虚拟机

虚拟机A- CentOS(带有两个网络适配器):

外部网卡 - 与主机桥接(为简单起见,我们将其称为“外部A”。启用 DHCP

内部网卡 -“内部A”。静态 IP、DHCPD 服务器配置为仅侦听该接口

虚拟机B-Debian(只有一个网络适配器)

内部网卡 -“内部B”,在一个网络中“内部A”,启用 DHCP,成功从内部 A 接收 IP。

好的,这就是我想要的。因为我不想让 NAT 访问内部网卡,所以有没有办法可以路由所有外部流量通过外部A虚拟机 1 上的网卡?

笔记:

外部A内部a位于完全不同的子网中。

外部A - 192.168.0.X

内部A - 192.168.135.X

答案1

检查“内部 A”是否有默认网关,“内部 B”是否有相同的默认网关

如果可以的话,删除 nat 表的所有 iptables 规则:

iptables --flush -t nat

虚拟机01

[root@centos01 ~]# route -n | grep enp0s3
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 enp0s3
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s3

VM01 网络配置:

enp0s3: conectado to enp0s3
        inet4 192.168.0.41/24
        route4 0.0.0.0/0
        route4 192.168.0.0/24

enp0s8: conectado to enp0s8
        inet4 192.168.135.254/24
        route4 192.168.135.0/24
        route4 192.168.0.1/32
        route4 0.0.0.0/0

虚拟机02

[root@centos02 ~]# route -n | grep enp0s3
0.0.0.0         192.168.135.254 0.0.0.0         UG    100    0        0 enp0s3
192.168.135.0   0.0.0.0         255.255.255.0   U     100    0        0 enp0s3

VM02网络配置:

enp0s3: conectado to enp0s3
    inet4 192.168.135.50/24
    route4 0.0.0.0/0
    route4 192.168.135.0/24

VM01 前向检查:

[root@centos01 ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

VM01 iptables,让我们插入规则而不是附加它:

iptables -t nat -I PREROUTING --src 192.168.135.0/24 --dst 0/0 -j ACCEPT
iptables -t nat -I POSTROUTING -j MASQUERADE

VM01 iptables 检查:

[root@centos01 ~]#  iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  192.168.135.0/24     0.0.0.0/0

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0

让我知道它是否有效:)

答案2

我认为这应该有效。在 VM A 上运行

启用 ip 转发(永久)

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

接受来自 192.168.135.x 的流量

iptables -t nat -A PREROUTING --src 192.168.135.0/24 --dst 0/0 -j ACCEPT

NAT 流量

iptables -t nat -A POSTROUTING -j MASQUERADE

相关内容