У меня есть блок адресов IPv6 с размером префикса 64. На моем хост-компьютере с FreeBSD 13-RELEASE есть три тюрьмы:
JLS
JID IP-адрес Имя хоста Путь
1 svcfw /usr/тюрьма/svcfw
2 www /usr/тюрьма/www
3 ифи /usr/тюрьма/ифи
Хост-сетевой адаптер, подключенный к глобальной сети Интернет:
ifconfig vtnet0
vtnet0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> метрика 0 mtu 1500
options=4804bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LRO,LINKSTATE,TXCSUM_IPV6>
эфир 56:00:03:7a:2c:a1
инет 192.248.184.48 сетевая маска 0xfffffe00 широковещательная рассылка 192.248.185.255
inet6 fe80::5400:3ff:fe7a:2ca1%vtnet0 prefixlen 64 scopeid 0x1
inet6 2001:19f0:6c01:2033::2 префикслен 65
среда: автоматический выбор Ethernet (10Gbase-T <полный дуплекс>)
статус: активен
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Содержание моего /etc/rc.conf
:
имя_хоста="логин"
clear_tmp_enable="ДА"
syslogd_flags="-сс"
sendmail_enable = "НЕТ"
static_routes="местная ссылка"
route_linklocal="-net 169.254.0.0/16 -интерфейс vtnet0"
ifconfig_vtnet0="inet 192.248.184.48 сетевая маска 255.255.254.0"
по умолчанию маршрутизатор = "192.248.184.1"
ifconfig_vtnet0_ipv6="inet6 2001:19f0:6c01:2033::2 prefixlen 65"
ipv6_default_interface="vtnet0"
# ХХХ:
# - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233283#c4
# - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233283#c16
ipv6_defaultrouter="fe80::fc00:3ff:fe7a:2ca1%vtnet0"
cloned_interfaces="bridge0 epair0"
ifconfig_epair0a_ipv6="inet6 2001:19f0:6c01:2033:8000::1 prefixlen 65"
ifconfig_epair0a="inet 10.22.0.1 сетевая маска 255.255.0.0"
# Частная сеть: net5ab50b04a6b66
ifconfig_vtnet1="inet 10.9.96.5 сетевая маска 255.255.240.0 mtu 1450"
#pf_enable="ДА"
#pf_rules="/etc/pf.conf"
#pflog_enable="ДА"
#pflog_logfile="/var/log/pflog"
sshd_enable="ДА"
дампдев = "НЕТ"
zfs_enable="ДА"
devmatch_blacklist="virtio_random.ko"
шлюз_включить = "ДА"
ipv6_gateway_enable="ДА"
wireguard_enable="ДА"
wireguard_interfaces="wg0"
тюрьма_включить = "ДА"
Сеть с хоста работает как надо:
fetch -6 -o /dev/null http://example.com
/dev/null 1256 B 10 Мбит/с 00 с
ping6 -c 4 google.com
PING6(56=40+8+8 байт) 2001:19f0:6c01:2033::2 --> 2a00:1450:4001:802::200e
16 байт из 2a00:1450:4001:802::200e, icmp_seq=0 hlim=119 время=0,832 мс
16 байт из 2a00:1450:4001:802::200e, icmp_seq=1 hlim=119 время=0,793 мс
16 байт из 2a00:1450:4001:802::200e, icmp_seq=2 hlim=119 время=0,867 мс
16 байт из 2a00:1450:4001:802::200e, icmp_seq=3 hlim=119 время=0,827 мс
--- Статистика ping6 google.com ---
4 пакета передано, 4 пакета получено, 0,0% потери пакетов
туда-обратно мин/средн/макс/стандартное отклонение = 0,793/0,830/0,867/0,026 мс
Основной сетевой адаптер первой тюрьмы:
doas jexec svcfw ifconfig bridge0
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> метрика 0 mtu 1500
эфир 58:9c:fc:10:e2:24
inet6 2001:19f0:6c01:2033:8000::2 префикслен 65
инет 10.22.0.2 сетевая маска 0xffff0000 широковещательный 10.22.255.255
id 00:00:00:00:00:00 приоритет 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 тайм-аут 1200
корневой идентификатор 00:00:00:00:00:00 приоритет 32768 ifcost 0 порт 0
участник: epair2a flags=143<ОБУЧЕНИЕ, ОБНАРУЖЕНИЕ, AUTOEDGE, AUTOPTP>
ifmaxaddr 0 порт 5 приоритет 128 стоимость пути 2000
участник: epair1a flags=143<ОБУЧЕНИЕ, ОБНАРУЖЕНИЕ, AUTOEDGE, AUTOPTP>
ifmaxaddr 0 порт 4 приоритет 128 стоимость пути 2000
участник: epair0b flags=143<ОБУЧЕНИЕ, ОБНАРУЖЕНИЕ, AUTOEDGE, AUTOPTP>
ifmaxaddr 0 порт 3 приоритет 128 стоимость пути 2000
группы: бридж
nd6 options=8001<PERFORMNUD,DEFAULTIF>
Пинг джейла с хоста работает как надо:
ping6 -c 4 2001:19f0:6c01:2033:8000::2
PING6(56=40+8+8 байт) 2001:19f0:6c01:2033:8000::1 --> 2001:19f0:6c01:2033:8000::2
16 байт из 2001:19f0:6c01:2033:8000::2, icmp_seq=0 hlim=64 время=0,077 мс
16 байт из 2001:19f0:6c01:2033:8000::2, icmp_seq=1 hlim=64 время=0,062 мс
16 байт из 2001:19f0:6c01:2033:8000::2, icmp_seq=2 hlim=64 время=0,080 мс
16 байт из 2001:19f0:6c01:2033:8000::2, icmp_seq=3 hlim=64 время=0,062 мс
--- 2001:19f0:6c01:2033:8000::2 статистика ping6 ---
4 пакета передано, 4 пакета получено, 0,0% потери пакетов
туда-обратно мин/средн/макс/стандартное отклонение = 0,062/0,070/0,080/0,008 мс
Пинг хоста из джейла тоже работает как надо:
doas jexec svcfw ping6 -c 4 2001:19f0:6c01:2033:8000::1
PING6(56=40+8+8 байт) 2001:19f0:6c01:2033:8000::2 --> 2001:19f0:6c01:2033:8000::1
16 байт из 2001:19f0:6c01:2033:8000::1, icmp_seq=0 hlim=64 время=0,068 мс
16 байт из 2001:19f0:6c01:2033:8000::1, icmp_seq=1 hlim=64 время=0,064 мс
16 байт из 2001:19f0:6c01:2033:8000::1, icmp_seq=2 hlim=64 время=0,059 мс
16 байт из 2001:19f0:6c01:2033:8000::1, icmp_seq=3 hlim=64 время=0,060 мс
--- 2001:19f0:6c01:2033:8000::1 статистика ping6 ---
4 пакета передано, 4 пакета получено, 0,0% потери пакетов
туда-обратно мин/средн/макс/стандартное отклонение = 0,059/0,063/0,068/0,004 мс
Конфигурация пары на стороне хоста, подключенной к мосту:
ifconfig epair0a
epair0a: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> метрика 0 mtu 1500
options=8<VLAN_MTU>
эфир 02:a8:b4:85:57:0a
инет 10.22.0.1 сетевая маска 0xffff0000 широковещательный 10.22.255.255
inet6 fe80::a8:b4ff:fe85:570a%epair0a prefixlen 64 scopeid 0x5
inet6 2001:19f0:6c01:2033:8000::1 префикслен 65
группы: пара
среда: Ethernet 10Gbase-T (10Gbase-T <полный дуплекс>)
статус: активен
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Обычно pf выполняет NAT для IPv4. В настоящее время я отключил pf, так что pf не работает, пока я пытаюсь заставить глобальный IPv6 работать для тюрем.
Хост настроен на маршрутизацию трафика IPv6, см. /etc/rc.conf
которые я включил ранее в этом сообщении.
Вот что говорит тюрьма о маршруте к IPv6-адресу в Интернете:
doas jexec svcfw route -6 получить 2a00:1450:400f:802::200e
маршрут до: 2a00:1450:400f:802::200e
пункт назначения: по умолчанию
маска: по умолчанию
шлюз: 2001:19f0:6c01:2033:8000::1
выдумка: 0
интерфейс: мост0
флаги: <UP,GATEWAY,DONE,STATIC>
recvpipe sendpipe ssthresh rtt, мс mtu вес истекает
0 0 0 0 1500 1 0
Должен быть отправлен в мост0
, выглядит хорошо для меня.
Вот что хост рассказывает мне о маршрутах для google.com и для джейла соответственно:
маршрут -6 получить google.com
маршрут к: fra24s01-in-x0e.1e100.net
пункт назначения: по умолчанию
маска: по умолчанию
шлюз: fe80::fc00:3ff:fe7a:2ca1%vtnet0
выдумка: 0
интерфейс: vtnet0
флаги: <UP,GATEWAY,DONE,STATIC>
recvpipe sendpipe ssthresh rtt, мс mtu вес истекает
0 0 0 0 1500 1 0
маршрут -6 получить 2001:19f0:6c01:2033::2
маршрут до: 2001:19f0:6c01:2033::2
пункт назначения: 2001:19f0:6c01:2033::2
выдумка: 0
интерфейс: lo0
флаги: <UP,HOST,DONE,STATIC,PINNED>
recvpipe sendpipe ssthresh rtt, мс mtu вес истекает
0 0 0 0 16384 1 0
Выглядит в основном хорошо. Не знаю, почему последний маршрут говорит, что петлевой интерфейс lo0
вместо epair интерфейса epair0a
. Это проблема? Или что-то другое вызывает проблему?
Проблема в том, что я не могу получить доступ к общедоступному Интернету по IPv6 из своей тюрьмы, хотя маршрутизация IPv6 на хосте включена, а брандмауэр хоста (pf) выключен, и хост может нормально общаться с Интернетом через IPv6, и я используя адреса из моего назначенного /64. (Назначение хосту большего количества адресов из /64 отлично работает.)
Когда я пытаюсь даже пропинговать что-то в Интернете по IPv6, что отлично работало с хоста, не работает из тюрьмы:
doas jexec svcfw ping6 -c 4 2a00:1450:400f:802::200e
PING6(56=40+8+8 байт) 2001:19f0:6c01:2033:8000::2 --> 2a00:1450:400f:802::200e
--- 2a00:1450:400f:802::200e статистика ping6 ---
4 пакета передано, 0 пакетов получено, 100,0% потери пакетов
Не работает.
Что мне не хватает? Что я делаю не так? Продолжались в этом в течение нескольких часов.