Нет интернета в ВМ quemu

VirtualBox, QEMU, ESX/ESXi и прочия
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
wawan
рядовой
Сообщения: 27
Зарегистрирован: 2015-12-25 6:28:08

Нет интернета в ВМ quemu

Непрочитанное сообщение wawan » 2016-12-31 14:06:40

С наступающим всех 2017.
Нужна помощь так как сам я уже не знаю что делать.
Моя история.
Установил в качестве гипервизора CentOS 7 на ней поднял ВМ FreeBSD 11 в качестве шлюза в интернет, dns, dhcp. Фаирвол стоит PF.
В CentOS поднят бридж на интерфейсе который смотрит в локальную сеть.
Теперь самое интересное.
Все устройство которые подключены по сети работают нормально, есть интернет, получают адреса по dhcp двумя словами ВСЁ ХОРОШО нареканий нет. Но есть одно но. Сам гипервизор и ВМ за исключение FreeBSD (поднимает PPoE) которые подняты на нём не могут ходить в интернет то есть пинг, nslookup проходит, а нета нет. Так же на FreeBSD поднят Apache и не большой сайт, что самое интересное с виртуалок (Win7) на него можно зайти и всё работает. В связи с этим вопрос? Почему нет интернета на ВМ. Может кто сталкивался с таким.
Конфиг PF

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

########## interface info ##########
int_if="lan"
ext_if="tun0"
#vpn_if="tun1"

lannet="192.168.1.0/24"
int_ip="192.168.1.254"
ext_ip="1.2.3.4"

########## open ports ##########
www="{ 80,443 }"
mail="{ 465,587,993,995,143 }"
rdp="{ 730,10913 }"
torrent="{ 51413,49152:65535,5650:5670 }"
vpn="{ 1983, 1423 }"
ftp="{ 20,21,30000:65000 }"
udp_services="{ 53,123 }"
icmp_types="{echoreq, unreach}"

########## CONTROL PF ##########
#set block-policy return  ## сбрасываем соединение вежливо
set timeout { frag 10, tcp.established 3600 } # Изменяем время для состояния установленного tcp соединения, которое по-умолчанию чересчур большое (24часа).
set block-policy drop  ## сбрасываем соединение грубо
set skip on lo0  ## полностью пропускаем проверку на петле
set skip on $int_if  ## полностью пропускаем проверку на интерфейсе
#set skip on $vpn_if
set loginterface $ext_if
set optimization normal

########## PF_tables ##########
table <white_list> persist { 1.2.3.4 }

### bloc tables ###
table <full_dos> persist file "/etc/pftables/full_dos"
table <ca.zone> persist file "/etc/pftables/ca.zone"
table <cn.zone> persist file "/etc/pftables/cn.zone"
table <de.zone> persist file "/etc/pftables/de.zone"
table <fr.zone> persist file "/etc/pftables/fr.zone"
table <ua.zone> persist file "/etc/pftables/ua.zone"
table <ip.bloc> persist file "/etc/pftables/ip.bloc"
table <ddos> persist file "/etc/pftables/ddos"
table <ssh> persist file "/etc/pftables/ssh"

##########
scrub in all  ## нормализуем все входящие пакеты на всех интерфейсах
scrub on $ext_if all reassemble tcp

########## NAT ##########
nat on $ext_if inet from $lannet to any -> ($ext_if) (Уже открыл всё полностью в lan)

nat on $ext_if inet from $int_ip to any -> ($ext_if)
nat on $ext_if inet from <full_dos> to any -> ($ext_if)
nat on $ext_if inet from 192.168.1.250 to any port $www -> ($ext_if)
nat on $ext_if inet from 192.168.1.1 to any port $ftp -> ($ext_if)
nat on $ext_if inet proto {tcp,udp} from 192.168.1.4 to any port $stim -> ($ext_if)
nat on $ext_if inet proto tcp from $lannet to any port $www -> ($ext_if)
nat on $ext_if inet proto tcp from $lannet to any port $mail -> ($ext_if)
nat on $ext_if inet proto tcp from $lannet to any port $rdp -> ($ext_if)
nat on $ext_if inet proto udp from $lannet to any port $udp_services -> ($ext_if)
nat log on $ext_if inet proto icmp from $lannet to any -> ($ext_if)

########## redirect ##########
rdr on $ext_if proto tcp from any to ($ext_if) port $rdp -> 192.168.1.4 port 3389 ## win7
rdr on $ext_if proto tcp from any to ($ext_if) port 52091 -> 192.168.1.4 port 2091 # rms

########## filters ##########
antispoof log quick for { lo0, $int_if, $ext_if }

########## Правела блокировки ##########
block in log all
block out all
block in quick on $ext_if from <ip.bloc> to ($ext_if)
block in quick on $ext_if from <ca.zone> to ($ext_if)
block in quick on $ext_if from <cn.zone> to ($ext_if)
block in quick on $ext_if from <de.zone> to ($ext_if)
block in quick on $ext_if from <fr.zone> to ($ext_if)
block in quick on $ext_if from <ua.zone> to ($ext_if)
block in quick on $ext_if from <us.zone> to ($ext_if)
block drop in log quick on $ext_if from <ddos> to any
block drop in log quick on $ext_if from <ssh> to any

pass out quick on $ext_if from ($ext_if) to any

pass quick on lo0 all ## разрешаем петлю
pass quick on $ext_if from <white_list> to ($ext_if) keep state

########## Разрешаем открытые порты на внешнем интерфейсе ##########
pass in on $ext_if proto tcp from any to ($ext_if) port $www synproxy state  ## чистим траф www от SYN flood
pass in on $ext_if proto tcp to ($ext_if) port $www flags S/SA keep state \(max-src-conn 60, max-src-conn-rate 10/2, overload <ddos> flush) ## www режим тех кто превысил лимиты и ложим в таблицу
pass in on $ext_if proto tcp to ($ext_if) port $ssh flags S/SA keep state \(max-src-conn 5, max-src-conn-rate 10/5, overload <ssh> flush global)
pass in on $ext_if proto tcp to ($ext_if) port $rdp flags S/SA keep state \(max-src-conn 1, max-src-conn-rate 5/20, overload <ddos> flush global)
pass in on $ext_if proto tcp to ($ext_if) port $ftp flags S/SA keep state \(max-src-conn 1, max-src-conn-rate 5/20, overload <ddos> flush global)
pass in on $ext_if proto udp to ($ext_if) port $vpn keep state \(max-src-conn 1, max-src-conn-rate 5/20, overload <ddos> flush global)
pass in on $ext_if proto tcp to ($ext_if) port $mail flags S/SA keep state \(max-src-conn 50, max-src-conn-rate 8/60, overload <ddos> flush global)
pass in on $ext_if proto tcp to ($ext_if) port $stim flags S/SA keep state \(max-src-conn 50, max-src-conn-rate 8/60, overload <ddos> flush global)
pass in on $ext_if proto tcp to ($ext_if) port $torrent keep state \(max-src-conn 50, max-src-conn-rate 10/60, overload <ddos> flush global)

########## Разрешаем исходящие порты ##########
pass in quick on $ext_if inet proto tcp from <white_list> to 192.168.1.254 port 22 # kvm
pass in quick on $ext_if inet proto tcp from any to 192.168.1.4 port 3389 # win7
pass in quick on $ext_if inet proto tcp from any to any port $ftp # ftp

pass log inet proto icmp all icmp-type $icmp_types
pass in quick on $ext_if inet proto {tcp, udp, icmp} all keep state (Тоже открыл всё)
Подскажите в чом я неправ. Ради эксперимента поднимал вм в качестве шлюза на ubuntu. Всё работает интернет есть везде. :st:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/