DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер».
Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к так называемому серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве сетей TCP/IP.
Итак, для начала настроим подключение к интернету. Откроем файл с настройками:
Код
$ sudo nano /etc/network/interfaces
и укажем там настройки подключения:
Код
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
iface lo inet loopback
iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
Все конечно зависит от вашего провайдера («xxx.xxx.xxx.xxx» надо будет заменить на нужные для подключения значения), а так же условимся, что «входить» в Интернет будет устройство eth0, а «раздаваться» пользователям через eth1.
А так же, в файле /etc/network/interface нужно указать адреса DNS-северов, указав в нем адреса, которые вам выдал провайдер, либо любые другие адреса DNS-серверов:
Код
iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
dns-nameservers 8.8.8.8
dns-nameservers 8.8.4.4
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
dns-nameservers 8.8.8.8
dns-nameservers 8.8.4.4
Сохраним все, что мы написали и перезагрузим сеть:
Код
$ sudo /etc/init.d/networking restart
Проверить, что все в порядке, можно попинговав, например, сайт Google:
Код
$ ping -c 4 google.com
Теперь установим простенький DNS-сервер «dnsmasq» и настроим его:
Код
$ sudo apt-get install dnsmasq
И в файле /etc/dnsmasq.conf напишем в соответствующих строчках:
Код
listen-address=127.0.0.1, 192.168.0.1
dhcp-range=192.168.0.100,192.168.0.199,255.255.255.0,12h
dhcp-range=192.168.0.100,192.168.0.199,255.255.255.0,12h
Чтобы разрешить принимать DNS-запросы из нашей сети и раздавать IP-адреса в дапазоне от 192.168.0.100 до 192.168.0.199.
Еще можно закрепить за компьютерами определенные ip-адреса, исходя из mac-адреса, добавив в тот же файл:
Код
dhcp-host=xx:xx:xx:xx:xx:xx,yyy.yyy.yyy.yyy
где «xx:xx:xx:xx:xx:xx» — mac-адрес нужной машины, а «yyy.yyy.yyy.yyy» ip-адрес, который мы хотим забронировать за ней.
Для того, чтобы посмотреть какие машины в данный момент находятся в нашей сети, нужно ввести в консоли:
Код
$ cat /var/log/syslog | grep DHCPOFFER
Далее создадим файл, настраивающий трансляцию и сделаем его исполняемым:
Код
$ sudo touch /etc/nat
$ sudo chmod +x /etc/nat
$ sudo nano /etc/nat
$ sudo chmod +x /etc/nat
$ sudo nano /etc/nat
Заполним его следующим содержанием:
Код
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
И добавим в конец файла /etc/network/interfaces строчку:
Код
post-up /etc/nat
Теперь еще раз перезапустим сеть и наш DNS-сервер:
Код
$ sudo /etc/init.d/networking restart
$ sudo /etc/init.d/dnsmasq restart
$ sudo /etc/init.d/dnsmasq restart
Теперь все готово.