|
|
www.lissyara.su
—> www.lissyara.su
—> FreeBSD, named ipv6
Настройка IPv6 во FreeBSD и isc-bind
Автор: kirgudu.
Ну вот, дали блок адресов с ipv6.Теперича остается настроить фрю, что достаточно просто
[size=150]Настройка FreeBSD 8.0-STABLE, 7.2-STABLE[/size]
/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
| [size=150]IPFW[/size]
Нужно разрешить весть 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-ке пофикшено.
[size=150]PF[/size]
Все работает.
Кое где придется писать proto inet или proto inet6:
pass inet proto icmp to ($ext_if) icmp-type $icmp_types no state
pass inet6 proto icmp6
[size=150]Настройка бинды (isc bind)[/size]
/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"; //мне так удобнее
};
| [size=150]Прямая зона[/size]
Ну с прямой зоной все ясно, в файл provider.net добваляем запись вида
ipv6server IN AAAA 2a00:18c0:1:1::2eee
| [size=150]Обратная зона[/size]
А вот с обраткой чистой воды шаманство:
файл 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
[size=150]Рукоблудство для обратной зоны[/size]
Для простоты создания обратной зоны для себя веду просто файл вида:
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
| Собсно вот, будут вопросы - пишите.
PS: Пару раз, когда фре прикручивал ipv6 адреса без перезагрузки - оно ребуталось с кернель паником. что 7.2, что 8.0. Шайтан. Так что осторожнее.
размещено: 2010-03-17,
последнее обновление: 2010-03-17,
автор: kirgudu
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
|
Статистика сайта
|
Сейчас на сайте находится: 23 чел.
|
За последние 30 мин было: 118 человек
|
За сегодня было 9510 показов, 2811 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [0 шт.]