LINUX.ORG.RU
ФорумAdmin

Маршрутизация в CentOS 7 и VM

 


0

1

На хост сервере (CentOS 7) установлена одна виртуальная машина (KVM). Для неё создан отдельный мост br1. Пинг между хостом и гостем (то же CentOS 7) проходит без проблем, но вот пинг от гостя в интернет - не работает (зависает). Судя по счетчикам в правилах iptables, ping проходит от br1 в eth0 (pkts bytes - 251 21014 и растут, пока запущен пинг на госте), но ответ не возвращается (pkts bytes - 0 0).

pkts bytes target     prot opt in     out     source               destination
 0     0 ACCEPT     all  --  eth0 br1   0.0.0.0/0            0.0.0.0/0
251 21014 ACCEPT     all  --  br1  eth0  0.0.0.0/0            0.0.0.0/0

Настройки моста (Хост):

/etc/sysconfig/network-scripts/ifcfg-br1:
DEVICE=br1
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
# IP Хоста
IPADDR=x.y.z.26
NETMASK=255.255.255.255
STP=off
DELAY=0

Настройки роутинга на хосте для br1:

/etc/sysconfig/network-scripts/route-br1:
# Белый IP гостевой ситемы
ADDRESS0=x.y.z.48
NETMASK0=255.255.255.255

Настройки гостя:

/etc/sysconfig/network-scripts/ifcfg-eth0:
...
IPADDR=x.y.z.48
PREFIX=32
SCOPE="peer x.y.z.26" # IP Хоста
...

/etc/sysconfig/network-scripts/route-eth0:
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=x.y.z.26 # IP Хоста
METRIC0=0

Уверен, что проблема с доступом гостя в интернет, связана с роутингом, в связи с чем, просьба, подсказать, как прописать роутинг на хосте для гостя так, чтобы тот имел доступ в интернет. Перечитав множество статей-инструкций, решения так и не нашел, на изучение основ, как всегда не хватает времени.


Покажи вывод ip r с хоста и с гостя.

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

Для примера, ip адрес br0 на хосте 192.168.0.1/24, ip адрес eth0 гостя 192.168.1.1/24. Нужен маршрут типа

ip route add 192.168.1.0/24 via 192.168.1.1 dev br0

Пишу по памяти, возможны ошибки.

Сделай у себя по аналогии.

anonymous ()
Ответ на: комментарий от anonymous
x.y.z.26 - ip хоста
x.y.z.48 - ip гостя
1.2.4.75 - gateway хоста
# ip r (хост)
default via 1.2.4.75 dev eth0
1.2.4.75 dev eth0 proto kernel scope link src x.y.z.26
x.y.z.248 dev br1 scope link
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16 dev br0 scope link metric 1003
169.254.0.0/16 dev br1 scope link metric 1004
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

# ip r (гость)
default via x.y.z.26 dev eth0
x.y.z.26 dev eth0 proto kernel scope link src x.y.z.48
169.254.0.0/16 dev eth0 scope link metric 1002
Barz ()
Ответ на: комментарий от anonymous

Заменил маршрут (удалил старый и добавил новый) по вашему совету:

# ip route add x.y.z.48/32 via x.y.z.26 dev br1

# ip r
Было:
x.y.z.48 dev br1 scope link

Стало:
x.y.z.48 via x.y.z.26 dev br1
К сожалению, гость так и не подключается к Интернет, все осталось, как и было.
Barz ()
Ответ на: комментарий от Barz

/32

Подожди, зачем тебе маска 255.255.255.255 (она же /32)?

Выстави 255.255.255.0 (она же /24).

/32 это сеть в себе. Такая маска позволяет держать только один адрес.

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

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

Обычно нужно включить маскарадинг на eth0 хоста, и, при необходимости, настроить форвардинг ipv4.

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

зачем тебе маска 255.255.255.255

Так рекомендует провайдер (HZ), тут инструкция, по которой я пытаюсь настроить отдельные IP, да и как иначе пробросить отдельные IP (не подсеть), без /32?. Хост, имеет точно такую же маску, и интернет на нем доступен без проблем.

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

Надеюсь, что как только пойдет пинг, разбираться с доступом в Интернет уже не придется.

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

А покажи-ка конфиг eth0 хоста. И ip addr заодно. Есть подозрение, что мост неверно настроен.

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

В iptables открыта переадресация между интерфейсами eth0 и br1 в обе стороны + временно удалено последнее правило - DROP All, т.е. по сути разрешена любая переадресация.

конфиг eth0 хоста. И ip addr заодно

Интернет на хосте работает без проблем, вот его конфиг:

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=x.y.z.26
NETMASK=255.255.255.255
SCOPE="peer 1.2.4.75"

/etc/sysconfig/network-scripts/route-eth0
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=1.2.4.75

# ip a

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet x.y.z.26 peer 1.2.4.75/32 brd x.y.z.26 scope global eth0
       valid_lft forever preferred_lft forever
    inet x.y.z.26/32 scope global eth0
       valid_lft forever preferred_lft forever
...

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

Я не вижу у тебя в конфиге ifcfg-eth0 строчки

BRIDGE=br1
.

+ в ip a для eth0 не указано master br1.

Отсюда я делаю вывод, что у тебя br1 не привязан к сетевому интерфейсу. Bridge это не самостоятельный интерфейс, ему нужна привязка к сетевому интерфейсу.

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

Файлы route-* описываются не так, а в виде продолжения команды

ip route add

Например

cat <<EOF >>/etc/sysconfig/network-scripts/route-eth0
10.1.2.0/24 via 10.0.0.2
EOF

Что в итоге получается как

ip route add 10.1.2.0/24 via 10.0.0.2

leader32 ()
Последнее исправление: leader32 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.