Как я настраиваю сервер Ubuntu, чтобы быть маршрутизатором для двух частных сетей в моей сети и сделать обращение DHCP?

Я хочу использовать свой сервер Ubuntu, чтобы быть маршрутизатором для двух частных сетей в моей сети.

Я также хочу, чтобы этот сервер вручил запросы DHCP для частных сетей.

Как я настраиваю сервер Ubuntu 16.04, чтобы сделать это?

7
задан 16 September 2017 в 10:16

1 ответ

ПРИМЕЧАНИЕ № 1: Это должно настроить самую основную возможную установку - прямой маршрутизатор для двух или больше подсетей, не ограничивая трафик перекрестной подсети вообще. Это может быть изменено с правилами брандмауэра лучше обработать управление отдельных функций или доступ к сети через подсети или outboud к Интернету, однако который выходит за рамки этого основного, "настраивает его" пара Q/A.

ПРИМЕЧАНИЕ № 2: В то время, когда этот ответ был записан, Ubuntu еще не использовала Netplan для своей сетевой системы управления для установок по умолчанию. Этот ответ был как таков записанный, не принимая Netplan во внимание.

Вам будет нужен сервер Ubuntu с 3 сетевыми интерфейсами, конечно, один для подключенного к Интернету интерфейса и двух интерфейсов частной сети.

После этого просто следуйте этому руководству для установки этого сервера как маршрутизатора:

(1) Редактирование /etc/sysctl.conf. Найдите и не прокомментируйте эту строку:

net.ipv4.ip_forward=1

После того как Вы сделали это, выполните команду sudo sysctl -p перезагружать системные настройки ядра. Это позволяет полю Ubuntu теперь служить трафику через подсети и VLAN через IPv4.

(2) Редактируйте свое окно маршрутизатора /etc/network/interfaces настраивать статический IP-адрес в интерфейсах, которые служат частным сетям. В этом примере я знаю, что интерфейсы ens37 и ens38, в то время как ens33 основной Интернет соединенный интерфейс на моем поле. Я уезжаю ens33 один, но добавление ens37 и ens38 строки файла конфигурации конфигурации:

# Private Subnet 1
auto ens37
iface ens37 inet static
    address 10.76.100.1
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8 8.8.4.4

# Private Subnet 2
auto ens38
iface ens38 inet static
    address 10.76.101.1
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8 8.8.4.4

Скорректируйте сетевые адреса и имена интерфейса соответственно для Вашей установки.

** Обратите внимание, что при использовании VMware Workstation или подобные, и Вы имеете vmnet# устройства, выбранные в VM для этого, удостоверьтесь хост-система, у любого нет подключенного устройства хоста для этого vmnet, или что, если это делает, Вы используете другой адрес, чем .1 в последнем октете на Вашем поле маршрутизатора.

(3) Установите программное обеспечение сервера DHCP. Мы настроим это на более поздних шагах.

sudo apt-get install isc-dhcp-server

Это разрешит полю маршрутизатора вручать запросы DHCP для Ваших частных подсетей.

(4) Во-первых, скопируйте конфигурацию Сервера DHCP, которая была установлена автоматически на файле резервной копии.

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.dist

(5) Теперь, мы делаем тот исходный пробел файла, таким образом, мы можем применить нашу конфигурацию.

echo "" | sudo tee /etc/dhcp/dhcpd.conf

(6) Теперь давайте использовать нашу конфигурацию:

# DHCP Server config

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# Specify the domain name servers to specify for each subnet.
option domain-name-servers 8.8.8.8;
option domain-name-servers 8.8.4.4;


# DHCP Subnet configurations

# Subnet 1 - ens37
subnet 10.76.100.0 netmask 255.255.255.0 {
  default-lease-time 86400;
  max-lease-time 86400;

  range 10.76.100.10 10.76.100.200;
  option routers 10.76.100.1;
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.76.100.255;
}

# Subnet 2 - ens38
subnet 10.76.101.0 netmask 255.255.255.0 {
  default-lease-time 86400;
  max-lease-time 86400;

  range 10.76.101.10 10.76.101.200;
  option routers 10.76.101.1;
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.76.101.255;
}

Скорректируйте эту конфигурацию соответственно к Вашим потребностям и удостоверьтесь, что обновили опцию 'маршрутизаторов' на основе любого IP-адреса, который Вы устанавливаете выше в Ваших настройках конфигурации сети.

После того как Вы сделаны, корректируя файл по мере необходимости, сохранили файл.

(7) Мы должны сказать систему обо что интерфейсах заботиться о.Править /etc/default/isc-dhcp-server, и укажите свои интерфейсы частной сети (в моем случае, ens37 и 38) в INTERFACES="" строка, так, чтобы это было бы похоже на это:

INTERFACES="ens37 ens38"

Сохраните файл.

(8) И теперь, правила брандмауэра. Мы должны сказать системе разрешать вещи работать маршрутизатором и настроить надлежащие средства управления и rulesets для этого для имения место. Я предполагаю, что Вы не настроили брандмауэр здесь, потому что я описываю с нуля установка.

Если Вы уже настроили ufw на этой машине, выполненной sudo ufw disable, и затем удаление ufw с sudo apt-get remove ufw. UFW не работает на то, в чем мы нуждаемся, нам нужно усовершенствованное питание iptables непосредственно. Для большинства маршрутизаторов мы не должны использовать UFW вообще.

Удостоверьтесь, что мы знаем имя интерфейса для Вашего подключенного к Интернету сетевого интерфейса. В моей системе тестирования в качестве примера это было ens33, но это может отличаться в Вашей системе. Удостоверьтесь, что мы также знаем сетевые интерфейсы для наших частных сетей, для которых мы собираемся быть маршрутизатором; нам нужны они в здесь также. Установите Ваш iptables следующим образом со следующими командами. Обратите внимание на мои комментарии также:

# Accept localhost traffic (local traffic to the system itself)
sudo iptables -A INPUT -i lo -j ACCEPT

# Accept all traffic related to established connections
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Drop traffic coming from the Internet into our Internet-connected interface (except for traffic related to other established connections)
# Update this to match the interface name of your Internet-connected interface.
sudo iptables -A INPUT -i ens33 -j DROP

# Accept traffic inbound from the local subnets we are acting as a router for.
# CHANGE THESE INTERFACE NAMES ACCORDING TO YOUR SETUP!
sudo iptables -A INPUT -i ens37 -j ACCEPT
sudo iptables -A INPUT -i ens38 -j ACCEPT

# Since we don't want to have our system completely open to the Internet, we need
# to drop all other traffic coming to our network.  This way, we can prevent the
# Internet at large from accessing our network directly from the Internet.
sudo iptables -A INPUT -j DROP

# Add rules to accept forwarding on the interfaces we are doing routing for.
# CHANGE THESE INTERFACE NAMES ACCORDING TO YOUR SETUP!
sudo iptables -A FORWARD -i ens37 -j ACCEPT
sudo iptables -A FORWARD -o ens37 -j ACCEPT
sudo iptables -A FORWARD -i ens38 -j ACCEPT
sudo iptables -A FORWARD -o ens38 -j ACCEPT

# Add rules to the NAT table to allow us to actually let traffic on the interfaces
# which we are doing routing for go out to the Internet masquerade as our Internet-
# connected interface.
#
# ADJUST THE IP RANGES HERE TO MATCH THE IP RANGES AND THE SUBNETS FOR YOUR OWN
# ENVIRONMENT!  Remember that the IP address of 10.76.100.1 for the router, and
# the netmask 255.255.255.0 is equal to the network range/CIDR of 10.76.100.0/24
# for the purposes of these rules.
sudo iptables -t nat -A POSTROUTING -s 10.76.100.0/24 ! -d 10.76.100.0/24 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.76.101.0/24 ! -d 10.76.101.0/24 -j MASQUERADE

(9) Установите iptables-persistent пакет, который позволит нам на самом деле помнить наш iptables правила и загружают их в перезагрузке.

sudo apt-get install iptables-persistent`

Когда это попросит сохранять существующие правила, выберите "Да" и для IPv4 и для IPv6.

(10) Протестируйте его! Настройте другую систему на одной из частных сетей, которые Вы настроили и удостоверяетесь, после того как это настраивается, что это может связаться с Интернетом и имеет настроенный адрес DHCP в частных подсетях, настроенных выше!

5
ответ дан 23 November 2019 в 06:43

Другие вопросы по тегам:

Похожие вопросы: