# Estes testes foram realiazados com o sistema operacional Linux CentOS 6.8 e autenticação com modem-adsl pppoe no modo bridge.
# Como a intenção é demonstrar o roteamento e controle através do Linux o modem foi configurado como bridge (camada 2) retirando a funcionalidade de gerenciamento através do modem (camada 3).
# OBS: Se o acesso a internet só é possivel primeiramente com o modem autenticado, altere-o depois para o modo bridge quando for efetuar as configurações para autenticação e roteamento.
# Instalar pacotes de conexão, autenticação e ferramentas de apoio.
yum install ppp rp-pppoe radvd nmap iptraf wget iptraf dhcp bind bind-utils mlocate ntsysv -y
yum update -y
# Vamos precisar de alguns pacotes que não tem na distribuição padrão do CentOS, como o “wide-dhcp6”
rpm -ivh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum install wide-dhcpv6 -y
mkdir /etc/wide-dhcpv6
cp /usr/share/doc/wide-dhcpv6/dhcp6c.conf.sample /etc/wide-dhcpv6/dhcp6c.conf
# configurar a conexão ppp para obter o endereço IPv6.
vi /etc/ppp/options
lock
+ipv6 ipv6cp-use-ipaddr
vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
IPV6FORWARDING=yes
HOSTNAME=localhost.localdomain
# A nossa interface de rede interna (LAN) será a “eth0”
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.25.1
PREFIX=24
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6INIT=yes
# A nossa interface “eth1″ será a de conexão fisica ao modem
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
IPV6INIT=yes
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
# Configure a conexão de adsl, responda as perguntas até encerrar a configuração
adsl-setup
# Edite o arquivo gerado
vi /etc/sysconfig/network-scripts/ifcfg-ppp0
USERCTL=yes
BOOTPROTO=dialup
NAME=DSLppp0
DEVICE=ppp0
TYPE=xDSL
ONBOOT=yes
PIDFILE=/var/run/pppoe-adsl.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=80
LCP_FAILURE=3
LCP_INTERVAL=20
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
DEFROUTE=yes
SYNCHRONOUS=no
ETH=eth1
PROVIDER=DSLppp0
USER=turbonet@turbonet
PEERDNS=no
DEMAND=no
MTU=1492
CLAMPMSS=1440
IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
PIDFILE=/var/run/pppoe.pid
PPPD_EXTRA=”ipv6 ,”
IPV6_DEFAULTDEV=”ppp0″
# Vamos editar o client do serviço dhcp para IPv6
vi /etc/wide-dhcp6/dhcp6c.conf
interface eth0 { information-only; send domain-name-servers, domain-name; }; interface ppp0 { send ia-pd 0; send ia-na 0; request domain-name-servers; request domain-name; }; id-assoc na 0 { }; id-assoc pd 0 { prefix ::/64 infinity; prefix-interface eth0 { sla-id 1; #sla-id 0; sla-len 0; }; };
mkdir -p /var/lib/dhcpv6
# Agora vamos editar o radvd (Router Advertisement Daemon)
interface eth0 { AdvSendAdvert on; MinRtrAdvInterval 5; MaxRtrAdvInterval 30; AdvDefaultPreference medium; prefix ::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; AdvValidLifetime 3600; AdvPreferredLifetime 1200; }; RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 { AdvRDNSSLifetime 30; }; };
PS: A linha RDNSS seria para informar o dns público do Google, mas nos meus testes não funcionou muito bem
por isso a linha “send domain-name-servers, domain-name;” no dhcp6c.conf resolveu o problema fornecendo o dns
da operadora…
# Insira a interface ppp0 no arquivo
vi /etc/sysconfig/dhcp6c
# specify the interface for dhcp6c
DHCP6CIF=ppp0
# Command line options here
DHCP6CARGS=
# Por padrão o Linux não faz forwarding para os protocolos IPv4 e IPv6, é necessário habilitar.
# Insira no final do arquivo /etc/sysctl.conf
vi /etc/sysctl.conf
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.ppp0.accept_ra=2
Altere: net.ipv4.ip_forward = 0
para 1
# Salve o arquivo e execute:
sysctl -p
cd /etc
ln -s wide-dhcpv6/dhcp6c.conf .
/etc/rc.d/init.d/dhcp6c start
/etc/rc.d/init.d/radvd start
Verificando os endereços no servidor….
[root@localhost ~]# ifconfig eth0 Link encap:Ethernet Endereço de HW 08:00:27:BB:BF:E5 inet end.: 192.168.25.1 Bcast:192.168.25.255 Masc:255.255.255.0 endereço inet6: 2804:7f4:3b80:872:a00:27ff:febb:bfe5/64 Escopo:Global endereço inet6: fe80::a00:27ff:febb:bfe5/64 Escopo:Link eth1 Link encap:Ethernet Endereço de HW 08:00:27:11:EA:FE endereço inet6: fe80::a00:27ff:fe11:eafe/64 Escopo:Link lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina ppp0 Link encap:Protocolo Ponto-a-Ponto inet end.: 177.96.81.10 P-a-P:179.184.126.184 Masc:255.255.255.255 endereço inet6: 2804:7f4:3222:409a:6063:8483:1221:44c7/64 Escopo:Global endereço inet6: fe80::6063:8483:1221:44c7/10 Escopo:Link
Nas máquinas Linux clientes:
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
IPV6INIT=yes
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp # “se for usar dhcp client”
IPV6INIT=yes
[root@localhost ~]# ifconfig eth0 Link encap:Ethernet Endereço de HW 08:00:27:86:D7:7A inet end.: 192.168.25.10 Bcast:192.168.25.255 Masc:255.255.255.0 endereço inet6: 2804:7f4:3b80:872:a00:27ff:fe86:d77a/64 Escopo:Global endereço inet6: fe80::a00:27ff:fe86:d77a/64 Escopo:Link lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina [root@localhost ~]#
# Configuração no Windows Client:
# Finalizando…
chkconfig radvd on
chkconfig dhcp6c on
As configurações repassadas permitem que as máquinas clientes consigam acesso a sites que já rodam no novo protocolo IPv6 como o yahoo, google, netflix….
No entanto muitos sites e servicos de email ainda se utilizam do protocolo IPv4. Para tanto é necessário configurar o servidor para acesso em modo de pilha dupla “aceita conexões em IPv4 e IPv6”.
O servidor deverá ter os serviços de dhcp, dns (bind) e NAT Masquerade para permitir as conexões no protocolo antigo IPv4