adsl club

Справочник

Форум

Программы

Фильмы

Ресурсы

Файлообмен

Хостинг

Ростелеком
VirtualBox и локалка
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)*NIX OS
Автор Сообщение
ProFfeSsoRr
Гуру
СообщениеДобавлено: Пт 18-07-08 : 19-49    Заголовок сообщения: VirtualBox и локалка Ответить с цитатой

Надо для виртуальной ХР, висящей на хост-машине с Ubuntu, выйти в локалку (eth1). Нашел мануал: http://samiux.wordpress.com/2007/07/11/bridge-network-interface-on-virtualbox/ попробовал по нему, вроде заработало. А о том, что после перезагрузки настройки слетят я забыл. И вчера линукс перегрузил. И теперь вот незадачка: не могу вспомнить что я сделал помимо инструкции, чтобы локалка заработала! Делаю такие команды (разумеется от рута):
1) tunctl -t tap1 -u evv
2) brctl addbr br0
3) ifconfig eth1 0.0.0.0 promisc
4) brctl addif br0 eth1
5) ifconfig br0 192.168.0.9
6) brctl addif br0 tap1
7) ifconfig tap1 up
8) chmod 0666 /dev/net/tun
Но когда делаю команду №4 локальные компьютеры с сервером перестают видеть друг друга. Где собака зарыта?
P.S. И подскажите пожалуйста, как сделать, чтобы все эти действия при старте системы выполнялись?
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
zir
Форумчанин
СообщениеДобавлено: Сб 19-07-08 : 15-27    Заголовок сообщения: Ответить с цитатой

Цитата:
Но когда делаю команду №4 локальные компьютеры с сервером перестают видеть друг друга. Где собака зарыта?

Странно, что не после команды №3 (ведь локалка общается с сервером, используя его адрес 192.168.0.9?)
А после команды №5 локалка и сервер друг друга видят?
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Сб 19-07-08 : 23-21    Заголовок сообщения: Ответить с цитатой

Цитата:
ведь локалка общается с сервером, используя его адрес 192.168.0.9?
вообще-то .0.9 адрес br0 соединения. У сервера .0.1 А что после команды 3? Она ничего страшного не делает, просто включает promisc. После команды №4 и до перезагрузки машины либо удаления интерфейсов сервер из локалки выпадает.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
zir
Форумчанин
СообщениеДобавлено: Вс 20-07-08 : 01-33    Заголовок сообщения: Ответить с цитатой

Команда 3 не только включает promisc, но и удаляет IP-адрес с интерфейса.

Что-то я не понял, исходная схема какая?
На eth1 адрес .0.1, и он смотрит в локалку (воткнут в свич/хаб)?
Если так, то, по идее, надо присвоить интерфейсу br0 адрес .0.1.
Код:

br0 (192.168.0.1)
  |
  |__eth1 (no IP)
  |__tap1 (no IP)

Кстати, promisc включать не обязательно (само включится, когда в мост добавишь), можно оставить "ifconfig eth1 0.0.0.0".

На тему мостов в Линухе: http://www.linuxfoundation.org/en/Net:Bridge
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Вс 20-07-08 : 12-08    Заголовок сообщения: Ответить с цитатой

Цитата:
На eth1 адрес .0.1, и он смотрит в локалку (воткнут в свич/хаб)?
именно так. Попробовал присвоить бриджу адрес .0.1 - все равно локалка отваливается. Вообще, непонятно немножко с этими адресами - зачем где-то сбрасывать, где-то ставить... Точнее - где именно нужно (и зачем?) убирать адрес, а где обязательно адрес нужно добавить?
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
zir
Форумчанин
СообщениеДобавлено: Вс 20-07-08 : 18-57    Заголовок сообщения: Ответить с цитатой

Цитата:
Попробовал присвоить бриджу адрес .0.1 - все равно локалка отваливается.

Вроде не должна отваливаться. А фильтрации в iptables по интерфейсу (-i, -o) или по MAC-адресу случайно нет?

Цитата:
Вообще, непонятно немножко с этими адресами - зачем где-то сбрасывать, где-то ставить... Точнее - где именно нужно (и зачем?) убирать адрес, а где обязательно адрес нужно добавить?

Вопрос сначала показался несложным, но обнаружилось, что я на самом деле не знаю, почему мост обычно настраивают так, как я описал в предыдущем посте... Embarassed
Попробовал разобраться, и вот что получилось.

Допустим, все адреса принадлежат одной подсети (192.168.0.0), и адреса сервера, и адрес виртуального хоста, и локалка. Если это не так, то сервер является маршрутизатором, и тогда зачем нам вообще мост?

1. Если достаточно обеспечить связь между локалкой и виртуальным хостом, то IP-адреса вообще не нужны, ни на br0, ни на eth1, ни на tap1.

2. Все проблемы решает единственный адрес на br0 (все видят всех).

3. Перейдём к извращениям. Пусть схема такая.
Код:

br0 (no IP)
  |
  |__eth1 (192.168.0.1)
  |__tap1 (no IP)

Например, сервер хочет пропинговать виртуальную XP. Он посмотрит в таблицу маршрутизации — ага, надо отправлять через eth1, — и отправит ICMP Echo (ну, сначала ARP-запрос) через eth1, минуя br0. Естественно, до XP этот пакет не дойдёт.

Следует вывод, что IP-адреса только на одном из "субинтерфейсов" бриджа недостаточно.

Если на сервере есть несколько интерфейсов с адресами из одной и той же подсети, то через какой интерфейс он будет отправлять локально генерируемые пакеты? Если не ошибаюсь, то, если есть несколько маршрутов к одной и той же подсети, выбирается маршрут с наибольшим приоритетом, или, если приоритеты одинаковые (а по умолчанию это так), то маршрут, добавленный в таблицу маршрутизации первым.
Если это на самом деле так, то получается, что нельзя иметь адреса на двух субинтерфейсах сразу (будет использоваться только один); а если есть адрес на субинтерфейсе (-ах) и на br0, то надо сделать так, чтобы всегда использовался только br0. Как минимум, это неудобно.

Если IP-адрес задан на субинтерфейсе, то возникает ещё такая проблемка: пакеты, генерируемые сервером, уходят через субинтерфейс, но ответные пакеты будут передаваться сетевому уровню стека через br0.
По-моему, тогда может сработать RPF, reverse path filtering (маршрут до отправителя пакета, например до компа в локалке, проходит через eth1, т.е., не через тот интерфейс, через который пакет был принят — br0; это подозрительно, поэтому пакет отбрасывается).
Правда, это можно попытаться обойти:
вариант 1 — отключить RPF через sysctl;
вариант 2 — с помощью ebtables/arptables создать правило типа "не пропускать пакеты через br0, а сразу отдавать сетевому уровню через eth1".

Не знаю, какие ещё грабли могут возникнуть, кроме перечисленных.
В общем, надо юзать п. 2.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
zir
Форумчанин
СообщениеДобавлено: Вс 20-07-08 : 19-01    Заголовок сообщения: Ответить с цитатой

А, да, есть ещё патч ядра by Julian Anastasov "IP Mode for Linux Bridging" — тоже что-то на тему адресов на субинтерфейсах.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
akirill
Продвинутый форумчанин
СообщениеДобавлено: Вс 20-07-08 : 20-32    Заголовок сообщения: Re: VirtualBox и локалка Ответить с цитатой

ProFfeSsoRr писал(а):


Под линуксом не делал, но под виндой 100 раз, вот схема (может поможет) :

1) комп сетевуха
2) комп (виртБокс Хост-интерфейс)
3) объединяем 1 и 2 в мост даем ип 192.168.1.2 (это ип компа)
4) виртБокс винда даем ип 192.168.1.3 (это ип ос в виртуал боксе)
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение Посетить сайт автора  
ProFfeSsoRr
Гуру
СообщениеДобавлено: Вс 20-07-08 : 21-06    Заголовок сообщения: Ответить с цитатой

Цитата:
но под виндой 100 раз
что, это еще и под виндой так делается? Теперь я понимаю, почему vmware workstation стоит столько денег: там просто ставишь переключатель в bridged network и все. Сеть уже есть.
Цитата:
В общем, надо юзать п. 2.
поюзал. Результат как и прежде нулевой
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
zir
Форумчанин
СообщениеДобавлено: Пн 21-07-08 : 00-36    Заголовок сообщения: Ответить с цитатой

А XP кого-нибудь видит?

Можно посмотреть вот это?
Код:
# brctl show ANY
# ip addr ls (или ifconfig)
# ip ro ls (или route -n)

dmesg ничего интересного не показывает?

Может, вот так сделать?
Цитата:
No traffic gets trough (except ARP and STP)

Your kernel might have ethernet filtering (ebtables, bridge-nf, arptables) enabled, and traffic gets filtered. The easiest way to disable this is to go to /proc/sys/net/bridge. Check if the bridge-nf-* entries in there are set to 1; in that case, set them to zero and try again.

Код:
 # cd /proc/sys/net/bridge
 # ls
 bridge-nf-call-arptables  bridge-nf-call-iptables
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged
 # for f in bridge-nf-*; do echo 0 > $f; done



Ещё есть такая фишка, что после того, как интерфейс добавлен в бридж и поднят, проходит 15 с, прежде чем он начинает передавать трафик (если не сделать предварительно "brctl setfd br0 0") — на всякий случай напоминаю Smile
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Пн 21-07-08 : 21-30    Заголовок сообщения: Ответить с цитатой

Может я что-то упустил. Итак: ifconfig:
Код:
br0       Link encap:Ethernet  HWaddr 00:11:95:fc:70:63
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:66 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:7790 (7.6 KB)  TX bytes:126 (126.0 B)

eth0      Link encap:Ethernet  HWaddr 00:1a:4d:5a:12:9b
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:51114787 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61605656 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3627587320 (3.3 GB)  TX bytes:3870390113 (3.6 GB)
          Interrupt:219 Base address:0x6000

eth1      Link encap:Ethernet  HWaddr 00:11:95:fc:70:63
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:26568462 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61456524 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:287105372 (273.8 MB)  TX bytes:3989543498 (3.7 GB)
          Interrupt:18 Base address:0x4000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:29961 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29961 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3737016 (3.5 MB)  TX bytes:3737016 (3.5 MB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:90.189.142.25  P-t-P:213.228.116.7  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:1747228 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2130589 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:421360878 (401.8 MB)  TX bytes:2741276566 (2.5 GB)

tap1      Link encap:Ethernet  HWaddr 00:ff:ba:d7:ec:bc
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:58 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:2 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:8218 (8.0 KB)  TX bytes:42 (42.0 B)


route:
Код:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
nsk-bbar1.ncc.s *               255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 br0
default         *               0.0.0.0         U     0      0        0 ppp0


И скриптик, которым я запускаю/останавливаю туннель и прочее:
Код:
#!/bin/sh
case $1 in
   start)
      tunctl -t tap1 -u dom
      chmod 0666 /dev/net/tun
      brctl addbr br0
      #brctl setfd br0 0 не помогло и решил пока отключить
      ifconfig eth1 inet 0.0.0.0 promisc
      brctl addif br0 eth1
      ifconfig br0 192.168.0.1 up
      brctl addif br0 tap1
      ifconfig tap1 up
   ;;
   stop)
      ifconfig br0 down
      brctl delbr br0
      ifconfig tap1 down
      tunctl -d tap1
      ifconfig eth1 down
      ifconfig eth1 192.168.0.1 up
   ;;
esac

Что еще нахимичить можно я уж и не знаю даже Sad
Цитата:
А XP кого-нибудь видит?
Не-а, и ХР не видят, и ХР никого не видит Sad
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Чт 24-07-08 : 23-35    Заголовок сообщения: Ответить с цитатой

Покопался я на форуме убунты, и вообще в инете - народ говорит что все это как-то мутно и непонятно работает Sad Так что пока забил я с настройкой, буду ждать выхода Mint 5 KDE CE, ставить его на сервер и вот тогда уже любой ценой настраивать все, чтобы работало именно так, как мне нужно. А пока переживу (ибо ждать мне около месяца, а может и меньше).
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
ProFfeSsoRr
Гуру
СообщениеДобавлено: Ср 30-07-08 : 00-01    Заголовок сообщения: Ответить с цитатой

Н-дя, проблему я решил достаточно тривиально: поставил vmware server. Он также бесплатен, как и VirtualBox, но работает постабильнее, и побыстрее. И с сетью никаких проблем: при установке программы соглашаешься на создание соединения бриджом, выбираешь сеть, к которой мост пристыкуется, и все работает. Так же можно и NAT добавить, и еще какой-то режим, и несколько соединений создать... И все работает сразу же! Но у vmware server нет режима объединения хостового и гостевого рабочих столов. Но ничего, обойдусь, все равно эта функция не очень хорошо у меня работала.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
Показать сообщения:   
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)*NIX OS Часовой пояс: GMT + 7
Страница 1 из 1

 

 
Аватары: Вкл|Выкл   ЮзерИнфо: Вкл|Выкл   Подписи: Вкл|Выкл
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы