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

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

Модератор: Olej

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

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

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

Olej писал(а):Поменяю внешний интерфейс роутера на NAT:
После чего выход внаружу (в Интернет) из этого хоста:
а). успешный
б). и выглядит так:

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

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 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 86379sec preferred_lft 86379sec
    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/24 brd 10.1.1.255 scope global noprefixroute 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:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=63 time=25.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=63 time=24.1 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 24.188/24.811/25.434/0.623 ms

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

olej@astra:~$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  10.0.2.2 (10.0.2.2)  0.171 ms  0.159 ms  0.085 ms
 2  192.168.1.3 (192.168.1.3)  25.657 ms  25.568 ms  35.513 ms
 3  10.0.53.1 (10.0.53.1)  52.235 ms  52.079 ms  52.006 ms
 4  194-242-96-153.pitline.net (194.242.96.153)  51.922 ms  51.817 ms  51.730 ms
 5  185.43.249.66 (185.43.249.66)  52.182 ms  52.086 ms  51.981 ms
 6  108.170.248.147 (108.170.248.147)  51.355 ms 108.170.248.131 (108.170.248.131)  16.172 ms  47.236 ms
 7  209.85.248.105 (209.85.248.105)  32.324 ms
^C

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

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

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

Olej писал(а):Чего ему не хватает?
Добавляю на роутере правила iptables:

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

root@astra:/etc/sysctl.d# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
root@astra:/etc/sysctl.d# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
И из внутреннего хоста пошёл трафик в Интернет:
Вложения
v4.png

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

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

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

Сохранить правила iptables:

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

root@astra:/etc# sudo /sbin/iptables-save > /etc/iptables.rules
Для дальнейшего их позже использовании при загрузке:

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

root@astra:/etc# cat /etc/iptables.rules
# Generated by iptables-save v1.6.0 on Wed Sep 18 12:39:25 2019
*nat
:PREROUTING ACCEPT [193:14692]
:INPUT ACCEPT [190:14440]
:OUTPUT ACCEPT [100:21944]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Sep 18 12:39:25 2019
# Generated by iptables-save v1.6.0 on Wed Sep 18 12:39:25 2019
*filter
:INPUT ACCEPT [3335:907890]
:FORWARD ACCEPT [37:2924]
:OUTPUT ACCEPT [2956:1206480]
COMMIT
# Completed on Wed Sep 18 12:39:25 2019

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

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

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

Olej писал(а):И из внутреннего хоста пошёл трафик в Интернет:
И это всё уже написано из броузера внутреннего хоста через виртуальный роутер:

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

olej@antix1:~
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

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

olej@antix1:~
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:d4:d7:34 brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.100/24 brd 10.1.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fed4:d734/64 scope link 
       valid_lft forever preferred_lft forever

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

olej@antix1:~
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=61 time=25.9 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=61 time=26.10 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=61 time=26.0 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 4ms
rtt min/avg/max/mdev = 25.851/26.288/26.984/0.514 ms


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

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

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

Olej писал(а):Сохранить правила iptables:
Для восстановления правил iptables при поднятии интерфейсов:
1. создать файл скрипта:

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

root@astra:/etc/network/if-up.d# touch forwarding

root@astra:/etc/network/if-up.d# pwd
/etc/network/if-up.d
2. содержимое файла скрипта:

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

root@astra:/etc/network/if-up.d# cat forwarding 
/sbin/iptables-restore < /etc/iptables.rules
exit 0
3. сделать его исполнимым:

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

root@astra:/etc/network/if-up.d# chmod a+x forwarding 

root@astra:/etc/network/if-up.d# ls -l forwarding 
-rwxr-xr-x 1 root root 52 Сен 18 12:55 forwarding

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

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

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

Теперь в любой имеющейся виртуальной машине, перед её запуском, сменив тип сетевого адаптера на "внутренняя сеть" - мы получаем сразу же ещё один хост внутренней LAN, получающий IP по DHCP из виртуального роутера без любых донастроек. Так мы сразу получаем внутреннюю виртуальную LAN.

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

olej@astra:~$ nmap -sP 10.1.1.0/24

Starting Nmap 7.40 ( https://nmap.org ) at 2019-09-18 13:54 EEST
Nmap scan report for 10.1.1.1
Host is up (0.00055s latency).
Nmap scan report for 10.1.1.100
Host is up (0.00032s latency).
Nmap scan report for 10.1.1.101
Host is up (0.0036s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 7.75 seconds
Это antiX:

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

olej@antix1:~
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster
olej@antix1:~
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:d4:d7:34 brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.100/24 brd 10.1.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fed4:d734/64 scope link 
       valid_lft forever preferred_lft forever
Это ALT Linux:

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

[olej@comp-celeron-cpu-4e4c83 ~]$ lsb_release -a
LSB Version:	n/a
Distributor ID:	ALT
Description:	ALT p8 starter kit (Hypericum)
Release:	n/a
Codename:	Hypericum

[olej@comp-celeron-cpu-4e4c83 ~]$ ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 08:00:27:19:7A:F3  
          inet addr:10.1.1.101  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe19:7af3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7677 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4872 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3704353 (3.5 MiB)  TX bytes:2219539 (2.1 MiB)

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

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

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

Olej писал(а):Так мы сразу получаем внутреннюю виртуальную LAN.
Вот картина такой LAN сделанная Zenmap.
Вложения
Screenshot_20190918_195356.png

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

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

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

Olej писал(а):Поменяю внешний интерфейс роутера на NAT:
Возвращаю настройку внешнего интерфейса роутера к "сетевой мост".
Вложения
v5.png

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

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

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

Olej писал(а):Возвращаю настройку внешнего интерфейса роутера к "сетевой мост".
После загрузки:

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

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 172701sec preferred_lft 172701sec
    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/24 brd 10.1.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::4980:ef5d:5849:274a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Внешний интерфейс eth0 перешёл в подсеть хостовой LAN (и аппаратного роутера в Интернет).

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

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

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

Olej писал(а):Внешний интерфейс eth0 перешёл в подсеть хостовой LAN (и аппаратного роутера в Интернет).
Но!
ping из виртуальных хостов внутренней LAN не идут.
Проверяю на роутере.

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

olej@astra:~$ sudo /sbin/iptables-save
[sudo] пароль для olej: 
Правила ip-tables не записались при загрузке из /etc/iptables.rules ... как предполагалось скриптом из созданного мной /etc/network/if-up.d/forwarding!

Сделаю это вручную:

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

root@astra:/etc/dhcp# /sbin/iptables-restore < /etc/iptables.rules

root@astra:/etc/dhcp# /sbin/iptables-save
# Generated by iptables-save v1.6.0 on Wed Sep 18 20:33:07 2019
*filter
:INPUT ACCEPT [9:684]
:FORWARD ACCEPT [56:29283]
:OUTPUT ACCEPT [9:936]
COMMIT
# Completed on Wed Sep 18 20:33:07 2019
# Generated by iptables-save v1.6.0 on Wed Sep 18 20:33:07 2019
*nat
:PREROUTING ACCEPT [8:510]
:INPUT ACCEPT [3:228]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Wed Sep 18 20:33:07 2019
Теперь всё нормально, и ping с обоих хостов LAN замечательно идут. Вот один из них, ALT Linux:

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

[olej@comp-celeron-cpu-4e4c83 ~]$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=55 time=27.4 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=55 time=26.5 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=55 time=30.3 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2009ms
rtt min/avg/max/mdev = 26.556/28.132/30.356/1.623 ms
Нужно разбираться!

Ответить

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

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

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