LINUX.ORG.RU
решено ФорумAdmin

маршрутизатор на гостевой системе на KVM

 , , , ,


1

1

Схема сети: роутер подключенный к интернет -> kvm (2 сетевые платы) -> гостевая ОС (centos7) -> остальные гостевые ос + рабочие станции.

Конфигурация KVM и гостевой системы после всех манипуляций здесь

Роутер вещает в 192.168.0.0/24

на KVM один интерфейс 192.168.0.2

второй интерфейс 192.168.1.1

маршрутизатор 2 сетевых 192.168.0.254 192.168.1.254

настраиваю Quagga по гайдам но проблема что отказывается работать..

firewalld и Selinux отключаю во время настройки

Листинги zebra.conf и ospfd.conf

[root@router quagga]# cat zebra.conf
!
! Zebra configuration saved from vty
!   2019/05/23 15:51:57
!
hostname router
password zebra
enable password zebra
log file /var/log/quagga/quagga.log
!
interface ens3
 description LAN
 ip address 192.168.0.254/24
 multicast
 ipv6 nd suppress-ra
!
interface ens9
 description LAN
 ip address 192.168.1.254/24
 multicast
 ipv6 nd suppress-ra
!
interface lo
!
interface sit0
 ipv6 nd suppress-ra
!
ip route 0.0.0.0/24 192.168.0.1
!
ip forwarding
!
!
line vty
!
[root@router quagga]# cat ospfd.conf
!
! Zebra configuration saved from vty
!   2019/05/23 15:51:57
!
hostname router
password zebra
log file /var/log/quagga/quagga.log
log stdout
!
!
!
interface ens3
 description LAN
!
interface ens9
 description LAN
!
interface lo
!
interface sit0
!
router ospf
 ospf router-id 192.168.1.254
 network 192.168.0.0/24 area 0.0.0.0
 network 192.168.1.0/24 area 0.0.0.0
 default-information originate
!
line vty
!
Вывод команды ip addr
[root@router ~]# ip -c a
ip -c a
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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:2a:a7:83 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.254/24 brd 192.168.0.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe2a:a783/64 scope link 
       valid_lft forever preferred_lft forever
3: ens9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:83:ab:08 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.254/24 brd 192.168.1.255 scope global ens9
       valid_lft forever preferred_lft forever

Вывод команды ip route

[root@router quagga]# ip route
0.0.0.0/24 via 192.168.0.1 dev ens3 proto zebra 
default via 192.168.0.1 dev ens3 
169.254.0.0/16 dev ens3 scope link metric 1002 
169.254.0.0/16 dev ens9 scope link metric 1003 
192.168.0.0/24 dev ens3 proto kernel scope link src 192.168.0.254 
192.168.1.0/24 dev ens9 proto kernel scope link src 192.168.1.254 

настройки интерфейсов

[root@router network-scripts]# cat ifcfg-ens3
HWADDR=52:54:00:2A:A7:83
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.0.254
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV4_DNS_PRIORITY=100
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6_DNS_PRIORITY=100
NAME=ens3
UUID=7197f4a9-e54e-4c6a-aa00-df772ee26377
DEVICE=ens3
ONBOOT=yes
GATEWAY=192.168.0.1
[root@router network-scripts]# cat ifcfg-ens9
HWADDR=52:54:00:83:AB:08
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.1.254
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV4_DNS_PRIORITY=100
IPV6INIT=no
NAME=ens9
UUID=e88b6945-0aef-4390-9caa-656987fdf833
DEVICE=ens9
ONBOOT=yes

Настройки сети на квм такие

[~@KVM ~]$ ip -c a
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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether d8:50:e6:49:6b:84 brd ff:ff:ff:ff:ff:ff
3: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN group default qlen 1000
    link/ether e8:de:27:03:44:1a brd ff:ff:ff:ff:ff:ff
4: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e8:de:27:03:44:1a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::f06f:1aff:fe28:78a3/64 scope link 
       valid_lft forever preferred_lft forever
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether d8:50:e6:49:6b:84 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.250/24 brd 192.168.0.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet6 fe80::da50:e6ff:fe49:6b84/64 scope link 
       valid_lft forever preferred_lft forever

с маршрутизатора пинги идут в любую сеть без проблем, до любого интерфейса маршрутизатора пинг доходит но из одной сети в другую пинг не проходит. в какую сторону копать?


Ответ на: комментарий от aol

если правильно понимаю интерфейсы квм оба должны быть в режиме моста(не силен в этом) 192.168.0.2 и 192.168.1.1 Сейчас пробую сделать тоже самое на vmbox проблема такая же со станции до маршрутизатора пингуется. с гостевых машин так же. между сетками связи нет(

mifi ()
Ответ на: комментарий от mifi

предлагаешь сделать маршрутизатор из квм?

Разве не в этом вопрос, оп?

Всё необходимые интерфейсы можно завести вланами через один физический интерфейс, например.

aol ★★★★★ ()
Ответ на: комментарий от aol

Как бы вариант, но мсье знает толк в извращениях.. хотелось бы разобраться как сделать маршрутизатор из гостевой системы. На centos 6 в vmbox работал маршрутизатор (настройки сети: внутренняя сеть internet и internet2) из сетки в сетку пинги прокидывал. пытаюсь сделать тоже самое только на centos7.. не робит Destination Host Unrechable пишет. А в идеале надо сделать через реальные интерфейсы..

mifi ()
Ответ на: комментарий от mifi

Для начала я бы завёл каждый физический интерфейс на хосте в свой отдельный бридж, и далее уже именно в бриджи втыкал виртуалку с роутером. Сразу исчезают неприятные проблемы вроде невозможности напрямую с хоста достучаться до виртуалки и при изменении хостовых интерфейсов достаточно перенастроить только бриджи хоста, виртуалки ничего не заметят.

manntes-live ★★ ()
Ответ на: комментарий от mifi

Именно так. При этом в тот бридж, который в сторону интернета, нужно только добавить интерфейс но никаких адресов не присваивать, все адреса уже внутри виртуалки настраивать.

manntes-live ★★ ()

с маршрутизатора пинги идут в любую сеть без проблем, до любого интерфейса маршрутизатора пинг доходит но из одной сети в другую пинг не проходит. в какую сторону копать?

А при чём тут Quagga? Тебе надо маршруты с маршрутизатора куда-то ещё анонсировать?

AS ★★★★★ ()
Ответ на: комментарий от AS

Мне нужно добиться того что бы из одной сети можно было достучаться до другой сети через маршрутизатор. Маршруты вроде прописываю на маршрутизаторе(и через квагу и статически) работать не хочет

mifi ()
Ответ на: комментарий от mifi

Мне нужно добиться того что бы из одной сети можно было достучаться до другой сети через маршрутизатор.

Понятно. OSPF (и прочие протоколы динамической маршрутизации) не для случая, когда маршрутизатор один.

Маршруты вроде прописываю на маршрутизаторе(и через квагу и статически) работать не хочет

Маршруты по-умолчанию на хостах в сетях указаны правильно? cat /proc/sys/net/ipv4/ip_forward что показывает?

AS ★★★★★ ()
Ответ на: комментарий от AS

ospf использую потому что нужно будет примотать vpn и будет еще 2 роутера..

в результате у меня получится 3 территориально разнесенные сетки соединенные по vpn

cat /proc/sys/net/ipv4/ip_forward показывает 1

P.S. ну и разобраться с этой темой было бы не лишним

mifi ()
Ответ на: комментарий от mifi

ospf использую потому что нужно будет примотать vpn и будет еще 2 роутера..

Понятно. На потом и оставляй. Пока минимум второго роутера не будет, ospf не понадобится.

cat /proc/sys/net/ipv4/ip_forward показывает 1

Тогда изучай вывод tcpdump на предмет прилетающих и улетающих пакетов. И, может быть, есть какие-то ограничения у самой виртуалки, но тут я не помощник.

AS ★★★★★ ()
Ответ на: комментарий от mifi

как должны быть указаны маршруты по-умолчанию?

То есть? Маршрутом по-умолчанию должен быть адрес роутера на соответствующем интерфейсе. Или как указывать? Руками например. Или посредством DHCP. Кстати да, можно и ospf, но только тогда ospf нужно на каждом хосте иметь, а это какой-то совсем нестандартный приём. :-)

AS ★★★★★ ()
Ответ на: комментарий от AS

маршруты по-умолчанию(шлюзы) вроде правильно прописал на хостах. Пинги с маршрутизатора идут в обе стороны. между сетками так связи и нет.. в квм 2 интерфейса в режиме моста. Один(192.168.0.254) смотрит на сеть 192.168.0.0/24 и в интернет через шлюз 192.168.0.1. Второй без ip смотрит в сеть 192.168.13.0/24. Маршрутизация отказывается работать, и статика, и динамика.. в куда копать?

mifi ()
Ответ на: комментарий от mifi

Пинги с маршрутизатора идут в обе стороны.

Интересно, как, если у машрутизатора нет интерфейса в 192.168.13.0/24. Если только ip-интерфейс из 192.168.13 есть на роутере 192.168.0.1.

в куда копать?

В теорию. Убери оба интерфейса из бриджа и повесть на них по одному адресу из этих сетей. Либо оставь бридж и подними два ip на бридже.

AS ★★★★★ ()
Ответ на: комментарий от AS

Если только ip-интерфейс из 192.168.13 есть на роутере 192.168.0.1.

Хотя тоже не очень понятно, как - обратный пакет не должен вернуться по идее. Разве что броадкастом как-то обратно улетает и как-то ловится из-за этого. Хотя такого не должно бы быть.

AS ★★★★★ ()
Ответ на: комментарий от mifi

опечатался 192.168.1.0/24 сетка и 192.168.0.1/24..

Не принципиально. Всё равно на роутере должны быть ip-интерфейсы из обеих сетей, и именно они должны быть шлюзами для рабочих станций. Хотя в сети 192.168.0.1/24 шлюзом может быть и 192.168.0.1, но у него должен быть описан маршрут на 192.168.1.0/24 через 192.168.0.254. Или статикой, или вот тут уже ospf между ними, хотя для одного маршрута это перебор на мой взгляд.

AS ★★★★★ ()
Ответ на: комментарий от AS

на маршрутизаторе и получается две сетевые карты одна с адресом 192.168.0.254 вторая с адресом 192.168.1.254 соответственно соединены с мостами 192.168.0.2 и в сеть192.168.1.0/24

По сути получается что у маршрутизатора в прямом доступе обе сети (192.168.0.0/24 и 192.168.1.0/24) но пакеты между сетями перекидывать не хочет

хотя конечно что то с настройкой KVM'a не так... сейчас сделал 2 моста на kvm один с ip=192.168.0.2 второй без ip адреса.

с маршрутизатора пингуются хосты из обеих сетей

mifi ()
Ответ на: комментарий от mifi

на маршрутизаторе и получается две сетевые карты одна с адресом 192.168.0.254 вторая с адресом 192.168.1.254 соответственно соединены с мостами 192.168.0.2 и в сеть192.168.1.0/24

Зачем в этой конфигурации мост? Чтобы было?

По сути получается что у маршрутизатора в прямом доступе обе сети

Вот тут не так написано: маршрутизатор на гостевой системе на KVM (комментарий)

AS ★★★★★ ()

Это вот что за бред, кстати?

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:1a:20:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.10/28 brd 192.168.0.15 scope global dynamic enp0s3
       valid_lft 82748sec preferred_lft 82748sec
    inet 192.168.0.10/24 brd 192.168.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever

И где вывод ip r на самом деле? И почему вывод ip a на двух простынях разный?

AS ★★★★★ ()

И это бред:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:1a:20:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.10/28 brd 192.168.0.15 scope global dynamic enp0s3
       valid_lft 82748sec preferred_lft 82748sec
    inet 192.168.0.254/24 brd 192.168.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever

И на enp0s8 ip разные.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

В шапке поместил текущие настройки сети на гостевой машине и вывод «ip a» kvm. Так же обновил все конфиги... вроде уже все правильно.. но оно работать не хочет.

Возможно конечно это связано с тем что второй на квм unknow.. но по сути он работает и при отключении первого пинги идут прикладываю конфиги от интерфейсов квм'а

cat ifcfg-enp5s0 
TYPE=Ethernet
UUID=a55531f6-0636-4aeb-a002-74cc9eaa228c
DEVICE=enp5s0
ONBOOT=yes
BRIDGE=br1

NAME="System enp5s0"
cat ifcfg-enp3s0
TYPE=Ethernet
UUID=eb11eda7-0580-49a8-aeb4-503807d788cb
DEVICE=enp3s0
ONBOOT=yes
BRIDGE=br0

NAME="System enp3s0"
cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.250
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=77.88.8.8

STP=no
PROXY_METHOD=none
BROWSER_ONLY=no
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=$'\720\634\720\676\721\601\721\602 br0'
UUID=d2d68553-f97e-7549-7a26-b34a26f29318
[cat ifcfg-br1
DEVICE=br1
TYPE=Bridge
ONBOOT=yes


STP=no
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=$'\720\634\720\676\721\601\721\602 br1'
UUID=2ee981ca-5ff4-4f9b-03fe-32879aa3dc85

mifi ()
Ответ на: комментарий от mifi

Не знаю этих ваших центосов (это в смысле про конфиги). Добейся того, чтобы «ip a» тебе показал на одном интерфейсе только 192.168.0.254/24, а на другом - только 192.168.1.254/24. И без бриджей между этими интерфейсами. Зачем вообще тут бридж, если у тебя цель - роутер сделать?

AS ★★★★★ ()
Ответ на: комментарий от AS

Проблема решилась, спасибо за совет. IP на втором мосте поставил из сетки 192.168.1.0/24 и пинги пошли. еще помогла утилита trafshow. посмотрел в ней что пакет отправляется с маршрутизатора, но ответа не было. Добавил еще статический маршрут на роутер который смотрит в интернет.

mifi ()
Ответ на: комментарий от mifi

рабочая конфигурация кваги на гостевой машине KVM

может кому нужно будет выкладываю листинги конфигов kvm'a и гостевой машины при которых у меня заработала маршрутизация.

листинг сетевых интерфейсов KVM

cat /etc/sysconfig/network-scripts/ifcfg-enp3s0
TYPE=Ethernet
UUID=eb11eda7-0580-49a8-aeb4-503807d788cb
DEVICE=enp3s0
ONBOOT=yes
BRIDGE=br0

NAME="System enp3s0"
cat /etc/sysconfig/network-scripts/ifcfg-enp5s0 
TYPE=Ethernet
UUID=a55531f6-0636-4aeb-a002-74cc9eaa228c
DEVICE=enp5s0
ONBOOT=yes
BRIDGE=br1

NAME="System enp5s0"
cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.250
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=77.88.8.8

STP=no
PROXY_METHOD=none
BROWSER_ONLY=no
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=$'\720\634\720\676\721\601\721\602 br0'
UUID=d2d68553-f97e-7549-7a26-b34a26f29318
cat /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE=br1
TYPE=Bridge
ONBOOT=yes


STP=no
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=$'\720\634\720\676\721\601\721\602 br1'
UUID=2ee981ca-5ff4-4f9b-03fe-32879aa3dc85

BOOTPROTO=none
IPADDR=192.168.1.250
PREFIX=24
sysctl -p
net.ipv4.ip_forward = 1

настройки на гостевой системе

Сетевые интерфейсы

cat /etc/sysconfig/network-scripts/ifcfg-ens3 
HWADDR=52:54:00:2A:A7:83
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.0.254
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV4_DNS_PRIORITY=100
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6_DNS_PRIORITY=100
NAME=ens3
UUID=7197f4a9-e54e-4c6a-aa00-df772ee26377
DEVICE=ens3
ONBOOT=yes
DNS=192.168.0.254
GATEWAY=192.168.0.1
cat /etc/sysconfig/network-scripts/ifcfg-ens9 
HWADDR=52:54:00:83:AB:08
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.1.254
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV4_DNS_PRIORITY=100
IPV6INIT=no
NAME=ens9
UUID=e88b6945-0aef-4390-9caa-656987fdf833
DEVICE=ens9
ONBOOT=yes
DNS1=192.168.1.254

sysctl -p
net.ipv4.ip_forward = 1
cat /etc/quagga/zebra.conf
!
! Zebra configuration saved from vty
!   2019/05/23 15:51:57
!
hostname router
password zebra
enable password zebra
log file /var/log/quagga/quagga.log
!
interface ens3
 description LAN
 ip address 192.168.0.254/24
 multicast
 ipv6 nd suppress-ra
!
interface ens9
 description LAN
 ip address 192.168.1.254/24
 multicast
 ipv6 nd suppress-ra
!
interface lo
!
interface sit0
 ipv6 nd suppress-ra
!
ip route 0.0.0.0/24 192.168.0.1
!
ip forwarding
!
!
line vty
!

настройки кваги

cat /etc/quagga/ospfd.conf
!
! Zebra configuration saved from vty
!   2019/05/23 15:51:57
!
hostname router
password zebra
log file /var/log/quagga/quagga.log
log stdout
!
!
!
interface ens3
 description LAN
!
interface ens9
 description LAN
!
interface lo
!
interface sit0
!
router ospf
 ospf router-id 192.168.1.254
 network 192.168.0.0/24 area 0.0.0.0
 network 192.168.1.0/24 area 0.0.0.0
 default-information originate
!
line vty
!

mifi ()