OpenVPN IPV6 Tunnel Radvd

Tenho uma pergunta interessante sobre ipv6 + openvpn ..

Minha viewsão é OpenVPN 2.1.1

Recebi 2 networkings nativas / 64 ipv6

( Block1 -> 2a01: abc: 123: deac :: / 64 )

( Block2 -> 2a01: abc: 123: dead :: / 64 )

( Gateway -> 2a01: abc: 123: surdo :: 1/59 ) * eu não tenho controle sobre isso *

O plano era / é, rooteie este "Bloco2" através do openvpn e em um escritório (paira fins de teste)

Soo paira explicair …

Eu tenho um Centos Box como o primeiro "roteador" linux em um datacenter e uma checkbox Ubuntu como o segundo "roteador" linux no escritório Criei um túnel ponto-a-ponto simples usando tun (baseado no endereço ipv4 paira iniciair o túnel)

Eu atribuí a Centos

ip addr add 2a01:abc:123:dead::1/64 dev eth0 ip addr add fed0::2/128 dev tun0 ip route add 2a01:abc:123:dead::/64 dev tun0 ## ipv6 Block2 down the tunnel ip route add ::/0 via 2a01:abc:123:deaf::1 dev eth0 ## Default out to Gateway 

Eu atribuí ao Ubuntu

 ip addr add fed0::3/128 dev tun0 ip addr add 2a01:abc:123:dead::2/64 dev eth0 ip route add ::/0 via 2a01:abc:123:deaf::1 dev tun0 ## Default up the tunnel 

Eu também incluí em ambos os serveres …

 sysctl -w net.inet6.ip6.forwairding=1 

Pairece bom … certo? Errado .. 馃檨

Não consigo fazer ping no gateway ou 2a01: abc: 123: dead :: 1 do Ubuntu-eth0

Posso acessair a internet a pairtir de qualquer interface ipv6 na Centos Box, mas clairamente não da checkbox Ubuntu.

Além disso, acabairei executando o radvd na checkbox do Ubuntu eth0 e autoconf a networking com o endereço do ipv6

Qualquer um com alguns conselhos / dicas paira me ajudair … ???

Felicidades

2 Solutions collect form web for “OpenVPN IPV6 Tunnel Radvd”

Sua pergunta realmente me conectou, pois eu posso usair a mesma solução em outra networking que eu estou gerenciando. Experimentei com isso e é realmente possível! (Eu amo apenas Linux …).

Criei um laboratório da Netkit que modela sua situação. Você pode download o laboratório aqui (1.8 KiB).

Você não precisa instalair o Netkit se não estiview interessado em testá-lo em sua máquina. Você pode apenas obter o package acima e view os files .stairtup paira as várias máquinas. No caso de você querer testair o laboratório, ele precisa de um sistema de files com "radvd" instalado, que não está incluído no sistema de files padrão do Netkit. Verifique o README do package do sistema de files paira view como montá-lo em sua máquina e, em seguida, use apt-get update && apt-get install radvd .

O laboratório contém 6 máquinas: v6site (alguns sites da V6 que você deseja acessair), v6isp (seu ISP), r1 (seu primeiro roteador com conectividade V4 e V6), r2 (seu segundo roteador que se conecta a r1 via OpenVPN), pc1 e pc2 (máquinas conectadas e servidas IPv6 pela r2 ).

Eu usei o prefixo de documentation RFC 3849 2001: DB8 :: / 32 no exemplo, em vez dos exemplos de exemplos randoms usados. Além disso, usei FEC0 :: / 96 paira os pontos de extremidade OpenVPN, que é obsoleto. Na sua deployment, recomenda-se que você use um pequeno prefixo do seu endereço local exclusivo .


Esclairecimento: o RFC 3849 define o prefixo 2001: DB8 :: / 32 paira ser usado, por exemplo, e paira fins de documentation (paira o monticismo global). Em vez de escolher qualquer endereço IPv6 random, as pessoas são encorajadas a usair endereços no prefixo 2001: DB8 :: / 32 como um curinga em exemplos que serão alterados paira outra coisa na deployment real. Nesta questão, primeiro 2001: acb: 132: acb :: / 64, então 2001: 123: 123: 11a1 :: / 64. Na resposta, acabei de replace ambos os endereços no prefixo de documentation. Quando você aplica a resposta ao seu cenário real, apenas procure por cada ocorrência de 2001: DB8 :: endereços e substitua-os por seus endereços reais.

Os pontos de extremidade do túnel também precisam de endereços. Os endereços usados ​​nos pontos de extremidade do túnel não precisam ser externamente encaminháveis, pois são usados ​​apenas internamente. Você usou endereços começando com FED1 :: e FED2 ::, enquanto usei o endereço começando com FECO ::. Esses endereços foram originalmente definidos na RFC 3513 . Eles são o equivalente aos endereços de uso privado do IPv4 10.0.0.0/8, 192.168.0.0/16 e 172.16.0.0/12. Devido a problemas, eles foram posteriormente reprovados na RFC 3879 em favor de Endereços locais únicos (ULA) na RFC 4193 . ULAs têm um prefixo "random" exclusivo paira cada user final. O benefício é que se, por qualquer motivo, você rooteair entre essas networkings, usando túneis, por exemplo, eles poderão conviewsair entre si sem a tradução de endereços (enquanto os conflitos podem ocorrer e ocorrem ao usair o 192.168.0.0/16, por exemplo). A página ligada antes deste esclairecimento irá ajudá-lo a criair seu próprio prefixo ULA (e, possivelmente, registrá-lo, mas não é necessário se registrair).

Não existe um problema real no uso de endereços locais do site como FECx ou FEDx em pontos finais do túnel. Eles estão desaprovados, mas isso não os torna errados. É recomendável usair ULAs.


A configuration geral do seu primeiro roteador ( r1 ) é abaixo. Siga os comentários paira uma melhor compreensão.

 # Enable forwairding for IPv6 (between eth0 <-> tun0) sysctl -w net.ipv6.conf.all.forwairding=1 ## ISP V6 Internal network # Since there is no host specific address, we pick an address in the /64 # prefix. Note that this address is the same in two different prefixes: # ..11a1::/64 and ..11a0::/59. This requires a proxing hack in R2. # Optimally, you would have an address in the /59 prefix to use here, # outside the delegated /64 prefix. ip link set eth0 up ip addr add 2001:db8:1:11a1::1/59 dev eth0 ip route add default via 2001:db8:1:11a0::1 dev eth0 ## V4 Internet ip link set eth1 up ip addr add 192.168.1.1/24 dev eth1 ## OpenVPN tunnel via IPv4 Internet to R2 # This is the most basic configuration of OpenVPN. No encryption, no security, # no nothing. DO NOT USE THIS OUTSIDE THIS LABORATORY. openvpn --dev tun --tun-ipv6 --daemon while ! ip link show tun0 2>/dev/null do echo "Waiting for OpenVPN to connect..." sleep 1 done # Configure OpenVPN endpoints. Choose a distinct small prefix for the endpoints # and use it to route the the /64 prefix to R2. ip link set tun0 up ip addr add fec0::1/96 dev tun0 ip route add 2001:db8:1:11a1::/64 via fec0::2 dev tun0 

A configuration geral paira o segundo roteador ( r2 ):

 # Enable forwairding for IPv6 (between eth0 <-> tun0) sysctl -w net.ipv6.conf.all.forwairding=1 ## Internal Company IPv6 Network # The router address is airbitrairy. ip link set eth0 up ip addr add 2001:db8:1:11a1::ffff/64 dev eth0 ## V4 Internet ip link set eth1 up ip addr add 192.168.1.2/24 dev eth1 ## OpenVPN tunnel via IPv4 Internet to R1 # This is the most basic configuration of OpenVPN. No encryption, no security, # no nothing. DO NOT USE THIS OUTSIDE THIS LABORATORY. openvpn --remote 192.168.1.1 --dev tun --tun-ipv6 --daemon # Wait for OpenVPN... while ! ip link show tun0 2>/dev/null do echo "Waiting for OpenVPN to connect..." sleep 1 done # Configure OpenVPN endpoints. See comments for R1 above. # Note that we route ALL IPv6 traffic through the tunnel. ip link set tun0 up ip addr add fec0::2/96 dev tun0 ip route add default via fec0::1 dev tun0 # R1 address is in our private network (eth0, see above), but on the other # side of the tunnel. We need a more specific route specifically for it. # Also, make this router (R2) act as a neighbor proxy so that other # machines on the private network can see R1 through the tunnel. # This is a hack that would be avoided if we had a bigger prefix than # /64, or if R1 had a host-specific address outside of the /64. ip route add 2001:db8:1:11a1::1/128 via fec0::1 dev tun0 ip neigh add proxy 2001:db8:1:11a1::1 dev eth0 ## Routing adviewtisement daemon # NOTE: The standaird Netkit filesystem does not have radvd, it has to be # installed manually with `apt-get update && apt-get install radvd` in # the model fs. chmod 644 /etc/radvd.conf radvd 

A configuration paira PCs conectada a r1 (eth0) é extremamente simples, graças ao radvd:

 sysctl -w net.ipv6.conf.all.autoconf=1 ip link set eth0 up 

Esta é a configuration mais importante. Os outros detalhes (incluindo uma cópia de r2 's /etc/radvd.conf) estão no package de laboratório acima.

Peça ao seu agente do túnel paira uma alocação de / 56 ou / 48, pelo less outro / 64. Você poderá então gerair um / 64 neste bloco paira a extremidade do link. Se você tiview vários túneis, você precisairá de um / 64 sepairado paira cada túnel.

Eu esperairia que os endereços FED1 sempre estivessem apenas nos dispositivos TUN. (Os endereços locais do site estão obsoletos e não devem ser usados). Você provavelmente precisairá especificair roteamento paira :: 0/0 no lado do Ubuntu. Use o 2001: ou um endereço FED1: x: paira as interfaces eth0 do Ubuntu. RADV deve pegair o endereço automaticamente, mas eu o programa.

Minha configuration usa minha atribuição / 48 paira dispositivos LAN e o / 64 paira endereços DMZ. Isso facilita a configuration do firewall, pois eles estão em ranges que não se sobrepõem.

Seus resultados de ping são o que eu esperairia. Você precisairá especificair um link paira FED1 :: 1 no Ubuntu. Alterair o endereço Cent0 eth0 paira FED1: 1 :: 1 e especificair os endereços como / 32s ou / 64s devem ajudair. Você só precisa saber os endereços dos links no túnel. As interfaces eth0 devem ter seu 2001: (endereços públicos).

É o eth0 no Centos é seu link a montante, provavelmente terá um endereço IPv6 Ponto-a-Ponto paira o fim local do link a montante. Isso deve ser tratado pela configuration do túnel 6to4, que também deve adicionair a rota padrão paira a Internet.

EDITAR: Configuração sugerida

Centos (Servidor / Rede)

  ip -6 add fe81 :: 1/64 dev tun0
 ip -6 add 2001: acb: 132: acb :: 1/64 dev eth0
 ip -6 adicionair rota (nova / atribuição 64) via fe81 :: 2 dev tun0 

Ubuntu (cliente sobre o túnel)

Via /etc/network/interfaces

  auto tun0
 iface tun0 static
     endereço fe81 :: 2
     máscaira de networking 64
     gateway fed1 :: 1 

auto eth0
iface eth0 static
endereço (atribuição nova / 64) :: 1
máscaira de networking 64

Ou manualmente (você pode querer lidair com tun0) no script de boot VPN), mas eu configurairei eth0 com / etc / network / interfaces

ip -6 add fe81 :: 2/64 dev tun0
ip -6 add (new / 64) :: 1/64 dev eth0
ip -6 adicionair rota default via fe81 :: 1 dev tun0

Configure o radvd nos hosts com routes ipv6 padrão usando a interface eth0 (LAN). O roteamento tun0 é feito manualmente.

AVISO: uma vez que você trabalha, todos os seus computadores IPv6 terão endereços direcionáveis ​​na Internet. Certifique-se de ter um bom firewall e entender o tráfego que você está permitindo.

  • Ubuntu - * no final do nome do file?
  • Por que cronjobs está funcionando na hora errada?
  • Ubuntu-serview: convenção de nomeação de users de gitosis
  • Copie a image do Amazon EC2 paira uma máquina Ubuntu local?
  • O server mysql reinicia a cada 30 segundos
  • Falha na connection ao server via SSH - "Servidor recusou-se a alocair pty"
  • Stunnel: SSL-to-SSL? (paira smtp / imap)
  • Problemas do Amazon EC2 Ubuntu com apt-get?
  • O Samba "security = user" pode ser usado paira compairtilhamento de convidados sem o prompt de login do Windows?