debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: Linux-клиенты не получают адрес от dhcp-сервера  (Прочитано 1883 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sazhyk

  • Новичок форума
  • Topic Author
  • Сообщений: 5
День добрый!
Возникла проблема странная, никак не могу разобраться в чем. Суть такова:
  • Имеется сервер с Debian 8 на борту
  • Установлен dnsmasq в качестве DHCP и DNS сервера
  • У сервера (наверное правильнее шлюза), два интерфейса: eth0 - WAN, eth1 - LAN
  • Всё это развернуто на KVM, сеть внутренняя изолированная.
  • Во внутренней сети следующие машины: Win server 2008r2 (терминальный), Debian 8 - SQL-server

/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

# The secondary network interface
allow-hotplug eth1
auto eth1
iface eth1 inet static
address 192.168.54.1
netmask 255.255.255.0
network 192.168.54.0
broadcast 192.168.54.255
post-up /usr/bin/nat.sh

/usr/bin/nat.sh
#! /bin/bash

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.54.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -d 192.168.54.0/24 -j ACCEPT
iptables -P FORWARD DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -I PREROUTING --dst 192.168.166.181 -p tcp --dport 1975 -j DNAT --to-destination 192.168.54.100:3389
iptables -t nat -I POSTROUTING -p tcp --dst 192.168.54.100 --dport 3389 -j SNAT --to-source 192.168.54.1
iptables -t nat -I OUTPUT --dst 192.168.166.181 -p tcp --dport 1975 -j DNAT --to-destination 192.168.54.100:3389
iptables -I FORWARD -i 192.168.54.1 --dst 192.168.54.100 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j REDIRECT --to-port 3128


Конфиг dnsmasq'а:
user@serv:~# cat /etc/dnsmasq.conf | grep -v '^#' | sed '/^$/d' | more
resolv-file=/etc/resolv-my.conf
listen-address=127.0.1.1, 192.168.54.1
dhcp-range=192.168.54.30,192.168.54.150,255.255.255.0,12h
dhcp-option=3,192.168.54.1
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
log-queries
log-facility=/var/log/dnsmasq.log

resolv-my.conf
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4

Лог dnsmasq'a:
May 20 13:50:53 dnsmasq-dhcp[1464]: DHCPDISCOVER(eth1) 52:54:00:06:7a:78
May 20 13:50:53 dnsmasq-dhcp[1464]: DHCPOFFER(eth1) 192.168.54.145 52:54:00:06:7a:78
May 20 13:50:56 dnsmasq-dhcp[1464]: DHCPDISCOVER(eth1) 52:54:00:06:7a:78
May 20 13:50:56 dnsmasq-dhcp[1464]: DHCPOFFER(eth1) 192.168.54.145 52:54:00:06:7a:78
May 20 13:51:10 dnsmasq-dhcp[1464]: DHCPDISCOVER(eth1) 52:54:00:06:7a:78
May 20 13:51:10 dnsmasq-dhcp[1464]: DHCPOFFER(eth1) 192.168.54.145 52:54:00:06:7a:78
May 20 13:51:19 dnsmasq-dhcp[1464]: DHCPDISCOVER(eth1) 52:54:00:06:7a:78
May 20 13:51:19 dnsmasq-dhcp[1464]: DHCPOFFER(eth1) 192.168.54.145 52:54:00:06:7a:78
Это от sql-сервера

May 20 13:59:37 dnsmasq-dhcp[1596]: DHCPDISCOVER(eth1) 52:54:00:5a:8d:a1
May 20 13:59:37 dnsmasq-dhcp[1596]: DHCPOFFER(eth1) 192.168.54.102 52:54:00:5a:8d:a1
May 20 13:59:37 dnsmasq-dhcp[1596]: DHCPREQUEST(eth1) 192.168.54.102 52:54:00:5a:8d:a1
May 20 13:59:37 dnsmasq-dhcp[1596]: DHCPACK(eth1) 192.168.54.102 52:54:00:5a:8d:a1 winserv
Это от win сервера.

Содержимое dnsmasq.leases
user@serv:~# cat /var/lib/misc/dnsmasq.leases
1432155577 52:54:00:5a:8d:a1 192.168.54.102 winserv 01:52:54:00:5a:8d:a1

Вывод iptables:
user@serv:~# iptables -L -v
Chain INPUT (policy ACCEPT 14279 packets, 2129K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  192.168.54.1 any     anywhere             192.168.54.100     
 3564  767K ACCEPT     all  --  eth1   eth0    192.168.54.0/24      anywhere           
 3784  283K ACCEPT     all  --  eth0   eth1    anywhere             192.168.54.0/24     

Chain OUTPUT (policy ACCEPT 10425 packets, 4793K bytes)
 pkts bytes target     prot opt in     out     source               destination

Проблема заключается в следующем: сервер windows адрес получает, а сервер linux - нет. Не могу понять почему.

Сообщение объединено: [time]20 Май 2015, 12:32:52[/time]
Пожалуй стоит добавить. Пробовал запускать другие linux дистрибутивы - та же ерунда, windows-системы спокойно получают адреса. Если вручную прописать настройки на linux, то всё спокойно работает.
« Последнее редактирование: 26 Май 2015, 14:31:05 от sazhyk »
 

Оффлайн sazhyk

  • Новичок форума
  • Topic Author
  • Сообщений: 5
UPD. Кому интересно: проблема была в сетевом адаптере виртуальной машины. А именно, стоял тип адаптера virtio. Всё ешилось переключением на Hypervisor Default. Пока не знаю почему, но факт. Выясню отпишу.
 

Оффлайн sazhyk

  • Новичок форума
  • Topic Author
  • Сообщений: 5
Хоть и никто не пишет ничего, пожалуй я продолжу мысли. Экспериментально установил, что сеть автоматом не поднимается только при следующих условиях:
  • гостевой машине  назначен сетевой интерфейс virtio
  • сеть внутненняя, т. е. изолирована от внешнего мира
  • система установлена
В процессе установки сеть поднимается, но после перезагрузки больше не поднимается. Tcpdump показал, что DHCPDISCOVER проходит, уходит ответ DHCPOFFER, но не доходит до проблемной машины. Я не столь силен в сетях, и не смог точно определить где теряется ответ.
Может кто сталкивался с подобной ситуациет?
« Последнее редактирование: 26 Май 2015, 14:45:58 от sazhyk »
 

Оффлайн ihammers

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 1742
  • Debian GNU/Linux Stretch
    • Алтайская Группа Пользователей Linux
  • Jabber: ihammers@jabber.ru
dhcp-range=192.168.54.30,192.168.54.150,255.255.255.0,12h
Правильным ли является данная строчка?

Вам требуется чтобы внутренние машины получали ip от dhcp-сервера? Если да, то нужен проброс адресов.

Дополнительная информация по dnsmasq.
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290
 

Оффлайн sazhyk

  • Новичок форума
  • Topic Author
  • Сообщений: 5
dhcp-range=192.168.54.30,192.168.54.150,255.255.255.0,12h
Правильным ли является данная строчка?

Вам требуется чтобы внутренние машины получали ip от dhcp-сервера? Если да, то нужен проброс адресов.

Дополнительная информация по dnsmasq.
net.ipv4.ip_forward=1Всё включено.

Сегодня попробовал поставить гостевую CentOS. Адрес спокойно получила. Не получает именно Debian.
 

Русскоязычное сообщество Debian GNU/Linux



Теги:
 

Как открыть доступ к сайту из интернета в Linux debian 7(apache2+php+mysql)?HELP

Автор moskov199

Ответов: 4
Просмотров: 3478
Последний ответ 16 Август 2013, 16:04:17
от gardarea51
Пакет linux-image-3.16.0-8-amd64

Автор yumashka

Ответов: 5
Просмотров: 640
Последний ответ 28 Март 2019, 13:27:16
от yumashka