Страница 1 из 1

DNS64 and NAT64

Добавлено: 2013-04-26 23:43:50
pautina
Добрый день!
В нашей компании решили развивать IPv6 в связи с окончанием IPv4, но вот стала проблема, что в сети IPv4 клиентов с IPv6 не так просто выпустить.
Отдельно выделен сервер где крутиться IPv6 и IPv4 все работает по OSPF. С v6 проблем нет. На клиентские vlanы выделяем подсети ::/64 и дальше по DHCPv6 выдаем каждому клиенту IPv6, пока, в динамике IP версии, объявление роутера происходит при помощи RADVD с портов, встроенные rtadv почему-то не всем выдавал шлюз, естественно не все пользователи получали IPv6. Так вот вопрос, кто сталкивался и настраивал уже DNS64 and NAT64 для доступа к сетям IPv4 клиентов у которых только IPv6.

Re: DNS64 and NAT64

Добавлено: 2013-04-27 17:07:29
pautina
Данные и некоторые настройки сервера

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

FreeBSD v6gate.* 9.1-STABLE FreeBSD 9.1-STABLE #0 r249796: Tue Apr 23 18:18:23 EEST 2013     root@v6gate:/usr/src/sys/amd64/compile/V6GATE  amd64
Настройки radvd.conf

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

interface vlan1500 {
        AdvManagedFlag on;
        AdvSendAdvert on;
        AdvOtherConfigFlag on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 60;
};
Конфиг dhcpd6.conf

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

authoritative;
default-lease-time 2592000;
preferred-lifetime 604800;
option dhcp-renewal-time 3600;
option dhcp-rebinding-time 7200;
# Enable RFC 5007 support (same than for DHCPv4)
allow leasequery;

# Global definitions for name server address(es) and domain search list
option dhcp6.name-servers 2001:*:*:1::9;
option dhcp6.domain-search "v6.*";
option dhcp6.info-refresh-time 21600;


# A third subnet behind a relay agent chain
subnet6 2001:*:*:b::/64 {
        range6 2001:*:*:b::10 2001:*:*:b::20;
        option dhcp6.name-servers 2001:*:*:1::9;
}
rc.conf

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

#########################################################################################################
# WORLD-CORE
#########################################################################################################
ifconfig_vlan780="inet 193.*.*.12 netmask 255.255.255.240 vlan 780 vlandev em0 description -=WORLD-CORE=-"
ifconfig_vlan780_ipv6="inet6 2001:*:*::12 prefixlen 64"
#########################################################################################################
# IXP-CORE
#########################################################################################################
ifconfig_vlan781="inet 193.*.*.44 netmask 255.255.255.240 vlan 781 vlandev em0 description -=IXP-CORE=-"
ifconfig_vlan781_ipv6="inet6 2001:*:*:1::11 prefixlen 64"
#######################################################################################################
# IPv6
#########################################################################################################
ifconfig_em1="up"
#########################################################################################################
# TEST-NET
#########################################################################################################
ifconfig_vlan1500="vlan 1500 vlandev em1 description -=TEST\ NETWORK=-"
ifconfig_vlan1500_ipv6="inet6 2001:*:*:b::1/64"
#########################################################################################################
quagga_enable="YES"
gateway_enable=="YES"
ipv6_gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
dhcpd6_enable="YES"
radvd_enable="YES"
Кусок quagga show running-config

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

interface vlan780
 ipv6 nd suppress-ra
 ipv6 ospf6 cost 1
 ipv6 ospf6 dead-interval 40
 ipv6 ospf6 hello-interval 10
 ipv6 ospf6 instance-id 0
 ipv6 ospf6 passive
 ipv6 ospf6 priority 1
 ipv6 ospf6 retransmit-interval 5
 ipv6 ospf6 transmit-delay 1
!
interface vlan781
 ipv6 nd suppress-ra
 ipv6 ospf6 cost 1
 ipv6 ospf6 dead-interval 40
 ipv6 ospf6 hello-interval 10
 ipv6 ospf6 instance-id 0
 ipv6 ospf6 priority 1
 ipv6 ospf6 retransmit-interval 5
 ipv6 ospf6 transmit-delay 1
!
interface vlan1500
 ipv6 nd suppress-ra
 ipv6 ospf6 cost 1
 ipv6 ospf6 dead-interval 40
 ipv6 ospf6 hello-interval 10
 ipv6 ospf6 instance-id 0
 ipv6 ospf6 passive
 ipv6 ospf6 priority 1
 ipv6 ospf6 retransmit-interval 5
 ipv6 ospf6 transmit-delay 1
!
router ospf
 ospf router-id 193.*.*.44
 redistribute kernel route-map OSPF
 redistribute connected route-map OSPF
 redistribute static route-map OSPF
 passive-interface em0
 passive-interface em1
 passive-interface vlan780
 network 193.*.*.0/24 area 0.0.0.0
!
router ospf6
 router-id 193.*.*.44
 redistribute connected route-map OSPF-6
 interface vlan781 area 0.0.0.1
!
route-map OSPF-6 permit 10
!
ipv6 forwarding
Это все работает, разделение трафика на Мир и Украина происходит нормально как по IPv4 так и по IPv6

Re: DNS64 and NAT64

Добавлено: 2013-04-28 0:16:11
SomeBody
хм, тоже интересно бы узнать, что люди юзают, и вообше юзают ли NAT64...

Вроде для этого юзают tayga из портов, сам не пробовал

Re: DNS64 and NAT64

Добавлено: 2013-04-28 2:15:17
pautina
SomeBody писал(а):хм, тоже интересно бы узнать, что люди юзают, и вообше юзают ли NAT64...

Вроде для этого юзают tayga из портов, сам не пробовал
В ветке 9.1 Stable убрали с портов, но пакетом добавил и вроде установил, но вот правильно настроить не могу. Локальный адрес пингуется, а вот какие адреса выдавать клиентам я так и не понял и что натить, тоже не понял.
ifconfig nat64

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

nat64: flags=80d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet6 fe80::219:d1ff:fea9:ac5e%nat64 prefixlen 64 scopeid 0x10
        inet 192.168.255.1 --> 192.168.255.1 netmask 0xffffff00
        inet6 2001:*:*:c::1 prefixlen 96
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
        Opened by PID 1545
netstat -rn |grep nat64

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

192.168.255.0/24   nat64              US          0        0  nat64
192.168.255.1      link#16            UH          0        3  nat64
2001:*:*:c::/96              nat64                         US        nat64
fe80::%nat64/64                   link#16                       U         nat64
fe80::219:d1ff:fea9:ac5e%nat64    link#16                       UHS         lo0
ff01::%nat64/32                   fe80::219:d1ff:fea9:ac5e%nat64 U         nat64
ff02::%nat64/32                   fe80::219:d1ff:fea9:ac5e%nat64 U         nat64
Сеть 2001:*:*:c::/96 на других роутерах видна и адрес 2001:*:*:c::192.168.255.1 (2001:*:*:c::c0a8:ff01) пингуется, а вот пропинговать внешний ipv4? типа:
ping6 2001:**:c::8.8.8.8 (2001:67c:13b8:c::808:808)
не получается.

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

[root@v6gate ~]# ping6 2001:*:*:c::8.8.8.8
PING6(56=40+8+8 bytes) 2001:*:*:c::1 --> 2001:*:*:c::808:808
^C
--- 2001:*:*:c::8.8.8.8 ping6 statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss
tayga.conf

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

tun-device nat64
ipv4-addr 192.168.255.1
#ipv6-addr 2001:*:*:c:1
prefix 2001:*:*:c::/96
dynamic-pool 192.168.255.0/24
data-dir /var/db/tayga

Re: DNS64 and NAT64

Добавлено: 2013-04-29 8:35:23
lap
У меня какие-то воспоминания остались про нат64, что все работало, но ицмп вроде не ходило. Настраивал на сиське (asr1k). А с тайгой тоже совладать не получилось =(

Re: DNS64 and NAT64

Добавлено: 2013-04-29 22:19:46
SomeBody
Кстати, а почему не дать ешё серый ipv4 адрес, с натом ? зачем извращаться с only ipv6 ?

Re: DNS64 and NAT64

Добавлено: 2013-04-30 5:56:00
lap
У нас на тестах были девайсы, которые на тот момент могли только ипв6 выдавать, и их как-то надо было в мир ипв4 выпускать.

Re: DNS64 and NAT64

Добавлено: 2013-04-30 13:30:56
pautina
SomeBody писал(а):Кстати, а почему не дать ешё серый ipv4 адрес, с натом ? зачем извращаться с only ipv6 ?
уже думали над этим вопросом, но есть надежда, что НАТ64 более эффективен и производителен.

Re: DNS64 and NAT64

Добавлено: 2013-05-16 16:31:18
pautina
Здравствуйте все.
Прошли праздники, а сдвига нет. У кого-то может есть идеи, как можно предоставить доступ с сетей ipv6 к ресурсам ipv4. На английском много информации, но вот на русском 0.
Читал про сети 2002::/16 но не могу понять, это только доступ к ipv6 через сети ipv4 или все-таки можно выпускать и в ipv4.
Пробавал делать такое:

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

 % ifconfig  stf0 create
 % ifconfig lo0 inet 192.88.99.1 netmask 255.255.255.255 alias
 % ifconfig stf0 inet6 2002:c058:6301::624 prefixlen 16 alias deprecated link0 up
 % route delete -inet6 2002:: -prefixlen 16
 % route add -inet6 2002:: -prefixlen 16 ::1
 % route change -inet6 2002:: -prefixlen 16 ::1 -ifp stf0
Но к сетям ipv4 так и не получил. Пробавал прямо с сервера

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

[root@v6gate /usr/ports/net/tayga]# ping6 2002::192.88.99.1
PING6(56=40+8+8 bytes) 2001:67c:13b8:a::1 --> 2002::c058:6301
^C
--- 2002::192.88.99.1 ping6 statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss

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

 ping6 2002::8.8.8.8
PING6(56=40+8+8 bytes) 2001:67c:13b8:a::1 --> 2002::808:808
^C
--- 2002::8.8.8.8 ping6 statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss

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

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::/96                             ::1                           UGRS        lo0 =>
default                           fe80::215:17ff:fe94:153f%vlan781 UG1     vlan781
::1                               link#11                       UH          lo0
::ffff:0.0.0.0/96                 ::1                           UGRS        lo0
2002::/16                         ::1                           UGS        stf0
2002:c058:6301::624               link#16                       UHS         lo0

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

stf0: flags=1001<UP,LINK0> metric 0 mtu 1280
        inet6 2002:c058:6301::624 prefixlen 16 deprecated
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

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

[root@v6gate ~]# tcpdump -n -vvv |grep 192
tcpdump: WARNING: em0: no IPv4 address assigned
tcpdump: listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 74
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 75
16:33:28.662492 IP (tos 0xc0, ttl 1, id 26192, offset 0, flags [none], proto OSPF (89), length 84)
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 76
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 77
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 78
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 79
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 80
    192.88.99.1 > 0.0.0.0: IP6 (hlim 64, next-header ICMPv6 (58) payload length: 16) 2001:67c:13b8:a::1 > 2002::808:808: [icmp6 sum ok] ICMP6, echo request, seq 81
^C90 packets captured
92 packets received by filter
0 packets dropped by kernel

Re: DNS64 and NAT64

Добавлено: 2013-05-16 20:39:02
lap
Я сейчас пофтыкал про тайгу - и пришел к мнению что от ната 44 она не спасет:
What about stateful NAT?

TAYGA could never come close to offering the power and flexibility available in iptables and mature commercial NAT44 implementations, so instead TAYGA turns IPv6 into IPv4 in the most transparent manner possible, allowing existing IPv4-only tools to be used to further manipulate sessions flowing through it.

In other words, if you need stateful NAT64, route TAYGA's IPv4 path through a stateful NAT44.


как я из этого понял - тайга выплюнет на выходе "серый" ипв4, который еще надо будет пронатить в "белый". Она делает трансляцию один IPv6 в один IPv4.

Re: DNS64 and NAT64

Добавлено: 2013-05-16 21:52:38
pautina
От тайги отказался, так как она действительно делает NAT44 и еще сопоставляет серый ipv4 = ipv6 и тоже типа натит, двойной НАТ. ДУмаю будут большие потери качества.
А кто-то разбирался с интерфейсом faith?
Вот еще кое-что вычитал
faith(4) only works with TCP (so says the manpage anyway).