У меня есть брандмауэр OpenBSD PF, к которому я добавил туннель IPv6 (используя Туннельный брокер HE.net).
Я могу пинговать / отслеживать IPv6-адреса через брандмауэр. Теперь я хочу предоставить услуги IPv6 серверам за моим брандмауэром. Все они имеют общедоступные IP-адреса (я не использую какой-либо NAT). Поэтому я хочу иметь возможность давать им адреса IPv6 на маршрутизируемом префиксе IPv6, заданном туннелем, и правильно маршрутизировать трафик через туннель (интерфейс gif0) в OpenBSD.
Некоторые другие подробности. По сути, это прозрачный брандмауэр, хотя у внешнего интерфейса есть IP-адрес для администрирования. Нужно ли мне добавить IPv6-адрес во внутренний интерфейс, чтобы обеспечить маршрутизацию, или я могу просто прозрачно маршрутизировать все через туннельный интерфейс? Как будут выглядеть правила PF для трафика IPv6 и чем они будут отличаться от обычных правил PF IPv4?
я обнаружил эта страница, но он такой старый (для OpenBSD 2.9 почти 10 лет). Я ищу обновленные инструкции, которые подходят для моей ситуации.
редактировать: Наряду с принятым ниже ответом мне нужно было добавить следующее правило PF, чтобы входящий трафик работал:
tunnelserveripv4address="xx.xx.xx.xx" # This is the IPv4 HE.net tunnel endpoint
ext_if="em0"
pass in proto 41 from $tunnelserveripv4address to $ext_if keep state
pass out proto 41 from $ext_if to $tunnelserveripv4address keep state
Во-первых, вы должны настроить сетевую карту LAN на адрес из маршрутизируемого (!) / 64; в ::1
идеальный кандидат. Затем запустите radvd
на интерфейсе LAN --- он не требует настройки.
PF не играет в этом никакой роли, вернее, следит за тем, чтобы он не мешал.