У меня есть несколько виртуальных машин в 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
с IP192.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.