Страница 1 из 1

В который раз про jail, samba и broadcast

Добавлено: 2014-02-26 18:58:08
SiAl
Все пишут что samba может работать в jail-е, но я так и не нашел рабочего решения с nmbd и броадкастами. Может есть какой обход запретов клеток на broadcast, может через прокси кто делает, может есть какой не samba-сервер что может быть master-browserом, но что то гугль не выдал результат. На сервере с IP 192.168.0.5 клетка с IP 192.168.0.2 Если IP клетки прописывать 192.168.0.2/24 чтобы броадкаст для нее был 192.168.0.255, то наблюдается видимость HOMENAS в сетевом окружении WINDOWS, но без явного запроса соответствия имени и IP посредством nbtstat -a 192.168.0.2 выдается "не найден сетевой путь". Если есть ссылка на решение, буду премного благодарен, ниже привожу свои пункты, которые влияют на самбу в клетке.
FreeBSD 10.0-RELEASE
samba36-3.6.22
ifconfig lagg0 |grep inet
inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255

/etc/jail.conf
homenas {\
...
host.hostname = "homenas.kosyachenko.ru";
#host.hostname = "homenas";
interface = lagg0;
#ip4.addr = 192.168.0.2;
ip4.addr = 192.168.0.2/24;
...
/usr/local/etc/smb.conf
...
interfaces = lagg0
bind interfaces only = yes
nmbd bind explicit broadcast = no
...
nbtstat -a 192.168.0.2
Адрес IP узла: [192.168.0.10] Код области: []

Таблица NetBIOS-имен удаленных компьютеров

Имя Тип Состояние
----------------------------------------------------
HOMENAS <00> Уникальный Зарегистрирован
HOMENAS <03> Уникальный Зарегистрирован
HOMENAS <20> Уникальный Зарегистрирован
HOME <1E> Группа Зарегистрирован
HOME <00> Группа Зарегистрирован

Адрес платы (MAC) = 00-00-00-00-00-00

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-02-27 14:47:24
guest
SiAl писал(а):Все пишут что samba может работать в jail-е, но я так и не нашел рабочего решения с nmbd и броадкастами. Может есть какой обход запретов клеток на broadcast, может через прокси кто делает, может есть какой не samba-сервер что может быть master-browserом, но что то гугль не выдал результат. На сервере с IP 192.168.0.5 клетка с IP 192.168.0.2 Если IP клетки прописывать 192.168.0.2/24 чтобы броадкаст для нее был 192.168.0.255, то наблюдается видимость HOMENAS в сетевом окружении WINDOWS, но без явного запроса соответствия имени и IP посредством nbtstat -a 192.168.0.2 выдается "не найден сетевой путь". Если есть ссылка на решение, буду премного благодарен, ниже привожу свои пункты, которые влияют на самбу в клетке.

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

FreeBSD 10.0-RELEASE
samba36-3.6.22
ifconfig lagg0 |grep inet
        inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255

/etc/jail.conf
	homenas {\
		...
		host.hostname = "homenas.kosyachenko.ru";
		#host.hostname = "homenas";
		interface = lagg0;
		#ip4.addr = 192.168.0.2;
		ip4.addr = 192.168.0.2/24;
Если у Вас интерфейс lagg0 и на нем несколько ip из одной сети, один основной, остальные через алиасы из той же сети
с маской /32.

ifconfig_lagg0_alias0="inet 192.168.0.2 netmask 255.255.255.255"
ну и в jail соответственно только ip без маски.

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-02-28 12:34:18
SiAl
guest писал(а): Если у Вас интерфейс lagg0 и на нем несколько ip из одной сети, один основной, остальные через алиасы из той же сети
с маской /32.

ifconfig_lagg0_alias0="inet 192.168.0.2 netmask 255.255.255.255"
ну и в jail соответственно только ip без маски.
Как вы пишете делать - так ессно правильно, но тогда теряется видимость сервера в домашней группе. Какие то броадкасты Шредингера - вроде как они есть и вроде как их нет. Логично предположить, что когда в клетке шиковещательный адрес 192.168.0.255 - то видимо через loopback из клетки всеж таки выход идет, а вот обратная процедура не проходит. И опять же аналогичная ситуация с мультикастами - plex DLNA из jail-а не пашет. Хоть опять же народ пишет, что на freenas и на nas4free народ успешно поднимает в клетках, а они на основе FreeBSD.

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-02-28 16:08:50
guest
SiAl писал(а):
guest писал(а): Если у Вас интерфейс lagg0 и на нем несколько ip из одной сети, один основной, остальные через алиасы из той же сети
с маской /32.

ifconfig_lagg0_alias0="inet 192.168.0.2 netmask 255.255.255.255"
ну и в jail соответственно только ip без маски.
Как вы пишете делать - так ессно правильно, но тогда теряется видимость сервера в домашней группе. Какие то броадкасты Шредингера - вроде как они есть и вроде как их нет. Логично предположить, что когда в клетке шиковещательный адрес 192.168.0.255 - то видимо через loopback из клетки всеж таки выход идет, а вот обратная процедура не проходит. И опять же аналогичная ситуация с мультикастами - plex DLNA из jail-а не пашет. Хоть опять же народ пишет, что на freenas и на nas4free народ успешно поднимает в клетках, а они на основе FreeBSD.
Вы представляете себе что такое роутинг, default gateway, как привязывать несколько ip на один интерфейс и какая маска
должна быть у всех что из одной подсети, за исключением одного?
Ну и не забываем про firewall для :

# grep netbios /etc/services
# grep microsoft /etc/services

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-02-28 21:52:40
SiAl
guest писал(а): Вы представляете себе что такое роутинг, default gateway, как привязывать несколько ip на один интерфейс и какая маска
должна быть у всех что из одной подсети, за исключением одного?
Ну и не забываем про firewall для :

# grep netbios /etc/services
# grep microsoft /etc/services
Ответ:
sockstat -4L | grep -E smbd\|nmbd
root smbd 78333 26 tcp4 192.168.0.2:445 *:*
root smbd 78333 27 tcp4 192.168.0.2:139 *:*
root nmbd 78330 9 udp4 192.168.0.2:137 *:*
root nmbd 78330 10 udp4 192.168.0.2:138 *:*
root nmbd 78330 11 udp4 192.168.0.2:137 *:*
root nmbd 78330 12 udp4 192.168.0.2:138 *:*
Ток вернусь к вопросу - мне важен широковещательный трафик в клетке на вход и выход. Броадкаст шлется на 255, причем всегда )) Если делать как "надо"
ifconfig lagg0 | grep -i broadcast
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255
inet 192.168.0.2 netmask 0xffffffff broadcast 192.168.0.2
то куда они в клетке пойдут?
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
Так хоть на выход пашет, ток не понятно что мешает и на вход отрабатывать?
Нигде не могу найти подробного описания работы во FreeBSD сетевого стека через loopback в клетке. На чем основано собсно ограничение работы сети в jail-е? Мне безопасность там совершенно не требуется, если есть возможность снять данное ограничение - подскажите! И про firewall - эт совсем лишнее, на данной конфигурации его не будет.

На счет сборок NAS на ядре BSD - разобрался, там используется VirtIO. На десятке ядро изначально с поддержкой, но jail как понимаю так и не доделали для его поддержки при автозапуске. т.е. морока bridge->epair остается? Не хотелось городить "лишние" сетевые интерфейсы, тогда уж наверно лучше смотреть в сторону опять же включенного в 10-ку BHyVe - ток вот не могу по нему ничегошеньки найти. Как запустить еще можно найти на оф сайте а вот как с ним работать, автозапуск, мониторинг и прочее? Где искать полноценные доки по FreeBSD, если офф сайт не содержит искомой информации?

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-02 14:00:38
guest
Ну давайте попробуем разобраться...

1. во FreeBSD не работает multihome как в Solaris или как в Linux, традиционный BSD TCP/IP стек с default routing

если у нас несколько ip из одной сети на одном интерфейсе: iface
имеем, например:

iface - интерфейс (em,re, rl и тд и тп)
iface -> bind ip default, ну например 192.168.1.1 -> он же default gateway (объяснять что есть default gw не буду, это понятно)
хотим использовать еще несколько ip из той же сети 192.168.1.0: 192.168.1.[10,11,12]
создаем алиасы:
ifconfig_iface_alias0="inet 192.168.1.10/32"
ifconfig_iface_alias1="inet 192.168.1.11/32"
and etc...
почему маска 32, потому что из одной сети и через один default (нет во FreeBSD ни метрики, ни multihome)!

Допустим к нам идут пакеты (входящие) на адрес 192.168.1.10 - все хорошо и мы их получАем на этот адрес, а вот исходящие,
обратно или взад, пойдут через default gateway через интерфейс iface. Ибо, как было сказано выше, multihome во FreeBSD
не поддерживается. Посему, если на алиасе будет маска /24, получим кашу в таблицах маршрутизации ядра и свитчи могут
сдуреть. (входящие на один ip, исходящие с другого ip/mac)

Одну ситуацию в первом приближении рассмотрели.

2. Теперь рассмотрим ТРАДИЦИОННУЮ реализацию JAIL:

- jail машины не имеют собственно стека и ethernet, а используют TCP/IP стек ХОСТ машины, значит ни loopback, ни ethernet
не имеют и listen 127.0.0.1 или 0.0.0.0 не могут, broadcasting не могут.

Что делать в этом случае, выходов два:

1) использовать Jail с VIMAGE: виртуальный стек и виртуальные ethernet, начиная с 8.4/9.2 и в 10.0 основа /etc/jail.conf,
в /etc/rc.conf минимум необходимый для старта jail через /etc/rc.d/jail.
Для использования по старинке есть порт sysutils/jail2, для jail+vnet(vimage), лучше всего подходит скрипт
vimage от Devin Teske:
http://druidbsd.sourceforge.net/vimage.shtml
но для 9.2/10 его нужно подправить под запуск с передаваемыми параметрами.

2) использовать традиционный JAIL без netbios name resolution - это означает что samba будет работать внутри jail,
но без бродкастов, без name resolution если она master - я так себе это понимаю, но по \ip\resource или \dns_name\resource
соединиться и монтировать можно.
Для этого нужно в smb.conf:

interfaces = ip/32 (если jail через alias)
bind interfaces only = yes

никаких lagg0/lo0 в interface кроме ip/mask быть не должно -> man smb.conf на предмет bind interfaces only

ps. И кстати, при таком подходе, nmbd по идее должен запускаться.
pps. К сожалению верхнее с традиционным JAIL проверить не могу ибо использую JAIL+VNET(vimage) и проблем не имею, но должно работать,
будет время попробую верхнее в традиционной реализации jail.

На простом языке как то так.

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-02 19:05:35
guest
Ну вот пример с традиционным jailv2 под 10.0

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

              +-- win7
homerouter <->|
              +-- freebsd:192.168.1.2 <-> jail:192.168.1.13
host:

- интерфейсы

#  ifconfig -a
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether 20:cf:30:af:d4:97
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
#

- маршрутизация

#  netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGS         0    12574    re0
127.0.0.1          link#2             UH          0        4    lo0
192.168.1.0/24     link#1             U           0       32    re0
192.168.1.2        link#1             UHS         0        0    lo0

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::/96                             ::1                           UGRS        lo0
::1                               link#2                        UH          lo0
::ffff:0.0.0.0/96                 ::1                           UGRS        lo0
fe80::/10                         ::1                           UGRS        lo0
fe80::%lo0/64                     link#2                        U           lo0
fe80::1%lo0                       link#2                        UHS         lo0
ff01::%lo0/32                     ::1                           U           lo0
ff02::/16                         ::1                           UGRS        lo0
ff02::%lo0/32                     ::1                           U           lo0
#

- конфигурация традиционных клеток/jails:

# cat /etc/jail.conf
samba {
        allow.mount.devfs;
        allow.set_hostname;
        allow.raw_sockets;

        exec.consolelog =  "/var/log/samba_jail.log";
        devfs_ruleset   =  "4";
        host.hostname   = "samba.lan.domain.ru";
        path = /pub/jails/samba;
        mount.devfs;
        persist;
        interface = "re0";
        ip4.addr = 192.168.1.13/32;
        exec.start = "/bin/sh /etc/rc";
        exec.stop = "/bin/sh /etc/rc.shutdown";
}
#


- конфигурация jail-машины samba

# cat /pub/jails/samba/etc/rc.conf 

sshd_enable="YES"
sendmail_enable="NONE"
syslogd_flags="-ss"
rpcbind_enable="NO"
network_interfaces=""
#
samba_enable="YES"

#  grep Listen /pub/jails/samba/etc/ssh/sshd_config 
ListenAddress 192.168.1.13
#ListenAddress 0.0.0.0
#ListenAddress ::

# cat /pub/jails/samba/usr/local/etc/smb.conf
[global]

   workgroup = MEHOME
   server string = JAILSMB
   netbios name = JAIL_SAMBA

   security = user
   load printers = no

   log file = /var/log/samba/log.%m
   max log size = 1000
# auth
  passdb backend = tdbsam
;   passdb backend = tdbsam, smbpasswd
   guest account = nobody
   encrypt passwords = yes
   unix password sync = no
   map to guest = bad user

   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   interfaces = 192.168.1.13/32
   bind interfaces only = yes

   local master = no
   dns proxy = no

   time server = no
   preserve case = yes
   short preserve case = yes
   browseable = yes
   browse list = yes

#== share ==
[wwwtest]
   comment = JailSamba10
   path = /usr/local/www
   public = yes
   read only = yes
   writable = yes
   only guest = yes
   guest ok = yes
   available = yes
   browseable = yes
   printable = no

- chown для шары
root@samba:~ # ls -la /usr/local/www/
total 16
drwxr-xr-x   3 root    wheel    512 Mar  2 14:15 .
drwxr-xr-x  14 root    wheel    512 Mar  2 13:01 ..
drwxr-xr-x   2 nobody  nobody   512 Mar  2 14:20 guest
-rw-r--r--   1 root    wheel   1325 Mar  2 13:22 metest
root@samba:~ # 

#  jail -c samba
samba: created
#  jls
   JID  IP Address      Hostname                      Path
     1  192.168.1.13    samba.lan.domain.ru            /pub/jails/samba
# jls -n
devfs_ruleset=4 nodying enforce_statfs=2 host=new ip4=new ip6=disable jid=1 linux=new name=samba parent=0 path=/pub/jails/samba persist securelevel=-1 vnet=inherit allow.nochflags allow.nomount allow.mount.devfs allow.mount.nonullfs allow.mount.noprocfs allow.mount.notmpfs allow.mount.nozfs allow.noquotas allow.raw_sockets allow.set_hostname allow.nosocket_af allow.sysvipc children.cur=0 children.max=0 cpuset.id=2 host.domainname="" host.hostid=0 host.hostname=samba.lan.domain.ru host.hostuuid=00000000-0000-0000-0000-000000000000 ip4.addr=192.168.1.13 ip4.saddrsel ip6.addr= ip6.saddrsel linux.osname=Linux linux.osrelease=2.6.16 linux.oss_version=198144
# ping -c 5 192.168.1.13
PING 192.168.1.13 (192.168.1.13): 56 data bytes
64 bytes from 192.168.1.13: icmp_seq=0 ttl=64 time=0.030 ms
64 bytes from 192.168.1.13: icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from 192.168.1.13: icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from 192.168.1.13: icmp_seq=3 ttl=64 time=0.024 ms
64 bytes from 192.168.1.13: icmp_seq=4 ttl=64 time=0.033 ms

--- 192.168.1.13 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.024/0.029/0.033/0.003 ms
#
- после запуска jail автоматом поднялся алиас в соответствии с конфигом

#  ifconfig re0
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether 20:cf:30:af:d4:97
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255 
        inet 192.168.1.13 netmask 0xffffffff broadcast 192.168.1.13 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
#

- маршрутизация

#  netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGS         0    12574    re0
127.0.0.1          link#2             UH          0        9    lo0
192.168.1.0/24     link#1             U           0       40    re0
192.168.1.2        link#1             UHS         0        0    lo0
192.168.1.13       link#1             UHS         0       23    lo0 =>
192.168.1.13/32    link#1             U           0        0    re0

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::/96                             ::1                           UGRS        lo0
::1                               link#2                        UH          lo0
::ffff:0.0.0.0/96                 ::1                           UGRS        lo0
fe80::/10                         ::1                           UGRS        lo0
fe80::%lo0/64                     link#2                        U           lo0
fe80::1%lo0                       link#2                        UHS         lo0
ff01::%lo0/32                     ::1                           U           lo0
ff02::/16                         ::1                           UGRS        lo0
ff02::%lo0/32                     ::1                           U           lo0

- заходим в jail-samba:

a) через jexec

 jexec 1 /bin/csh
csh: Не могу открыть /etc/termcap.
csh: using dumb terminal settings.
root@samba:/ # setenv TERMCAP /etc/termcap
root@samba:/ # 
root@samba:/ # ps axuww
USER   PID %CPU %MEM   VSZ  RSS TT  STAT STARTED    TIME COMMAND
root 19981  0,0  0,0 14424 1980  -  IsJ   3:36PM 0:00,00 /usr/sbin/syslogd -ss
root 20017  0,0  0,1 54304 4996  -  SsJ   3:36PM 0:00,00 /usr/local/sbin/nmbd -D -s /usr/local/etc/smb.conf
root 20020  0,0  0,1 64088 8088  -  IsJ   3:36PM 0:00,01 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
root 20059  0,0  0,1 64088 8112  -  IJ    3:36PM 0:00,00 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
root 20061  0,0  0,1 60816 6268  -  IsJ   3:36PM 0:00,00 /usr/sbin/sshd
root 20065  0,0  0,0 16520 2160  -  SsJ   3:36PM 0:00,00 /usr/sbin/cron -s
root 20097  0,0  0,0 25848 3604  1  SJ    3:40PM 0:00,01 /bin/csh
root 20101  0,0  0,0 16588 2028  1  R+J   3:41PM 0:00,00 ps axuww
root@samba:/ # sockstat
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
root     cron       20065 4  dgram  -> /var/run/logpriv
root     sshd       20061 3  tcp4   192.168.1.13:22       *:*
root     smbd       20020 26 tcp4   192.168.1.13:445      *:*
root     smbd       20020 27 tcp4   192.168.1.13:139      *:*
root     nmbd       20017 9  udp4   192.168.1.13:137      *:*
root     nmbd       20017 10 udp4   192.168.1.13:138      *:*
root     nmbd       20017 11 udp4   192.168.1.13:137      *:*
root     nmbd       20017 12 udp4   192.168.1.13:137      *:*
root     nmbd       20017 13 udp4   192.168.1.13:138      *:*
root     nmbd       20017 14 udp4   192.168.1.13:138      *:*
root     nmbd       20017 15 stream /var/run/samba/nmbd/unexpected
root     syslogd    19981 4  dgram  /var/run/log
root     syslogd    19981 5  dgram  /var/run/logpriv
root@samba:/ # exit

b) через ssh

#  slogin root@192.168.1.13
Password for root@samba.lan.domain.ru:
X11 forwarding request failed on channel 0
Last login: Sun Mar  2 12:41:09 2014 from 192.168.1.13
FreeBSD 10.0-RELEASE (VIM10R) #0: Mon Jan 20 18:40:38 MSK 2014

Welcome to FreeBSD!

Before seeking technical support, please use the following resources:

o  Security advisories and updated errata information for all releases are
   at http://www.FreeBSD.org/releases/ - always consult the ERRATA section
   for your release first as it's updated frequently.

o  The Handbook and FAQ documents are at http://www.FreeBSD.org/ and,
   along with the mailing lists, can be searched by going to
   http://www.FreeBSD.org/search/.  If the doc package has been installed
   (or fetched via pkg install lang-freebsd-doc, where lang is the
   2-letter language code, e.g. en), they are also available formatted
   in /usr/local/share/doc/freebsd.

If you still have a question or problem, please take the output of
`uname -a', along with any relevant error messages, and email it
as a question to the questions@FreeBSD.org mailing list.  If you are
unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
manual page.  If you are not familiar with manual pages, type `man man'.

Edit /etc/motd to change this login announcement.

root@samba:~ #  ps axuww 
USER   PID %CPU %MEM   VSZ  RSS TT  STAT STARTED    TIME COMMAND
root 19981  0.0  0.0 14424 1980  -  SsJ   3:36PM 0:00.00 /usr/sbin/syslogd -ss
root 20017  0.0  0.1 54304 5004  -  SsJ   3:36PM 0:00.01 /usr/local/sbin/nmbd -D -s /usr/local/etc/smb.conf
root 20020  0.0  0.1 64088 8088  -  IsJ   3:36PM 0:00.01 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
root 20059  0.0  0.1 64088 8112  -  IJ    3:36PM 0:00.00 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
root 20061  0.0  0.1 60816 6268  -  IsJ   3:36PM 0:00.00 /usr/sbin/sshd
root 20065  0.0  0.0 16520 2160  -  SsJ   3:36PM 0:00.00 /usr/sbin/cron -s
root 20106  0.0  0.1 86084 6860  -  SsJ   3:42PM 0:00.01 sshd: root@pts/3 (sshd)
root 20110  0.0  0.0 23492 3380  3  SsJ   3:42PM 0:00.01 -csh (csh)
root 20127  0.0  0.0 16588 2016  3  R+J   3:44PM 0:00.00 ps axuww
#  sockstat | grep mbd
root     smbd       20020 26 tcp4   192.168.1.13:445      *:*
root     smbd       20020 27 tcp4   192.168.1.13:139      *:*
root     nmbd       20017 9  udp4   192.168.1.13:137      *:*
root     nmbd       20017 10 udp4   192.168.1.13:138      *:*
root     nmbd       20017 11 udp4   192.168.1.13:137      *:*
root     nmbd       20017 12 udp4   192.168.1.13:137      *:*
root     nmbd       20017 13 udp4   192.168.1.13:138      *:*
root     nmbd       20017 14 udp4   192.168.1.13:138      *:*
root     nmbd       20017 15 stream /var/run/samba/nmbd/unexpected
root@samba:~ # 

- самба шаринг доступен из хоста и из windows, разумеется по ip (netbios names не будет работать, как выяснили ранее)
 
#  smbclient -L 192.168.1.13
Enter toor's password: 
Domain=[MEHOME] OS=[Unix] Server=[Samba 3.6.22]

        Sharename       Type      Comment
        ---------       ----      -------
        wwwtest         Disk      JailSamba10
        IPC$            IPC       IPC Service (JAILSMB)
Domain=[MEHOME] OS=[Unix] Server=[Samba 3.6.22]

        Server               Comment
        ---------            -------
        JAIL_SAMBA           JAILSMB

        Workgroup            Master
        ---------            -------
        MEHOME               
#  smbclient //192.168.1.13/wwwtest
Enter toor's password: 
Domain=[MEHOME] OS=[Unix] Server=[Samba 3.6.22]
smb: \> dir
  .                                   D        0  Sun Mar  2 18:15:40 2014
  ..                                  D        0  Sun Mar  2 17:01:04 2014
  metest                                    1325  Sun Mar  2 17:22:07 2014
  guest                               D        0  Sun Mar  2 18:20:28 2014

                49261 blocks of size 16777216. 15157 blocks available
smb: \> cd guest
smb: \guest\> dir
  .                                   D        0  Sun Mar  2 18:20:28 2014
  ..                                  D        0  Sun Mar  2 18:15:40 2014
  tbREADME.txt                        A     1030  Fri May 15 16:35:09 2009

                49261 blocks of size 16777216. 15157 blocks available
smb: \guest\> 
smb: \> showconnect
//192.168.1.13/wwwtest
smb: \> listconnect
0:      server=192.168.1.13, share=wwwtest
smb: \guest\> cd \
smb: \> get metest
getting file \metest of size 1325 as metest (1293,8 KiloBytes/sec) (average 258,8 KiloBytes/sec)
smb: \> quit

#

в директорию guest ранее был скопирован файл tbREADME.txt из под Windows 7

#  jls
   JID  IP Address      Hostname                      Path
     1  192.168.1.13    samba.lan.domain.ru            /pub/jails/samba
# jail -r 1
1: removed
# 
Все, оформить в /etc/rc.conf запуск jail, теперь там минимум.

Ну или альтернативно в 10.0 можно использовать virtnet (virtio) или vimage, а в 9.2 vimage.

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-03 14:55:57
SiAl
Огромное спасибо за проделанный труд, сейчас как раз этот вариант и работает. Ток для NAS-а требуется нормальное сетевое окружение - делается то для всех кто привык к нему. Плюс PLEX должен нормально мультикасты слать, иначе вообще теряется смысл в NAS.
guest писал(а):Ну или альтернативно в 10.0 можно использовать virtnet (virtio) или vimage, а в 9.2 vimage.
virtio похоже с клетками не работает ((, а при использовании vimage, теряется возможность использовать lagg, т.к. он не дружит с bridge. Есть возможность virtio использовать не в варианте emX <--> bridgeX <--> epairXa <--> |jail+vnet| <--> epairXb а как нить по другому? Все большее разочарование системой идет, то одно, то другое не выходит. Вчера решил таки vimage проверить, так модуля нету, ну ладно ядро, так нарвался на проблему nextboot и ZFS, опять монитор, хорошо, virtio включил так трабла с bridge... :evil:

BHyVe то кто нить смог в работу запустить?

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-03 19:33:37
guest
SiAl писал(а):Огромное спасибо за проделанный труд, сейчас как раз этот вариант и работает. Ток для NAS-а требуется нормальное сетевое окружение - делается то для всех кто привык к нему. Плюс PLEX должен нормально мультикасты слать, иначе вообще теряется смысл в NAS.
guest писал(а):Ну или альтернативно в 10.0 можно использовать virtnet (virtio) или vimage, а в 9.2 vimage.
virtio похоже с клетками не работает ((, а при использовании vimage, теряется возможность использовать lagg, т.к. он не дружит с bridge. Есть возможность virtio использовать не в варианте emX <--> bridgeX <--> epairXa <--> |jail+vnet| <--> epairXb а как нить по другому? Все большее разочарование системой идет, то одно, то другое не выходит. Вчера решил таки vimage проверить, так модуля нету, ну ладно ядро, так нарвался на проблему nextboot и ZFS, опять монитор, хорошо, virtio включил так трабла с bridge... :evil:

BHyVe то кто нить смог в работу запустить?
если память не изменяет, virtio работает с jail, даже презентация была на предмет запуск 4.x в Jail под 10.0
Sorry, не понял в чем проблема с NAS, вероятно, если Вы опишите сервер - железо, ветку или релиз,
и что хотите или пытаетесь реализовать (что и как сейчас настроено), тогда можно подумать.

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

bhyve - работает, но пока это ОЧЕНЬ сырой проект, а вот jail+vnet очень многие используют в продакшен,
невзирая, практически на отсутствие развития, вместо того чтобы сделать нормальный контейнер,
теперь все силы на bhyve :(
VPS - подобие контейнера:
http://www.7he.at/freebsd/vps/ - реализовано в одиночку (вместо обсуждений, разговоров и тд и тп), и очень странно что практически нет поддержки, хоть и внесено в дерево проектов

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-04 16:13:15
SiAl
В общем опробовал vimage. Работает прекрасно, броадкасты и мультикасты идут. samb-а и plex работают как надо, сетевое окружение есть техника в виде TV все видит и работает с plex и DLNA. bridge на lagg хоть и ругается, но все же пашет. Клетки стартуют/останавливаются автоматом, что и требовалось. Отлично, вот только видимо с VirtIO Vimage не дружит, сервак намертво виснет даже без bsod-а
/etc/rc.conf
cloned_interfaces="bridge0 lagg0"
ifconfig_bridge0="addm lagg0 up"
jail_enable="YES"
jail_list="homeweb homenas"
/etc/jail.conf
homenas {
name = "homenas";
path = "/jail/homenas";
host.hostname = "homenas";
vnet = "new";
vnet.interface = "epair0b";
persist;
exec.prestart = "ifconfig epair0 create";
exec.prestart += "ifconfig bridge0 addm epair0a";
exec.prestart += "ifconfig epair0a up";

mount.devfs;
##devfs_ruleset = 4;
##devfs_ruleset = "devfsrules_jail";
allow.mount;
#mount.fstab = "/etc/fstab.db";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
allow.raw_sockets;
allow.mount.nullfs;
#exec.start = "";
exec.poststart = "jexec $name ifconfig epair0b 192.168.0.2 netmask 255.255.255.0 up";
exec.poststart += "jexec $name route add default 192.168.0.1";
exec.poststart += "jexec $name /bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.poststop = "ifconfig bridge0 deletem epair0a";
exec.poststop += "ifconfig epair0a destroy";
}
virtio работает с jail, даже презентация была на предмет запуск 4.x в Jail под 10.0
Посмотрел, но чел пишет что поменял в системе что то для такой работы. Счя откачу ядро проверю, можно ли создавать vtnet не в гостевой системе.
Sorry, не понял в чем проблема с NAS, вероятно, если Вы опишите сервер - железо, ветку или релиз,
и что хотите или пытаетесь реализовать (что и как сейчас настроено), тогда можно подумать.

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

[b]freebsd-version -ku[/b]
10.0-RELEASE
10.0-RELEASE
[b]dmesg[/b]
FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014
    root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
CPU: Intel(R) Core(TM) i3 CPU         540  @ 3.07GHz (3066.83-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x20655  Family = 0x6  Model = 0x25  Stepping = 5
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x9ae3bd<SSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,POPCNT>
  AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
  AMD Features2=0x1<LAHF>
  TSC: P-state invariant, performance statistics
real memory  = 8589934592 (8192 MB)
avail memory = 8159641600 (7781 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <112610 APIC0935>
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 SMT threads
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  4
 cpu3 (AP): APIC ID:  5

ahci0: <Intel 5 Series/3400 Series AHCI SATA controller> port 0xb800-0xb807,0xb480-0xb483,0xb400-0xb407,0xb080-0xb083,0xb000-0xb01f mem 0xfbcf1000-0xfbcf17ff irq 21 at device 31.2 on pci0
ahci0: AHCI v1.30 with 6 3Gbps ports, Port Multiplier supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich4: <AHCI channel> at channel 4 on ahci0
ahcich5: <AHCI channel> at channel 5 on ahci0

em0: <Intel(R) PRO/1000 Network Connection 7.3.8> port 0xbc00-0xbc1f mem 0xfbcc0000-0xfbcdffff,0xfbcf9000-0xfbc
em1: <Intel(R) PRO/1000 Legacy Network Connection 1.0.6> port 0xec00-0xec3f mem 0xfbee0000-0xfbefffff,0xfbec0000-0xfbedffff irq 16 at device 1.0 on pci3
em2: <Intel(R) PRO/1000 Legacy Network Connection 1.0.6> port 0xe880-0xe8bf mem 0xfbe80000-0xfbe9ffff,0xfbe6000

ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Все шесть sata будут использоваться. По одному на систему 80Mb и торенты 1/5Tb с ZFS stripe, по паре на фото 1Tb и work 1Tb с ZFS mirror
Два PSI сетевых интерфейса со скоростью ~600mb/s объединены в lagg, пока только failover, потом разберусь с микротиком переведу на lacp
Третий интерфейс выдает ~800mb/s

Выглядеть должно примерно так
HомеBSD # Чистая операционка для поднятия jail серверов - Сервисы NAT/IPFWorPF/NTP/powerd/dhcp/unbound/ddclient/snmp/apcupsd/smart/openvpn/ssmtp/jail
HomeWEB # WEB Сервер - внутренний - Сервисы MySQL/Nginx/PHP/Cacti(mrtg)/PHPMyAdmin/ProFTPd Admin/Postfixadmin
HomeWWW # WEB Сервер - внешний - Сервисы MySQL/Nginx/PHP
HomeNAS # Сетевой медиа сервер - Сервисы nfs/iscsi/Samba/Transmission
HomeFTP # FTP Сервер - Сервисы ProFTPD/MySQL
HomeMTA # Почтовый Сервер - Сервисы Dovecot/Postfix/Roundcube Webmail
HomeVPN # VPN Сервер - mpd
С базовой HомеBSD вопросов не возникло, хотя я б ее тоже предпочел видеть на виртуальном диске. Правда как выяснилось при смене ядра - похоже что то изменилось в ZFS из за чего пулы не верно распределяются и после перезагрузки система не может загрузится... ((
Раньше jail-лы делал в виртуальных дисках на UFS (начиная с висты винду можно ставить непосредственно на виртуальный диск, а на фре есть такой вариант?), теперь наверно надо сменить на другую FS (есть рекомендации?), а пока просто отдельная точка монтирования на ZFS с ограничением размера.

Так понимаю самый геморой как раз с HomeNAS. Начитался и насмотрелся про возможности все свести в одно место, фото, видео, прочие шары, да все это иметь возможность видеть как с TV, так и с прочих устройств. Сделать все отказоустойчивым и скоростным. В базовую систему НИЧЕГО из других систем ставится не будет, проще уж тогда Win2008 с Hyper-V, на линукс времени жена уже не даст ))

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-04 23:49:02
guest
Sorry, на письмо отвечу когда будет время...

У меня 10.0-RELEASE, ядро с VIMAGE + VIRTIO работает, host машина:

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

[bsd10]~ > uname -a
FreeBSD bsd10.lan.dubna.ru 10.0-RELEASE FreeBSD 10.0-RELEASE #0: Mon Jan 20 18:40:38 MSK 2014     toor@bsd10.lan.dubna.ru:/usr/obj/usr/src/sys/VIM10R  amd64
[bsd10]~ > jls
   JID  IP Address      Hostname                      Path
     2  -               proxy.lan.dubna.ru            /pub/jails/proxy
[bsd10]~ > pgrep -lfj2
32431 -csh
32427 sshd: root@pts/3
32403 /usr/sbin/sshd
32358 /usr/sbin/cron -J 20 -s
32354 sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue
32351 sendmail: accepting connections
32248 /usr/sbin/syslogd -4ss
[bsd10]~ > ps axuww | grep bhyv
root   32449   0,0  0,3  551768  25132  1  D+   12:01AM    0:09,99 bhyve: vmlavr (bhyve)
lavr   32763   0,0  0,0   18732   2264  4  S+   12:21AM    0:00,00 grep bhyv
[bsd10]~ >  kldstat
Id Refs Address            Size     Name
 1  123 0xffffffff80200000 b3a4f0   kernel
 2    2 0xffffffff80d3b000 baeb0    linux.ko
 3    1 0xffffffff80df6000 11cf8    if_re.ko
 4    2 0xffffffff80e08000 3edd0    miibus.ko
 5    1 0xffffffff80e47000 6530     ng_bridge.ko
 6    6 0xffffffff80e4e000 183e8    netgraph.ko
 7    1 0xffffffff80e67000 6900     ng_eiface.ko
 8    1 0xffffffff80e6e000 7810     ng_ether.ko
 9    1 0xffffffff80e76000 9348     ng_socket.ko
10    1 0xffffffff80e80000 43ae8    snd_hda.ko
11    2 0xffffffff80ec4000 789d8    sound.ko
12    1 0xffffffff80f3d000 14bb0    aio.ko
13    1 0xffffffff80f52000 1528     accf_data.ko
14    1 0xffffffff80f54000 17c0     accf_dns.ko
15    1 0xffffffff80f56000 25d8     accf_http.ko
16    1 0xffffffff80f59000 49a8     coretemp.ko
17    1 0xffffffff80f5e000 5788     cpuctl.ko
18    1 0xffffffff80f64000 11640    cpufreq.ko
19    1 0xffffffff80f76000 4b38     snp.ko
20    1 0xffffffff80f7b000 a7e8     sem.ko
21    3 0xffffffff80f86000 519c8    vboxdrv.ko
22    1 0xffffffff80fd8000 c86860   nvidia.ko
23    1 0xffffffff81c5f000 3428     aibs.ko
24    1 0xffffffff81c63000 184780   vmm.ko
25    6 0xffffffff81de8000 5208     virtio.ko
26    1 0xffffffff81dee000 70a0     virtio_pci.ko
27    1 0xffffffff81df6000 11ef8    if_vtnet.ko
28    1 0xffffffff81e08000 7248     virtio_blk.ko
29    1 0xffffffff81e10000 b808     virtio_scsi.ko
30    1 0xffffffff81e1c000 3f28     virtio_balloon.ko
31    1 0xffffffff82012000 5209     fdescfs.ko
32    1 0xffffffff82018000 95e4     if_bridge.ko
33    1 0xffffffff82022000 6593     bridgestp.ko
34    1 0xffffffff82029000 5647     if_tap.ko
35    2 0xffffffff8202f000 2a00     vboxnetflt.ko
36    1 0xffffffff82032000 3f30     vboxnetadp.ko
37    1 0xffffffff82036000 3f25     if_epair.ko
38    1 0xffffffff8203a000 6170     nullfs.ko
[bsd10]~ > 
интерфейсы:
- epair0 -> для jail+vimage
- tap0 -> bhyve
- bridge0 + re0 + epair0a + tap0

re0 - получает ip от dhcp asus-роутера: 192.168.1.2
bridge0 - 192.169.1.1
jailvm - epair0b / 192.169.1.10
tap0/vtnet0/192.169.1.77

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

[bsd10]~ > ifconfig epair0a
epair0a: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:ff:00:00:06:0a
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
[bsd10]~ > ifconfig tap0
tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        ether 00:bd:e3:16:00:00
        inet6 fe80::2bd:e3ff:fe16:0%tap0 prefixlen 64 scopeid 0x5 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect
        status: active
        Opened by PID 32449
[bsd10]~ > ifconfig bridge0
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:08:63:94:af:00
        inet 192.169.1.1 netmask 0xffffff00 broadcast 192.169.1.255 
        nd6 options=9<PERFORMNUD,IFDISABLED>
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: re0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 20000
        member: epair0a flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 6 priority 128 path cost 2000
        member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 5 priority 128 path cost 2000000
[bsd10]~ > 
Гостевые машины
bhyve vm:

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

root@bhyve:~ # netstat -f inet -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.169.1.1        UGS         0       19 vtnet0
127.0.0.1          link#2             UH          0        0    lo0
192.169.1.0/24     link#1             U           0        3 vtnet0
192.169.1.77       link#1             UHS         0        0    lo0
root@bhyve:~ # ifconfig -a
vtnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=80028<VLAN_MTU,JUMBO_MTU,LINKSTATE>
        ether 00:a0:98:45:5a:5b
        inet 192.169.1.77 netmask 0xffffff00 broadcast 192.169.1.255 
        inet6 fe80::2a0:98ff:fe45:5a5b%vtnet0 prefixlen 64 scopeid 0x1 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet 10Gbase-T <full-duplex>
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
root@bhyve:~ # ping -c 3 192.169.1.1
PING 192.169.1.1 (192.169.1.1): 56 data bytes
64 bytes from 192.169.1.1: icmp_seq=0 ttl=64 time=0.501 ms
64 bytes from 192.169.1.1: icmp_seq=1 ttl=64 time=0.150 ms
64 bytes from 192.169.1.1: icmp_seq=2 ttl=64 time=0.174 ms

--- 192.169.1.1 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.150/0.275/0.501/0.160 ms
root@bhyve:~ # ping -c 2 192.169.1.10
PING 192.169.1.10 (192.169.1.10): 56 data bytes
64 bytes from 192.169.1.10: icmp_seq=0 ttl=64 time=0.521 ms
64 bytes from 192.169.1.10: icmp_seq=1 ttl=64 time=0.161 ms

--- 192.169.1.10 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.161/0.341/0.521/0.180 ms
jailvm(vnet)

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

root@proxy:~ # netstat -f inet -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.169.1.1        UGS         0       13 epair0
127.0.0.1          link#1             UH          0        0    lo0
192.169.1.0/24     link#2             U           0      157 epair0
192.169.1.10       link#2             UHS         0        0    lo0
root@proxy:~ # ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
epair0b: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:ff:50:00:07:0b
        inet6 fe80::ff:50ff:fe00:70b%epair0b prefixlen 64 scopeid 0x2 
        inet 192.169.1.10 netmask 0xffffff00 broadcast 192.169.1.255 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
root@proxy:~ # ping -c 3 192.169.1.77
PING 192.169.1.77 (192.169.1.77): 56 data bytes
64 bytes from 192.169.1.77: icmp_seq=0 ttl=64 time=0.170 ms
64 bytes from 192.169.1.77: icmp_seq=1 ttl=64 time=0.207 ms
64 bytes from 192.169.1.77: icmp_seq=2 ttl=64 time=0.171 ms

--- 192.169.1.77 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.170/0.183/0.207/0.017 ms
root@proxy:~ # ping -c 3 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=63 time=0.322 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=0.372 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=63 time=0.350 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.322/0.348/0.372/0.020 ms
root@proxy:~ # 
from host to bhyve-guest and jail-vm

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

[bsd10]~ > nmap -p22,25 192.169.1.77

Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-05 00:39 MSK
Nmap scan report for 192.169.1.77
Host is up (0.00020s latency).
PORT   STATE  SERVICE
22/tcp open   ssh
25/tcp closed smtp

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
[bsd10]~ > nmap -p22,25 192.169.1.10

Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-05 00:39 MSK
Nmap scan report for 192.169.1.10
Host is up (0.000079s latency).
PORT   STATE SERVICE
22/tcp open  ssh
25/tcp open  smtp

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
[bsd10]~ >
Верхнее просто домашний стенд для разных экспериментов.

Касательно JAIL+VNET(vimage kernel), то для реальной работы потребуется подтюнить систему : кол-во файлов, процессов + netgraph
и сетевой стек. Боевые сервера у меня через netgraph ноды работают вместо epair.

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-10 10:38:36
guest
SiAl писал(а): Все шесть sata будут использоваться. По одному на систему 80Mb и торенты 1/5Tb с ZFS stripe, по паре на фото 1Tb и work 1Tb с ZFS mirror
Два PSI сетевых интерфейса со скоростью ~600mb/s объединены в lagg, пока только failover, потом разберусь с микротиком переведу на lacp
Третий интерфейс выдает ~800mb/s
в смысле PCI?
непонятен смысл создания link aggregation - в какую сторону, в сторону провайдера,
Вы два линка от провайдера имеете?
При скорости линка в 1GBit, скорость сети больше скорости дисков и FS.

прим: link aggregation по стандарту не дает удвоения скорости, ну и реализация и возможности
lagg во FreeBSD, оставляют желать лучшего.
Выглядеть должно примерно так
HомеBSD # Чистая операционка для поднятия jail серверов - Сервисы NAT/IPFWorPF/NTP/powerd/dhcp/unbound/ddclient/snmp/apcupsd/smart/openvpn/ssmtp/jail
HomeWEB # WEB Сервер - внутренний - Сервисы MySQL/Nginx/PHP/Cacti(mrtg)/PHPMyAdmin/ProFTPd Admin/Postfixadmin
HomeWWW # WEB Сервер - внешний - Сервисы MySQL/Nginx/PHP
HomeNAS # Сетевой медиа сервер - Сервисы nfs/iscsi/Samba/Transmission
HomeFTP # FTP Сервер - Сервисы ProFTPD/MySQL
HomeMTA # Почтовый Сервер - Сервисы Dovecot/Postfix/Roundcube Webmail
HomeVPN # VPN Сервер - mpd
В случае использования JAIL+VNET(vimage), следует использовать IPFW, PF вызывает панику и креш системы.
С базовой HомеBSD вопросов не возникло, хотя я б ее тоже предпочел видеть на виртуальном диске. Правда как выяснилось при смене ядра - похоже что то изменилось в ZFS из за чего пулы не верно распределяются и после перезагрузки система не может загрузится... ((
про виртуальный диск - не понял, что имеется ввиду?
смене ядра - похоже что то изменилось в ZFS
- с 9.2 на 10.0 ?

export/import - вестимо, остальное зависит от того что Вы использовали при создании пула:
- сырые диски
- за'label'енные geom провайдеры
- ...
Раньше jail-лы делал в виртуальных дисках на UFS (начиная с висты винду можно ставить непосредственно на виртуальный диск, а на фре есть такой вариант?), теперь наверно надо сменить на другую FS (есть рекомендации?), а пока просто отдельная точка монтирования на ZFS с ограничением размера.
что есть
виртуальных дисках на UFS
?

Основные FS для FreeBSD:
- UFS1/UFS2
- ZFS

ZFS не является БЫСТРОЙ FS (пока), если запросов БД будет много и особенно на write, то пул ZFS
на котором будет MySQL лучше делать RAID10, для остального можно raidz - причем, чем больше
будет vdev, тем выше скорость чтения.

ZFS удобна для JAIL и iSCSI (ZVOL).

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-10 12:35:32
SiAl
guest писал(а):в смысле PCI?
непонятен смысл создания link aggregation
Сетевухшки в PCI-ных слотах. Две одинаковых, с агрегацией для отказоустойчивости в первую очередь. На счет
guest писал(а):про виртуальный диск - не понял, что имеется ввиду?
В windows системах есть возможность грузиться с виртуального VHD диска {boot_record_GUID} device vhd=C:\VHD\HomeNAS.vhd. Работает все как в обычной системе без потери производительности. Система из образа создает виртуальный диск C:\ а все остальные диски смещаются на следующие буквы. Так с одним диском и одним разделом на нем, можно иметь десятки систем не замарачиваясь на переносы в разные каталоги.
Клетки на FreeBSD прекрасно работают на "виртуальных дисках" созданных через mdconfig /dev/mdX

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

truncate -s 5g /vhd/homenas.vhd       # или dd if=/dev/zero of=/vhd/homenas.vhd bs=1k count=5m
mdconfig -a -t vnode -f /vhd/homenas.vhd -u 0
mdconfig -lv
	md0     vnode    5120M  /vhd/homenas.vhd
Но я нигде не видел описания установки и запуска базовой системы с виртуального диска. :pardon:
guest писал(а):за'label'енные geom провайдеры
В другом посте позже отпишусь, когда с физическим диском еще поэкспериментирую
guest писал(а):В случае использования JAIL+VNET(vimage), следует использовать IPFW, PF вызывает панику и креш системы.
Понял учту, пока не требуется, т.к. сервер чисто в локалке, инет через роутер.
guest писал(а):что есть виртуальных дисках на UFS
Ну раньше например

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

dd if=/dev/zero of=/vhd/homeweb bs=1k count=1m			# Виртуальный диск размером 1G
mdconfig -a -t vnode -f /vhd/homeweb -u 2			# Устройство md2
newfs -f 1024 -i 1024 -O 2 -U -o time -L homeweb /dev/md2			#Создание файловой системы UFS 
Теперь так

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

truncate -s 1g /vhd/homeweb.vhd			#
mdconfig -a -t vnode -f /vhd/homeweb.vhd -u 2			#
gpart create -s gpt /dev/md2			# Создание разметки диска, со схемой GPT
gpart add -l homeweb -t freebsd-zfs /dev/md2			# Создание партиции на весь диск на диске /dev/md2, c меткой homeweb
zpool create homeweb -m /web /dev/md2p1			# Создает и монтирует ZFS пул homeweb
Как видите приходилось на малых дисках изголяться с увеличенным кол-вом inodes, а с ZFS столкнулся впервые и хотел спросить людей знающих что да как? Имеет ли смысл ZFS использовать на виртуальных дисках.
guest писал(а):ZFS удобна для JAIL и iSCSI (ZVOL)
Какие преимущества дает ZFSв jail?

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-10 13:09:14
guest
SiAl писал(а):
guest писал(а):в смысле PCI?
непонятен смысл создания link aggregation
Сетевухшки в PCI-ных слотах. Две одинаковых, с агрегацией для отказоустойчивости в первую очередь.
То есть они за роутером? И в чем здесь отказоустойчивость?
Роутер умрет и никакой отказоустойчивости.
На счет
guest писал(а):про виртуальный диск - не понял, что имеется ввиду?
В windows системах есть возможность грузиться с виртуального VHD диска {boot_record_GUID} device vhd=C:\VHD\HomeNAS.vhd. Работает все как в обычной системе без потери производительности. Система из образа создает виртуальный диск C:\ а все остальные диски смещаются на следующие буквы. Так с одним диском и одним разделом на нем, можно иметь десятки систем не замарачиваясь на переносы в разные каталоги.
Клетки на FreeBSD прекрасно работают на "виртуальных дисках" созданных через mdconfig /dev/mdX

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

truncate -s 5g /vhd/homenas.vhd       # или dd if=/dev/zero of=/vhd/homenas.vhd bs=1k count=5m
mdconfig -a -t vnode -f /vhd/homenas.vhd -u 0
mdconfig -lv
	md0     vnode    5120M  /vhd/homenas.vhd
Но я нигде не видел описания установки и запуска базовой системы с виртуального диска. :pardon:
Jail не является гипервизором, это обособленный вид виртуализации в отличие от QEMU и VirtualBox, посему
вопрос с виртуальными дисками в Jail снимается.
guest писал(а):что есть виртуальных дисках на UFS
Ну раньше например

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

dd if=/dev/zero of=/vhd/homeweb bs=1k count=1m			# Виртуальный диск размером 1G
mdconfig -a -t vnode -f /vhd/homeweb -u 2			# Устройство md2
newfs -f 1024 -i 1024 -O 2 -U -o time -L homeweb /dev/md2			#Создание файловой системы UFS 
Теперь так

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

truncate -s 1g /vhd/homeweb.vhd			#
mdconfig -a -t vnode -f /vhd/homeweb.vhd -u 2			#
gpart create -s gpt /dev/md2			# Создание разметки диска, со схемой GPT
gpart add -l homeweb -t freebsd-zfs /dev/md2			# Создание партиции на весь диск на диске /dev/md2, c меткой homeweb
zpool create homeweb -m /web /dev/md2p1			# Создает и монтирует ZFS пул homeweb
Как видите приходилось на малых дисках изголяться с увеличенным кол-вом inodes, а с ZFS столкнулся впервые и хотел спросить людей знающих что да как? Имеет ли смысл ZFS использовать на виртуальных дисках.
Если в качестве HOME - FreeBSD, верхнее для нее - файл, а для гостевой - диск, в том или ином формате

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-10 18:50:47
SiAl
guest писал(а): То есть они за роутером? И в чем здесь отказоустойчивость?
Роутер умрет и никакой отказоустойчивости.
Речь идет именно о сетевых картах, в данном случае интересует именно их отказоустойчивость. Вообще странные вопросы, думал что это само собой подразумевается, когда речь идет об отказоустойчивом сервере. Для серверных плат и процов - стандарт
1) Двойной БП
2) Минимум зеркало для важных данных
3) Агрегация каналов
Машинка то домашняя и планируется иметь на ней ВСЕ, ну и ессно что все возможные подстраховки будут включаться и ZFS в данном случае одна из главных.
По опыту: материнки с твердотельными кондюками живут как правило долго, а вот сетевушки отказывают частенько.
guest писал(а):Jail не является гипервизором, это обособленный вид виртуализации в отличие от QEMU и VirtualBox, посему
вопрос с виртуальными дисками в Jail снимается.
Если в качестве HOME - FreeBSD, верхнее для нее - файл, а для гостевой - диск, в том или ином формате
Вообще теряю нить разговора...

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

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-10 19:49:21
guest
SiAl писал(а):
guest писал(а): То есть они за роутером? И в чем здесь отказоустойчивость?
Роутер умрет и никакой отказоустойчивости.
Речь идет именно о сетевых картах, в данном случае интересует именно их отказоустойчивость. Вообще странные вопросы, думал что это само собой подразумевается, когда речь идет об отказоустойчивом сервере. Для серверных плат и процов - стандарт
Мне кажется, Вы не совсем верно представляете отказоустойчивость в плане применения.
Когда-то в банках применяли зеркальные сервера, прошло время, и подход изменился.

Сетевые карты горят при отсутствии заземления, так как являются оконечными устройствами, при плохом или отсутстствующем
заземлении, как известно, горят оконечные устройства.
RAID1 - mirror, не спасет от сгорания или выхода из строя HDD, а лишь уменьшит время простоя при правильном подходе - то есть
наличии запасного HDD, емкостью, равной вышедшему из строя. Износ дисков в зеркале - одинаковый, наработка часов - одинаковая
и выход из строя одного диска в RAID1, говорит о том что и второму такому же, жить недолго.
MP платы берут не для взаимозаменяемости CPU, а для увеличения производительности.
1) Двойной БП
2) Минимум зеркало для важных данных
3) Агрегация каналов
Машинка то домашняя и планируется иметь на ней ВСЕ, ну и ессно что все возможные подстраховки будут включаться и ZFS в данном случае одна из главных.
По опыту: материнки с твердотельными кондюками живут как правило долго, а вот сетевушки отказывают частенько.
см выше, тем более для дома городить "взаимозаменяемость":
- два роутера
- по две сетевые в каждый PC (почему только в Unix сервер?)
- PC с dual-cpu, с dual power supply - это hardware server
- сетевой UPS (два)
- два сетевых принтера
и тд и тп

Sorry, понятно что верхнее - утрированно.
guest писал(а):Jail не является гипервизором, это обособленный вид виртуализации в отличие от QEMU и VirtualBox, посему
вопрос с виртуальными дисками в Jail снимается.
Если в качестве HOME - FreeBSD, верхнее для нее - файл, а для гостевой - диск, в том или ином формате
Вообще теряю нить разговора...
Ну как же так...
Jail - виртуализация на основе специального набора системных вызовов, виртуальные машины используют ядро и сетевой стек
home сервера, в отличие от гипервизора QEMU/VirtualBox/BHyVe, отсюда использование UFS,ZFS, а не виртуальных дисков.
По существу темы обсуждение уже не ведется, а ответ на второстепенный вопрос, можно ли установить FreeBSD на виртуальный диск так и не получил. Про ZFS тоже не понятно, ну да ладно, думаю можно закрывать тему.
читайте, делайте выводы, изучайте дальше и станет понятно.
FreeBSD можно установить на виртуальные диски для работы в QEMU/VirtualBox/BHyve и загружаться с них, вот только гипервизор
работает под OS, которую прежде нужно загрузить.

ps. Понято, тему закрыли.

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-10 20:52:02
SiAl
guest писал(а):Jail - виртуализация на основе специального набора системных вызовов, виртуальные машины используют ядро и сетевой стек
home сервера, в отличие от гипервизора QEMU/VirtualBox/BHyVe, отсюда использование UFS,ZFS, а не виртуальных дисков.
Не понимаю, видно терминология не верная или вы не читаете что я пишу? Для меня любой файл, который разворачивается в устройство с поддержкой файловой системы - виртуальный диск. На freebsd такое устройство создается mdconfig -a -t vnode http://www.freebsd.org.ru/handbook/disks-virtual.html И у меня клетки на таких дисках прекрасно работают. Мой вопрос в другом - например на винте ОДИН файл /vhd/homebsd.vhd и больше вообще НИЧЕГО нет, может быть еще одна загрузочная партиция, которая стартанет загрузку системы с него. На винде такой вариант есть (гугл search?q=загрузка+windows+с+vhd) и меня интересует подобный на freebsd.

По железу, поверьте, рекомендаций не надо. Вы вроде хотели помочь по софту для моих нужд, здесь пока так и не продвинулись. С вашей наводки я все ж таки перешел на vimaje для клетки с броадкастами и мультикастами, пока все ОК. Спасибо! Если что для лучшей работы vimaje на 10-ке надо править - делитесь ))

Если есть желание продолжить обсуждение домашнего сервера - может другую ветку тогда, чтоб не забанили?

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-03-11 7:31:46
guest
SiAl писал(а):
guest писал(а):Jail - виртуализация на основе специального набора системных вызовов, виртуальные машины используют ядро и сетевой стек
home сервера, в отличие от гипервизора QEMU/VirtualBox/BHyVe, отсюда использование UFS,ZFS, а не виртуальных дисков.
Не понимаю, видно терминология не верная или вы не читаете что я пишу? Для меня любой файл, который разворачивается в устройство с поддержкой файловой системы - виртуальный диск. На freebsd такое устройство создается mdconfig -a -t vnode http://www.freebsd.org.ru/handbook/disks-virtual.html И у меня клетки на таких дисках прекрасно работают. Мой вопрос в другом - например на винте ОДИН файл /vhd/homebsd.vhd и больше вообще НИЧЕГО нет, может быть еще одна загрузочная партиция, которая стартанет загрузку системы с него. На винде такой вариант есть (гугл search?q=загрузка+windows+с+vhd) и меня интересует подобный на freebsd.
Думаю что Вы не можете объяснить КАК, ГДЕ и с какой целью Вы СОЗДАЕТЕ и используете виртуальные диски.

1) У Вас в качестве HOME системы что:
- FreeBSD?
- внутри home системы Вы создаете файлы: dd, затем mdconfig?

2) Вы знаете КАК происходит загрузка FreeBSD, если ДА - поставьте себе вопросы:
- как работает загрузчик FreeBSD:
http://bu7cher.blogspot.ru/2011/05/freebsd.html
- что происходит во время загрузки
- какой формат vhd, vdi и прочих "виртуальных дисков?

Вам был намек на то что vhd, vdi & etc - это в Вашем случае файл на FS, файл с внутренней организацией.
Выше, снова намеки, включайтесь - подумайте немного сами, про что есть: jail и гипервизоры, тоже было сказано.
Думайте, как работает процедура bootstrap, как и что запускается - размышляйте самостоятельно.
По железу, поверьте, рекомендаций не надо. Вы вроде хотели помочь по софту для моих нужд, здесь пока так и не продвинулись. С вашей наводки я все ж таки перешел на vimaje для клетки с броадкастами и мультикастами, пока все ОК. Спасибо! Если что для лучшей работы vimaje на 10-ке надо править - делитесь ))

Если есть желание продолжить обсуждение домашнего сервера - может другую ветку тогда, чтоб не забанили?
"помочь по софту" ? Вы не знаете как установить и настроить mysql, proftpd, dhcp, mpd & etc?
Или в чем проблема - настроить /boot/loader.conf и /etc/sysctl.conf?
Это тюнинг системы, универсального нет, Вам необходимо будет увеличить кол-во открытых файлов, процессов и далее зависит
от сервисов.

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-08-28 15:22:18
ommm
хм может пригодится кому ... сам столкнулся с проблемой jail + samba broadcast

решение использовал такое:

/etc/jail.conf

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

exec.prestart = "/sbin/mount -t nullfs -o ro /usr/ports/ /home/jails/$name/usr/ports";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.poststop = "/sbin/umount -f /home/jails/$name/usr/ports";
exec.clean;
mount.devfs;
host.hostname = "$name.local";
allow.nomount;

path = "/home/jails/$name";

samba {
 ip4=inherit;
}
правда непонятно как в этом случае коннектиться к ssh в jail :)
upd: скорее всего чегото непонимаю т.к. с jail столкунлся впервый раз ... если где неправ пожалуйста поправьте :smile:

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-08-28 23:21:32
SiAl
ommm писал(а): samba {
ip4=inherit;
}
[/code]
ip4=inherit; указывается чтобы позволить клетке неограниченный доступ ко всем IP4 адресам родительской системы, а это не совсем то, что нужно при распределении трафика клеток и дубликатах сетевых служб. В любом случае отличная опция. Не знал про нее ((

Для SSH явно настрой в sshd_config
Port XX # Порт прослушивания SSH
ListenAddress XX.XX.XX.XX # IP адрес прослушивания SSH

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-08-29 20:16:18
ommm
SiAl писал(а): Для SSH явно настрой в sshd_config
Port XX # Порт прослушивания SSH
ListenAddress XX.XX.XX.XX # IP адрес прослушивания SSH
Спасибо так и сделал :)

сори за офтопик но еще парочка вопросов появилась...
1. Не получается пробросить usb в jail (/dev монтируется но не все устройства видны)

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

# mount
...
devfs on /home/jails/www/dev (devfs, local, multilabel)
...

# ls /home/jails/www/dev
fd      null    pts     random  stderr  stdin   stdout  urandom zero    zfs
конфиг тот же (указан выше)

2. Я использую ZFS (хотя наверно нет особой разници) ... хотелось бы например монтировать /home/shares в /home/jails/www/shares с доступом и в хост системе и в jail
раскопки в интернете привели к еще большему тупняку :) если не сложно покажите простейший пример как правильно делать

Re: В который раз про jail, samba и broadcast

Добавлено: 2014-08-29 22:09:59
SiAl
ommm писал(а): сори за офтопик но еще парочка вопросов появилась...
Это действительно совсем в сторону...

По первому не вкурсе, а по второму:
Собсно как проводится монтирование в ZFS

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

zpool history zvideo
2014-03-12.17:21:55 zpool create -m /video zvideo /dev/ada1p1.nop
2014-03-12.17:21:57 zfs set mountpoint=/jail/homenas/shared/video zvideo
ну и можно просмотреть точку монтирования

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

zfs get mountpoint zvideo
NAME    PROPERTY    VALUE                       SOURCE
zvideo  mountpoint  /jail/homenas/shared/video  local
Сам /jail и zvideo в родительской системе выглядят так

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

zfs list -r /jail
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot/jail          7,65G  49,1G    33K  /jail
zroot/jail/homenas  7,26G  12,7G  7,26G  /jail/homenas
zroot/jail/homeweb   406M  4,60G   406M  /jail/homeweb

zfs list zvideo
NAME     USED  AVAIL  REFER  MOUNTPOINT
zvideo   755G   615G   755G  /jail/homenas/shared/video
А в гостевой уже имеем /shared/video

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

ll -r /shared/video/
...
drwxr-xr-x   2 transmission  wheel          2 23 авг 18:40 notsorted/
...
Если хочется просто времянку на сессию, то как обычно из родительской

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

mount_nullfs /usr/ports /jail/homenas/usr/ports