URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 82884
[ Назад ]

Исходное сообщение
"(qemu)Проблема с выходом гостевой ОС в Интернет"

Отправлено whitebear , 16-Ноя-08 13:45 
Имеется домашняя машина под FreeBSD 7.0-RELEASE
На ней стоит эмулятор qemu и в качестве гостевой ос запущена Windows XP.
Вообщем я хочу чтобы Windows XP выходила в интеренет через FreeBSD... для этого задействовал ipnat.
Я поключён к интернет через VPN(mpd)
В качестве интерфейса взаимодействия с гостевой ОС используется tap0.
Проблема состоит в том, что гостевая ОС не может ходить по интеренет, а ходит только по локальной сети!!!

Запуск qemu:
qemu -hda winxp.raw \
        -m 512 \
        -boot c \
        -localtime \
       -net nic \
       -net tap

Конфиг запуска сети qemu-ifup:
#!/bin/sh
/usr/local/bin/sudo /sbin/ifconfig $1 192.168.7.1
exec true

Настройки гостевой ОС:
192.168.7.7
ip gw 192.168.7.1
dns: 10.1.1.1 #днс прова

Настройки ipnat:
#ipnat -l
List of active MAP/Redirect filters:
map nfe0 from 192.168.7.0/24 to any -> 10.2.7.6/32

Собственно ifconfig FreeBSD(nfe - интерфейс "железной" карты, ng - vpn(mpd)):
(link#2)nfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:1d:60:7d:de:65
        inet 10.2.7.6 netmask 0xffffff00 broadcast 10.2.7.255
        media: Ethernet autoselect (100baseTX <full-duplex,flag0,flag1>)
        status: active
(link#4)tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:bd:1f:1d:00:00
        inet 192.168.7.1 netmask 0xffffff00 broadcast 192.168.7.255
        Opened by PID 15058
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1370
        inet 172.18.5.69 --> 172.16.1.4 netmask 0xffffffff

#netstat -rn
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            172.16.1.4         UGS         0     7966    ng0
10.0.0.0/8         10.2.7.1           UGS         0   118008   nfe0 - внутренние сети прова и основной шлюз
10.2.7.0/24        link#2             UC          0        0   nfe0
10.2.7.1           00:30:48:92:d7:b7  UHLW        3        4   nfe0    921
127.0.0.1          127.0.0.1          UH          0        0    lo0
172.16.1.4         172.18.5.69        UH          1        0    ng0 - vpn соединение
172.18.5.69        lo0                UHS         0        0    lo0
192.168.7.0/24     link#4             UC          0        0   tap0 - интерфейс для виртуальной машины
192.168.7.7        52:54:00:12:34:56  UHLW        1       16   tap0    599

Проблема в том, что я незнаю как мне пустить трафик к интернету через ng(VPN)
Однако по локальной сети гостевая ОС лазает отлично!


Содержание

Сообщения в этом обсуждении
"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено Square , 16-Ноя-08 14:13 
в rc.conf добавить gateway_enable="YES"



"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено whitebear , 16-Ноя-08 14:47 
>в rc.conf добавить gateway_enable="YES"

Да всё это есть. И net.inet.ip.forwarding=1 и Gateway
И пакеты натятся в домашнюю сеть.
А вот в интернет идти не хочет. (


"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено tux2002 , 16-Ноя-08 14:59 

>map nfe0 from 192.168.7.0/24 to any -> 10.2.7.6/32

    Opened by PID 15058


>
>ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1370
>        inet 172.18.5.69 --> 172.16.1.4 netmask 0xffffffff

Я не большой знаток BSD, но эти строки как то не вяжутся. Натите в локалку, хотя этого не надо делать, и не натите в интернет :?).


"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено tux2002 , 16-Ноя-08 15:05 
Вдогонку, на default gw сети 10 надо прописать маршрут к 192.168.7 через ваш интерфейс 10.2.7.6 (Если вы конечно имеете доступ).


"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено tux2002 , 16-Ноя-08 15:08 
Или два правила для нат. destination 10.2.7 через 10.2.7.6, остальное через 172.18.5.69


"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено whitebear , 16-Ноя-08 15:28 
>Или два правила для нат. destination 10.2.7 через 10.2.7.6, остальное через 172.18.5.69

О СПАСИБО! ;)))
Действительно прокатило!
Добавил правило для ipnat.rules:
map ng0 from 192.168.7.0/24 to any -> 172.18.5.69/32


"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено tux2002 , 17-Ноя-08 09:49 
>>Или два правила для нат. destination 10.2.7 через 10.2.7.6, остальное через 172.18.5.69
>
>О СПАСИБО! ;)))
>Действительно прокатило!
>Добавил правило для ipnat.rules:
>map ng0 from 192.168.7.0/24 to any -> 172.18.5.69/32

Мда, у Вас оказалось ещё проще, за счёт того что SNAT выполняется после routing.
Хотя в Linux тоже самое.


"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено tux2002 , 17-Ноя-08 11:32 
Скажите, во FreeBSD tap интерфейс может поднимать непривелегированный пользователь?

"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено whitebear , 17-Ноя-08 17:13 
>Скажите, во FreeBSD tap интерфейс может поднимать непривелегированный пользователь?

У меня стоит net.link.tap.user_open=1
Хотя без sudo не поднимается... (((

$> ifconfig tap0 192.168.7.1
ifconfig: ioctl (SIOCAIFADDR): permission denied


"(qemu)Проблема с выходом гостевой ОС в Интернет"
Отправлено Панда , 17-Ноя-08 11:42 
>[оверквотинг удален]
>     0      
>  0   tap0 - интерфейс для виртуальной машины
>
>192.168.7.7        52:54:00:12:34:56  UHLW  
>      1    
>  16   tap0    599
>
>Проблема в том, что я незнаю как мне пустить трафик к интернету
>через ng(VPN)
>Однако по локальной сети гостевая ОС лазает отлично!

http://www.unix.lviv.ua/content/view/38/27/
Там есть раздел сеть