Как пробросить jail с приватным IP в реальную сеть? (нужна помощь)

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
supportsobaka
проходил мимо
Сообщения: 2
Зарегистрирован: 2018-04-01 13:32:31

Как пробросить jail с приватным IP в реальную сеть? (нужна помощь)

Непрочитанное сообщение supportsobaka » 2018-04-01 15:20:53

Ребята, нужна помощь, как пробросить jail в инет. Сразу честно признаюсь, сеть знаю плохо.

Есть один внешний реальный IP (пусть будет условно 8.8.8.8) повешен на igb0 и есть дефолтный роутер выданный ДЦ, пусть будет условно 8.8.8.1. Вешать алиасы из локальных сетей на внешний интерфейс, как полагаю, нельзя (кто знает, кто еще в датацентре на ту же сеть повесится). Пытался решить с shared IP и с VIMAGE/vnet. Ну давайте остановися на VIMAGE/vnet (хотя мне собственный стэк внутри клетки нафиг сдался, но кажется, что вроде бы так проще). FreeBSD 11.1-RELEASE.

Вот внутри jail:

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

# ifconfig
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>
        groups: lo
vnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 02:ff:60:a9:bd:7b
        hwaddr 02:ff:30:00:06:0b
        inet6 fe80::ff:60ff:fea9:bd7b%vnet0 prefixlen 64 scopeid 0x2
        inet 10.1.1.10 netmask 0xffffff00 broadcast 10.1.1.255
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        groups: epair

# netstat -rn
netstat: kvm not available: /dev/mem: No such file or directory
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            10.1.1.254         UGS       vnet0
10.1.1.0/24        link#2             U         vnet0
10.1.1.10          link#2             UHS         lo0
127.0.0.1          link#1             UH          lo0

# ipfw show
00001   6   336 allow ip from any to any
65535 176 10338 deny ip from any to any
Себя пингуем, роутер нет:

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

# ping 10.1.1.10
PING 10.1.1.10 (10.1.1.10): 56 data bytes
64 bytes from 10.1.1.10: icmp_seq=0 ttl=64 time=0.027 ms
64 bytes from 10.1.1.10: icmp_seq=1 ttl=64 time=0.012 ms
^C
--- 10.1.1.10 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.012/0.019/0.027/0.007 ms

# ping 10.1.1.254
PING 10.1.1.254 (10.1.1.254): 56 data bytes
^C
--- 10.1.1.254 ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss
А вот снаружи:

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

# ifconfig
igb0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2400b9<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO,RXCSUM_IPV6>
        ether 00:1e:67:b4:fe:0b
        hwaddr 00:1e:67:b4:fe:0b
        inet <ну типа 8.8.8.8> netmask 0xffffffc0 broadcast <его броадкаст>
        inet <еще один внешний IP из другой сети> netmask 0xffffffff broadcast <его броадкаст> vhid 1
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        carp: MASTER vhid 1 advbase 1 advskew 0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6  <неважно>
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        groups: lo
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:a5:fa:41:1d:00
        inet 10.1.1.15 netmask 0xffffff00 broadcast 10.1.1.255
        nd6 options=9<PERFORMNUD,IFDISABLED>
        groups: bridge
        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: vnet0:7 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 5 priority 128 path cost 2000
        member: igb0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 20000
bridge1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 02:a5:fa:41:1d:01
        nd6 options=9<PERFORMNUD,IFDISABLED>
        groups: bridge
        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 0 ifcost 0 port 0
vnet0:7: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        description: associated with jail: a9bd7aa1-3426-11e8-b87a-001e67b4fe0b
        options=8<VLAN_MTU>
        ether 02:ff:60:a9:bd:7a
        hwaddr 02:ff:e0:00:05:0a
        inet6 <неважно>
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        groups: epair

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            <ну типа 8.8.8.1>  UGS        igb0
10.1.1.0/24        link#3             U       bridge0
10.1.1.15          link#3             UHS         lo0
<лишнее поудалял>
Ну вот в моем (не)понимании так:

Клетку я повесил на 10.1.1.10. Ну дефолтроутер я там добавил 10.1.1.254, но мой роутер в реальный инет это 8.8.8.1. Я так полагаю, что именно его я и должен добавить внутри клетки? Но как? Добавить его в клетке я не могу никак, потому что на интерфейсе нет никакой сети 8.8.8.* подходящей для него:

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

#route add -net 10.1.1.0/24 <ну типа 8.8.8.1>
route: writing to routing socket: Network is unreachable
add net 10.1.1.0: gateway <ну типа 8.8.8.1> fib 0: Network is unreachable
OK. Может снаружи попробовать добавить? Как, если ни на каком интерфейсе нет сетки 10.1.1.0/24? Тоже ведь будет ответ Network is unreachable (и так и было). Поэтому я решаю bridge0 присвоить какой-то адрес из сети 10.1.1.0/24. Соответственно выше поэтому вы и видите, что я мосту присвоил 10.1.1.15.

В общем, было у меня снаружи и вот так:

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

Destination        Gateway            Flags     Netif Expire
default            8.8.8.1         UGS        igb0
10.1.1.0/24        10.1.1.254         UGS     bridge0
10.1.1.15          link#3             UHS         lo0
8.8.8.0/26      link#1             U          igb0
8.8.8.8        link#1             UHS         lo0
127.0.0.1          link#2             UH          lo0
И вот так:

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

Destination        Gateway            Flags     Netif Expire
default            8.8.8.1         UGS        igb0
10.1.1.0/24        8.8.8.1         UGS        igb0
10.1.1.15          link#3             UHS         lo0
8.8.8.0/26      link#1             U          igb0
8.8.8.8        link#1             UHS         lo0
127.0.0.1          link#2             UH          lo0
Нету инета в джайле. Или такое вообще не настройкой сети и роутинга решается, а нужно форвардить или НАТашить? Решение с shared IP и kernel nat на ipfw тоже не получилось, в хэндбуке какой-то устаревший метод с natd (такой оверхед нафиг не хочу).

Мне в теории не нужен свой стек в джайле, я просто ищу решение как ему выдать полноценный инет без лишнего оверхеда. Чем проще, тем лучше. Раньше вешал их на реальные внешние алиасы и было все просто, но теперь IPv4 на вес золота. Казалось бы банальная задача, но бьюсь все выходные.

Есть тут сильные сетевики?

Хостинговая компания 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/

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Как пробросить jail с приватным IP в реальную сеть? (нужна помощь)

Непрочитанное сообщение dekloper » 2018-04-03 13:21:05

че за бред, ниче непонятно %)

а в вашей локальной сети предумотрено оснащение юзеров инетом?
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Гость
проходил мимо

Как пробросить jail с приватным IP в реальную сеть? (нужна помощь)

Непрочитанное сообщение Гость » 2018-04-04 15:43:46

Биндите ваши айпишники на lo, дальше с помощью pf делаете nat.

supportsobaka
проходил мимо
Сообщения: 2
Зарегистрирован: 2018-04-01 13:32:31

Как пробросить jail с приватным IP в реальную сеть? (нужна помощь)

Непрочитанное сообщение supportsobaka » 2018-04-14 17:24:31

dekloper писал(а):
2018-04-03 13:21:05
че за бред, ниче непонятно
Короткая версия:

В инет выход через igb0, IP=a.b.c.d
Как VIMAGE/vnet jail с IP=10.1.1.10 занатить, чтобы он тоже ходил в инет?

PS
Натить с помощью ipfw, не pf

>а в вашей локальной сети предумотрено оснащение юзеров инетом?
Это не локальная сеть и не юзера, это сервер в ДЦ.