Есть один внешний реальный 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
В общем, было у меня снаружи и вот так:
Код: Выделить всё
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
Мне в теории не нужен свой стек в джайле, я просто ищу решение как ему выдать полноценный инет без лишнего оверхеда. Чем проще, тем лучше. Раньше вешал их на реальные внешние алиасы и было все просто, но теперь IPv4 на вес золота. Казалось бы банальная задача, но бьюсь все выходные.
Есть тут сильные сетевики?