DHCP 不共享互联网访问

DHCP 不共享互联网访问

我在 Vmware ESXi 6.5 中拥有多个虚拟机,具有 2 个网络组。
在 CentOs 上创建了具有 2 个网络接口的 DHCP 服务器计算机。

1 / vm 网络,它从中获取网络并分配 IP。
2 / 到 Internet 网络,所有具有 Internet 的机器都将位于该网络中
- 机器在接口 1 上获得 Internet 并且正常工作。我可以 ping8.8.8.8
- 文件中配置了一个简单的 DHCP /etc/dhcp/dhcpd.conf,它正确地为“Internet”网络中的机器提供地址
- 获得 DHCP 地址的 Internet 子网中的机器可以互相 ping 并且完全没有冲突

在 DHCP 机器 (CentOS) 上,我创建了另一个ens192具有 IP
192.168.0.1、掩码255.255.255.0、无默认网关的配置文件网络。

在文件中dhcpd.conf(当然还有域名选项)

subnet 192.168.0.0 netmask 255.255.255.0 {
option routers                  192.168.0.1; //same as ens192
option subnet-mask              255.255.255.0;
#option routers                 192.168.0.254 //tried with .254 gw
range   192.168.0.10   192.168.0.200;
}

从 DHCP 机器,我可以 ping 到8.8.8.8另一台由 DHCP 服务器分配了 DHCP 地址的机器。

现在让我们检查一台分配了 DHCP 的机器。它是 Ubuntu 机器。分配的地址:192.168.0.46。我可以 ping 通每台机器,包括192.168.0.1但不能8.8.8.8

我不确定哪里出了问题。


编辑:

与此同时,我将 DHCP 服务器配置更改192.168.1.1192.168.1.10-.200

Ubuntu 机器:
ip 地址显示 inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic ens160

路由 default via 192.168.1.1 dev ens160 proto static metric 100 192.168.1.0/24 dev ens160 proto kernel scope link src 192.168.1.10 metric 100

CentOS 7.3 DHCP 机器:
因此,所有内容都出现在您的帖子中。

我通过 启用了路由
sysctl -w net.ipv4.ip_forward=1,并将其添加到sysctl.d/ip_forward.conf通过
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/ip_forward.conf
我是否应该立即重新启动某些服务?
启用了防火墙:
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o ens192 -j MASQUERADE -s 192.168.1.0/24 success firewall-cmd --reload

重启 Ubuntu 机器,ping 8.8.8.8仍然没有任何反应: 15 packets transmitted, 0 received, 100% packet loss

我以为配置 IP Forward 并运行 NAT 可以解决问题...还有其他想法吗?谢谢

答案1

要检查你的 DHCP 配置是否良好,你可以使用以下命令检查你的 IP 设置:

ip addr show

这将在客户端计算机界面上显示当前配置的 IP 地址,从您的示例来看,该地址正在工作 - 192.168.0.46

接下来您可以在客户端机器上检查默认网关是否设置正确:

ip route

这应该显示如下内容:

default via 192.168.0.1 dev eth0
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.46

第一行表示默认网关,如果将其设置为 192.168.0.1,则 DHCP 配置的黄金标准。

您需要检查的最后一件事是,您在 CentOS 机器上启用了路由吗?为了从您的 ubuntu 机器访问互联网,需要将 CentOS 配置为路由器,或者您需要在 192.168.0.x 网络上有另一个路由器。

quick n dirty - 在 CentOS 机器上:启用路由:

sysctl -w net.ipv4.ip_forward=1

为了使其在重启后仍然有效,编辑 /etc/sysctl.conf 并添加:

net.ipv4.ip_forward = 1

将 192.168.0.0/24 伪装(NAT)为‘外部’网络:

启用防火墙:

systemctl start firewalld
firewall-cmd –permanent –direct –passthrough ipv4 -t nat -I POSTROUTING -o *** -j MASQUERADE -s 192.168.0.0/24
systemctl restart firewalld

上面的 *** 应该是 CentOS 机器上的“外部”接口。

答案2

我遇到了类似的问题。Ubuntu 服务器 18.04

我的解决方案:NATing 的方法之一是使用 IPTABLES。

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE

在哪里eth0是接口互联网/从。

iptables --append FORWARD --in-interface eth1 -j ACCEPT

在哪里eth1是连接到内部局域网.(DHCP 服务器接口)

现在你的客户端可以 ping 8.8.8.8

请查看此网站以获得更清晰的参考: https://www.howtoforge.com/nat_iptables
或者这里是官方指南:https://help.ubuntu.com/community/Internet/ConnectionSharing

相关内容