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

Достучаться до ВМ по IPv4

 , ,


0

1

Настраиваю сервер+ВМ(KVM). Для виртуалок купил отдельную подсеть /29. У хоста свой, отдельный от подсети IP. В хост системе настроил интерфейсы так:

auto eth0
iface eth0 inet static
  address 130.243.95.96
  netmask 255.255.255.192
  gateway 130.243.95.65
  up route add -net 130.243.95.96 netmask 255.255.255.192 gw 130.243.95.65 dev eth0

auto  br0
iface br0 inet static
  address 130.243.95.96
  netmask 255.255.255.255
  bridge_ports none
  bridge_stp off
  bridge_fd 0
  bridge_maxwait 0
  up route add -host 130.243.90.112 dev br0
  up route add -host 130.243.90.113 dev br0
  up route add -host 130.243.90.114 dev br0
  up route add -host 130.243.90.115 dev br0
  up route add -host 130.243.90.116 dev br0
  up route add -host 130.243.90.117 dev br0
  up route add -host 130.243.90.118 dev br0
  up route add -host 130.243.90.119 dev br0

На виртуалках конфиг такой:

auto eth0
iface eth0 inet static
  address 130.243.90.112
  netmask 255.255.255.255
  gateway 130.243.95.96
  pointopoint 130.243.95.96

Интернет на виртуалках есть, но вот подключиться к ним из той же подсети /29 или с хоста к примеру, по ssh, нельзя. Пакеты просто не доходят до виртуалки. traceroute обрывается на hostname хоста. Хотя с другого IP (не в подсети и не хоста) подключиться можно спокойно. Фаерволл разрешает подключение к ВМ на нужных портах и с нужных адресов.

sysctl конфиг:

net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.icmp_echo_ignore_broadcasts=1

И на всякий, конфиг хоста iptables:

*nat
:PREROUTING ACCEPT [1402:78580]
:INPUT ACCEPT [1165:65292]
:OUTPUT ACCEPT [765:51476]
:POSTROUTING ACCEPT [761:45676]
COMMIT
*mangle
:PREROUTING ACCEPT [4568984:553024107]
:INPUT ACCEPT [4567237:551823283]
:FORWARD ACCEPT [1747:1200824]
:OUTPUT ACCEPT [9824736:14300347047]
:POSTROUTING ACCEPT [9821535:14294912408]
COMMIT
*filter
:INPUT DROP [177:9652]
:FORWARD DROP [0:0]
:OUTPUT DROP [4:5800]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --dport 33567 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p ICMP -j ACCEPT
-A OUTPUT -p udp --dport 33434:33523 -j ACCEPT
-A OUTPUT -p udp -m udp -m multiport --dports 53,80,123 -j ACCEPT
-A OUTPUT -p tcp -m tcp -m multiport --dports 53,80,33567 -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 130.243.90.112/29 -j ACCEPT
-A FORWARD -d 130.243.90.112/29 -j ACCEPT
COMMIT

В чём может быть проблема?

Проблема была очень глупа. На виртуалках во всех действиях в таблице filter стоит DROP и я забыл добавить простое правило которое решает все проблемы:

-A OUTPUT -s 130.243.90.112/29 -d 130.243.90.112/29 -j ACCEPT
-A INPUT  -s 130.243.90.112/29 -d 130.243.90.112/29 -j ACCEPT
Всё гениальное - просто. :)

FluffyPillow
() автор топика

Не знаю, куда вы с хоста можете достучаться с таким OUTPUT, или у вас ssh на 33567?

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.