Виртуальный Интернет-роутер

Виртуальные машины и среды исполнения

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 17 сен 2019, 23:32

Задался целью - построить виртуальную модель шлюзования на виртуальных хостах VirtualBox:
- роутер имеет 2 интерфейса: мост с выходом в Интернет + внутренняя сеть;
- другой хост (или несколько - виртуальная LAN) имеют интерфейс в виртуальную сеть
- роутер должен им обеспечивать форвардинг в Интернет, как он и сам туда выходит.

Зачем это надо?
Это способ отработать сетевые настройки, правила ipfilter и т.д. для построения реальной сети с шлюзованием в Интернет. А потом только перенести отлаженные конфигурации в реальные хосты.

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 00:06

Olej писал(а): - роутер имеет 2 интерфейса: мост с выходом в Интернет + внутренняя сеть;
Вот роутер как он настроен в VirtualBox, его сетевые интерфейсы.
(это Astra Linux CE, но это Linux, а какой - это совершенно не имеет значения)
Вложения
v1.png

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 00:12

Olej писал(а): Вот роутер как он настроен в VirtualBox, его сетевые интерфейсы.
После его загрузки:

Код: Выделить всё

olej@astra:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:72:09:c0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.107/24 brd 192.168.1.255 scope global noprefixroute dynamic eth0
       valid_lft 172782sec preferred_lft 172782sec
    inet6 fe80::2a33:9607:fd98:381f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c0:d9:ef brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4980:ef5d:5849:274a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Это определённо не то что надо: eth1 - интерфейс внутренней сети + у него нет IP!
Или:
- во внутренней сети будем устанавливать статические IP вручную;
Или:
- во внутренней сети должен работать DHCP сервер.
Я хотел бы пройти 2-м вариантом.
На каком хосте внутренней сети DHCP? Предполагаю, что именно на этом роутере.

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 00:36

Olej писал(а):На каком хосте внутренней сети DHCP? Предполагаю, что именно на этом роутере.

Код: Выделить всё

olej@astra:~$ aptitude search dhcp-server
p   isc-dhcp-server                                                       - ISC DHCP server for automatic IP address assignment                             
p   isc-dhcp-server:i386                                                  - ISC DHCP server for automatic IP address assignment                             
p   isc-dhcp-server-ldap                                                  - DHCP server that uses LDAP as its backend                                       
p   isc-dhcp-server-ldap:i386                                             - DHCP server that uses LDAP as its backend            

Код: Выделить всё

olej@astra:~$ sudo apt install isc-dhcp-server
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующий пакет устанавливался автоматически и больше не требуется:
  fonts-liberation2
Для его удаления используйте «sudo apt autoremove».
Будут установлены следующие дополнительные пакеты:
  libirs-export160 libisccfg-export160 policycoreutils selinux-utils
Предлагаемые пакеты:
  isc-dhcp-server-ldap
НОВЫЕ пакеты, которые будут установлены:
  isc-dhcp-server libirs-export160 libisccfg-export160 policycoreutils selinux-utils
обновлено 0, установлено 5 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 1.263 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 6.163 kB.
Хотите продолжить? [Д/н] y
Пол:1 https://download.astralinux.ru/astra/testing/orel/repository orel/main amd64 libisccfg-export160 amd64 1:9.11.3+dfsg-1ubuntu1.5 [81,9 kB]
Пол:2 https://download.astralinux.ru/astra/testing/orel/repository orel/main amd64 libirs-export160 amd64 1:9.11.3+dfsg-1ubuntu1.5 [54,7 kB]
Пол:3 https://download.astralinux.ru/astra/testing/orel/repository orel/main amd64 isc-dhcp-server amd64 4.3.5-3+deb9u1+b1 [526 kB]
Пол:4 https://download.astralinux.ru/astra/testing/orel/repository orel/main amd64 selinux-utils amd64 2.6-3 [118 kB]
Пол:5 https://download.astralinux.ru/astra/testing/orel/repository orel/main amd64 policycoreutils amd64 2.6-3 [482 kB]
Получено 1.263 kБ за 1с (1.160 kБ/c) 
Предварительная настройка пакетов ...
Выбор ранее не выбранного пакета libisccfg-export160.
(Чтение базы данных … на данный момент установлено 233650 файлов и каталогов.)
Подготовка к распаковке …/libisccfg-export160_1%3a9.11.3+dfsg-1ubuntu1.5_amd64.deb …
Распаковывается libisccfg-export160 (1:9.11.3+dfsg-1ubuntu1.5) …
Выбор ранее не выбранного пакета libirs-export160.
Подготовка к распаковке …/libirs-export160_1%3a9.11.3+dfsg-1ubuntu1.5_amd64.deb …
Распаковывается libirs-export160 (1:9.11.3+dfsg-1ubuntu1.5) …
Выбор ранее не выбранного пакета isc-dhcp-server.
Подготовка к распаковке …/isc-dhcp-server_4.3.5-3+deb9u1+b1_amd64.deb …
Распаковывается isc-dhcp-server (4.3.5-3+deb9u1+b1) …
Выбор ранее не выбранного пакета selinux-utils.
Подготовка к распаковке …/selinux-utils_2.6-3_amd64.deb …
Распаковывается selinux-utils (2.6-3) …
Выбор ранее не выбранного пакета policycoreutils.
Подготовка к распаковке …/policycoreutils_2.6-3_amd64.deb …
Распаковывается policycoreutils (2.6-3) …
Настраивается пакет libisccfg-export160 (1:9.11.3+dfsg-1ubuntu1.5) …
Настраивается пакет selinux-utils (2.6-3) …
Обрабатываются триггеры для libc-bin (2.24-11+deb9u3) …
Обрабатываются триггеры для systemd (232-25+deb9u11astra.ce1) …
Обрабатываются триггеры для man-db (2.7.6.1-2) …
Настраивается пакет libirs-export160 (1:9.11.3+dfsg-1ubuntu1.5) …
Настраивается пакет isc-dhcp-server (4.3.5-3+deb9u1+b1) …
Generating /etc/default/isc-dhcp-server...
Job for isc-dhcp-server.service failed because the control process exited with error code.
See "systemctl status isc-dhcp-server.service" and "journalctl -xe" for details.
invoke-rc.d: initscript isc-dhcp-server, action "start" failed.
● isc-dhcp-server.service - LSB: DHCP server
   Loaded: loaded (/etc/init.d/isc-dhcp-server; generated; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2019-09-18 00:33:39 EEST; 11ms ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4622 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=1/FAILURE)

Сен 18 00:33:37 astra dhcpd[4636]: before submitting a bug.  These pages explain the proper
Сен 18 00:33:37 astra dhcpd[4636]: process and the information we find helpful for debugging..
Сен 18 00:33:37 astra dhcpd[4636]: 
Сен 18 00:33:37 astra dhcpd[4636]: exiting.
Сен 18 00:33:39 astra isc-dhcp-server[4622]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ... failed!
Сен 18 00:33:39 astra isc-dhcp-server[4622]:  failed!
Сен 18 00:33:39 astra systemd[1]: isc-dhcp-server.service: Control process exited, code=exited status=1
Сен 18 00:33:39 astra systemd[1]: Failed to start LSB: DHCP server.
Сен 18 00:33:39 astra systemd[1]: isc-dhcp-server.service: Unit entered failed state.
Сен 18 00:33:39 astra systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
Настраивается пакет policycoreutils (2.6-3) …
selinux-autorelabel-mark.service is a disabled or a static unit, not starting it.
Обрабатываются триггеры для libc-bin (2.24-11+deb9u3) …
Обрабатываются триггеры для systemd (232-25+deb9u11astra.ce1) …

Код: Выделить всё

olej@astra:~$ systemctl status isc-dhcp-server
● isc-dhcp-server.service - LSB: DHCP server
   Loaded: loaded (/etc/init.d/isc-dhcp-server; generated; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2019-09-18 00:33:39 EEST; 1min 50s ago
     Docs: man:systemd-sysv-generator(8)

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 00:38

Настройка: Установка и настройка сервера ISC DHCP в Ubuntu / Debian

Код: Выделить всё

root@astra:/etc/dhcp# tail -n 10 /etc/dhcp/dhcpd.conf 
subnet 10.1.1.0 netmask 255.255.255.0 {
 range 10.1.1.100 10.1.1.254;
 option subnet-mask 255.255.255.0;
 option broadcast-address 10.1.1.255;
 option domain-name-servers 192.168.1.3, 8.8.8.8;
 option domain-name "workgroup";
 option routers 10.1.1.1;
 default-lease-time 7200;
 max-lease-time 480000;
}

Код: Выделить всё

root@astra:/etc/default# cat /etc/default/isc-dhcp-server | grep v4
#DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
#DHCPDv4_PID=/var/run/dhcpd.pid
INTERFACESv4="eth1"

Код: Выделить всё

olej@astra:/etc/dhcp$ sudo /sbin/ifconfig eth1 10.1.1.1 up

olej@astra:/etc/dhcp$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:72:09:c0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.107/24 brd 192.168.1.255 scope global noprefixroute dynamic eth0
       valid_lft 164144sec preferred_lft 164144sec
    inet6 fe80::2a33:9607:fd98:381f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c0:d9:ef brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.1/8 brd 10.255.255.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::4980:ef5d:5849:274a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Код: Выделить всё

olej@astra:~$ sudo systemctl restart isc-dhcp-server
[sudo] пароль для olej: 
olej@astra:~$ sudo systemctl status isc-dhcp-server
● isc-dhcp-server.service - LSB: DHCP server
   Loaded: loaded (/etc/init.d/isc-dhcp-server; generated; vendor preset: enabled)
   Active: active (running) since Wed 2019-09-18 01:19:58 EEST; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 6206 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/isc-dhcp-server.service
           └─6221 /usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf eth1

Сен 18 01:19:56 astra systemd[1]: Starting LSB: DHCP server...
Сен 18 01:19:56 astra isc-dhcp-server[6206]: Launching IPv4 server only.
Сен 18 01:19:56 astra dhcpd[6220]: Wrote 0 leases to leases file.
Сен 18 01:19:56 astra dhcpd[6221]: Server starting service.
Сен 18 01:19:58 astra isc-dhcp-server[6206]: Starting ISC DHCPv4 server: dhcpd.
Сен 18 01:19:58 astra systemd[1]: Started LSB: DHCP server.

Код: Выделить всё

olej@astra:~$ sudo systemctl is-enabled isc-dhcp-server
isc-dhcp-server.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled isc-dhcp-server
enabled

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 01:28

+ разрешить нужно форвардинг между интерфейсами:

Код: Выделить всё

olej@astra:/etc/dhcp$ cat /proc/sys/net/ipv4/ip_forward
0

olej@astra:/etc/dhcp$ sudo sysctl -w net.ipv4.ip_forward=1
[sudo] пароль для olej: 
net.ipv4.ip_forward = 1

olej@astra:/etc/dhcp$ cat /proc/sys/net/ipv4/ip_forward
1
P.S. Или так:

Код: Выделить всё

olej@astra:/etc/dhcp$ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
1

olej@astra:/etc/dhcp$ cat /proc/sys/net/ipv4/ip_forward
1

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 01:36

Olej писал(а): - другой хост (или несколько - виртуальная LAN) имеют интерфейс в виртуальную сеть
В качестве клиентского хоста LAN использую VM antiX (что есть под рукой), перенастроив ему только сетевой интерфейс на "внутренняя сеть"...
Вложения
v2.png

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 01:39

Olej писал(а): В качестве клиентского хоста LAN использую VM antiX (что есть под рукой), перенастроив ему только сетевой интерфейс на "внутренняя сеть"...
После старта этого хоста его интерфейс получает IP 10.1.1.100 от того DHCP, который мы только-что настроили на диапазон 10.1.1.100...10.1.1.254.
Вложения
v3.png

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 02:25

Olej писал(а): После старта этого хоста его интерфейс получает IP 10.1.1.100 от того DHCP, который мы только-что настроили на диапазон 10.1.1.100...10.1.1.254.
Всё это предыдущее кино позволило развернуть внутреннюю сеть, работающую от собственного DHCP ... но это не обеспечивает роутиг внаружу.
Чего ему не хватает?

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуальный Интернет-роутер

Непрочитанное сообщение Olej » 18 сен 2019, 11:05

Olej писал(а):Чего ему не хватает?
Поменяю внешний интерфейс роутера на NAT:
Вложения
v2.png

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя