FreeBSD IPv6 настройка бинда

Обсуждаем сайт и форум.

Модератор: f0s

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

FreeBSD IPv6 настройка бинда

Непрочитанное сообщение kirgudu » 2010-03-16 13:50:25

Ну вот, дали блок адресов с ipv6 :st: Теперича остается настроить фрю, что достаточно просто

:pardon: Настройка FreeBSD 8.0-STABLE, 7.2-STABLE
/etc/rc.conf

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

ipv6_enable="YES"
ipv6_defaultrouter="2A00:18C0:1:1::1"
ipv6_ifconfig_bce0_alias0="2a00:18c0:1:1::2eee/64"

$ ifconfig bce0
bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
        ether 00:1c:c4:11:ff:0a
        inet6 fe80::21c:c4ff:fe11:ff0a%bce0 prefixlen 64 scopeid 0x1
        inet 111.1.1.1 netmask 0xffffffe0 broadcast 111.1.1.31
        inet6 2a00:18c0:1:1::2eee prefixlen 64
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
Ручками:

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

ifconfig bce0 inet6 2a00:18c0:1:1::2eee/64
route add -inet6 default 2A00:18C0:1:1::1
IPFW
Нужно разрешить весть icmp6 траффик, без этого ipv6 не работает, это все равно что запретить arp для ipv4 :)
allow icmp6 from any to any

Так же введено понятие me6 - грубо говоря, я с протоколом IPv6. IP6 - ipv6 протокол. Пример
allow tcp from any to { me or me6 } established

Косяк - таблицы ipv6 адреса не понимают, трабла известная, в 9-ке пофикшено.


PF
Все работает.
Кое где придется писать proto inet или proto inet6:
pass inet proto icmp to ($ext_if) icmp-type $icmp_types no state
pass inet6 proto icmp6


:cz2: Настройка бинды (isc bind)
/etc/namedb/named.conf

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

options {
        allow-recursion 2a00:18c0/32;
        listen-on-v6 {  2a00:18c0:1:1::2eee;  }; //Обязательно 
        query-source-v6 2a00:18c0:1:1::2eee; // все ниже по желанию, если у вас куча интерфейсов на машине
        transfer-source-v6 2a00:18c0:1:1::2eee;
        notify-source-v6 2a00:18c0:1:1::2eee;
};

zone "provider.net" {
        type master;
        file "provider.net";
};

zone "0.c.8.1.0.0.a.2.ip6.arpa" {
        type master;
        file "ARPA.IP6.2a00-18c0-0000-0000-0000-0000-0000-0000"; //мне так удобнее
};


:smile: Прямая зона
Ну с прямой зоной все ясно, в файл provider.net добваляем запись вида

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

ipv6server        IN        AAAA        2a00:18c0:1:1::2eee

:shock: Обратная зона
А вот с обраткой чистой воды шаманство:
файл ARPA.IP6.2a00-18c0-0000-0000-0000-0000-0000-0000

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

@       IN      SOA     dns1.privider.net. hostmaster.provider.net.  (
                                                        1 ; Serial
                                                        3600    ; Refresh
                                                        400     ; Retry
                                                        1209600 ; Expire
                                                        3600 )  ; Minimum
                IN              NS              dns1.provider.net.
                IN              NS              dns2.provider.net.
2eee.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.1.0.0.0 IN PTR  ipv6server.provider.net.
Вид обратной записи сводится к чтению в обратном порядке полноформатной записи IPv6:
2a00:18c0:1:1::2eee == 2a00:18c0:0001:0001:0000:0000:0000:2eee -> 2eee.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.1.0.0.0.18c0.2a00 (Кто придумал???)
Соответственно два последних октета не пишем, т.к. в описании зоны уже все есть.
В кратце, нули слева можно не писать, пустые октеты пропускаем ::, но можно один раз! Т.е. если у вас 2a00:18c0:0001:0000:0001:0000:0000:2eee, то сократить можно только до 2a00:18c0:1:0:1::2eee

:-o Рукоблудство для обратной зоны
Для простоты создания обратной зоны для себя веду просто файл вида:

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

2a00:18c0:0001:0001::2eee  ipv6server.provider.net.
А вот скриптик, который это все безобразие преобразует в биндовую зону:
ipv6dns.rb

Берем каталог ZONEDIR, из каждого файлика генерим одну зону, скипаем комменты и пустые строки

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

#!/usr/bin/env ruby
# v.0.1 by kirgudu@kirgudu.org
require 'ipaddr'
ZONE = '.0.c.8.1.0.0.a.2.ip6.arpa'
ZONEDIR = '/etc/namedb/IPv6/'

serial = Time.now.to_i

def prnhead
        print <<EOF
$TTL 10800
;
; (REVERSE zone for 2a00.18c0::1 network)
;

@       IN      SOA     dns1.provider.net. hostmaster.provider.net.  (
                                                        #{serial} ; Serial
                                                        3600    ; Refresh
                                                        400     ; Retry
                                                        1209600 ; Expire
                                                        3600 )  ; Minimum
                IN              NS              dns1.provider.net.
                IN              NS              dns2.provider.net.

EOF
end

prnhead
Dir.new("#{ZONEDIR}").each do | zfile |
        next if zfile =~ /^\./
        lines = IO.readlines("#{ZONEDIR}/#{zfile}")
        lines.each do | line |
                next if line =~ /^\s+$/ or line =~ /^#/ or line =~ /^;/
                ip,name = line.chomp.downcase.split
                ip6 = IPAddr.new ip
                dnsadr = ip6.ip6_arpa
                dnsadr = dnsadr.gsub(ZONE,"")
                puts "#{dnsadr} IN PTR  #{name}"
        end
end
Собсно вот, будут вопросы - пишите :drinks:

PS: Пару раз, когда фре прикручивал ipv6 адреса без перезагрузки - оно ребуталось с кернель паником. что 7.2, что 8.0. Шайтан. Так что осторожнее.
Последний раз редактировалось kirgudu 2010-03-16 14:25:37, всего редактировалось 2 раза.

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

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: FreeBSD IPv6 настройка бинда

Непрочитанное сообщение hizel » 2010-03-16 14:11:34

корку бы отдебагили и послали PR

кто такие AS раздает то? :)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: FreeBSD IPv6 настройка бинда

Непрочитанное сообщение kirgudu » 2010-03-16 14:24:39

hizel писал(а):корку бы отдебагили и послали PR

кто такие AS раздает то? :)
Ну не AS, блок адресов ;) ripe