Назад | Перейти на главную страницу

DHCP не предоставляет доступ в Интернет

У меня есть несколько виртуальных машин в Vmware ESXi 6.5 с 2 сетевыми группами.
Создал машину DHCP-сервера на CentOs с двумя сетевыми интерфейсами.

1 / vm сеть, из которой он берет сеть и имеет назначенный IP.
2 / в интернет-сеть, в которой все машины, у которых есть интернет, будут
- машина подключена к Интернету через интерфейс 1 и работает нормально. Я могу пинговать 8.8.8.8 и т.п.
- настраивается простой DHCP в /etc/dhcp/dhcpd.conf файл и правильно обслуживает адреса машин в сети "Интернет"
- машины в подсети Интернет, получившие адреса DHCP, могут пинговать друг друга и вообще не иметь конфликтов

На 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-машины я могу пинговать 8.8.8.8 и другим машинам, которые получили адреса DHCP, назначенные сервером DHCP.

Теперь давайте проверим одну машину с назначенным DHCP. Его машина с Ubuntu. Назначенный адрес: 192.168.0.46. Я могу пинговать каждую машину, включая 192.168.0.1 но не может 8.8.8.8.

Я не уверен, что случилось.


Редактировать:

Тем временем я изменил конфигурацию DHCP-сервера на 192.168.1.1 и диапазон на 192.168.1.10-.200

Машина Ubuntu:
IP-адрес шоу inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic ens160

IP-маршрут 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

Сервер DHCP с CentOS 7.3:
Так все выглядит строчкой в ​​вашем посте.

Я включил маршрутизацию
sysctl -w net.ipv4.ip_forward=1, добавил его в sysctl.d/ip_forward.conf по
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/ip_forward.conf
Стоит ли перезапустить какую-то службу сейчас?
Включен firewalld:
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 решат проблему ... Есть еще идеи? Спасибо

У меня была похожая проблема. UBUNTU СЕРВЕР 18.04

Мое решение: один из способов NAT - использование IPTABLES.

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

где eth0 это интерфейс, где Интернет входит/из.

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

где eth1 это интерфейс, который подключен к внутренняя LAN. (интерфейс DHCP-сервера)

теперь ваш клиент может пинговать 8.8.8.8

проверьте этот сайт для более четкой ссылки: https://www.howtoforge.com/nat_iptables
или вот официальное руководство: https://help.ubuntu.com/community/Internet/ConnectionSharing

Чтобы проверить правильность конфигурации 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

для маскировки (NAT) 192.168.0.0/24 для «внешней» сети:

Включить firewalld:

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.