|
Tuneis de VPN com protocolo GRE: msg#02635culture.publications.dicas
Tuneis de VPN com protocolo GRE =============================== Colaboração: Antonio Carlos Braga Machado VPN significa Virtual Private Network, usada amplamente para fazer um túnel entre duas ou mais redes distantes, separadas pela internet, nesse caso não haverá criptografia mas temos uma grande performance de conexão. Nosso exemplo será abordado matriz e duas filiais, sendo possível menos ou mais dependendo da sua necessidade. Vamos trabalhar com três servidores e vamos chamá-lo de "matriz", "filial1" e "filial2", o tipo de conexão usada será adsl e minha distribuição usada foi ubuntu 5.10, mas qualquer outra funcionaria perfeitamente. Servidor matriz Rede local: 192.168.0.0/24 Ip Local: 192.168.0.200 Ip ADSL: 172.16.1.2 Servidor filial1 Rede local: 192.168.1.0/24 Ip Local: 192.168.1.1 Ip ADSL: 172.16.2.2 Servidor filial2 Rede local: 192.168.2.0/24 Ip Local: 192.168.2.1 Ip ADSL: 172.16.3.2 Requisitos ========== Será preciso ter o kernel compilado com GRE ativado como modulo, geralmente não há necessidade de recompilação no meu caso ubuntu 5.10, para ter certeza verifique na seção Networking Option você irá encontrar a opção: "IP: GRE tunnels over IP" e o pacote iproute2. Configurando Servidor Matriz ============================ Ativando o ip_forward # echo "1" > /proc/sys/net/ipv4/ip_forward Primeiro criaremos dois tuneis, um para filial1 e outro para filial2 # ip tunnel add filial1 mode gre remote 172.16.2.2 local 172.16.1.2 ttl 255 # ip tunnel add filial2 mode gre remote 172.16.3.2 local 172.16.1.2 ttl 255 Foi criado dois tuneis com o nome de filial1 e filial2 e será o nome das interfaces, tipo você terá eth0 (local) eth1 (rede adsl) filial1(tunel para filial1) filial2 (tunel para filial2), utilizando o protocolo gre definindo que ip remoto filial1 (ip da internet do servidor filial1) 172.16.2.2 e ip local (ip da internet do servidor matriz) e o mesmo padrão adotado para filial2. Estamos ativando as duas interfaces filial1 e filial2. # ip link set filial1 up # ip link set filial2 up Atribuindo o ip 192.168.0.200 para as duas interfaces de tuneis, pode-se ver que é o mesmo para os dois e é o mesmo ip da rede local matriz. # ip addr add 192.168.0.200 dev filial1 # ip addr add 192.168.0.200 dev filial2 Estamos definindo a rota para a rede 192.168.1.0/24 pela interface filial1 e 192.168.2.0/24 para interface filial2. # ip route add 192.168.1.0/24 dev filial1 # ip route add 192.168.2.0/24 dev filial2 Em conexões ADSL, cable, PPPoE e PPtP , quando criamos tuneis com iproute a um problema em que pacotes pequenos se perdem, eu por exemplo utilizo conexão DSL INTERDADOS da telefonica, como se fosse um speedy sem internet para rede privada, eu conseguia pingar todas as redes mas na hora de acesso a um share e a um terminal server a conexão trava, se você tiver esse problema adicione essa regra no seu firewall. Mais detalhes do problema em http://lartc.org/howto/lartc.cookbook.mtu-mss.html. # iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -clamp-mss-to-pmtu Ficaria mais fácil colocar tudo em um script, pois ao reiniciar o computador perderia tudo. #! /bin/sh # description: Inicializacao do iproute # DEV1=filial1 # (interface para filial1) EXT_REMOTE1=172.16.2.2 # (ip remoto do servidor filial 1) SUBNET_REMOTE1=192.168.1.0/24 # (rede local remota da filial1) DEV2=filial2 # (interface para filial2) EXT_REMOTE2=172.16.3.2 # (ip remoto do servidor filial 2) SUBNET_REMOTE2=192.168.2.0/24 # (rede local remota da filial2) EXT_LOCAL=172.16.1.2 # (ip internet servidor matriz) INT_LOCAL=192.168.0.200 # ( ip local servidor matriz) echo "1" > /proc/sys/net/ipv4/ip_forward ip tunnel add $DEV1 mode gre remote $EXT_REMOTE1 local $EXT_LOCAL ttl 255 ip tunnel add $DEV2 mode gre remote $EXT_REMOTE2 local $EXT_LOCAL ttl 255 ip link set $DEV1 up ip link set $DEV2 up ip addr add $INT_LOCAL dev $DEV1 ip addr add $INT_LOCAL dev $DEV2 ip route add $SUBNET_REMOTE1 dev $DEV1 ip route add $SUBNET_REMOTE2 dev $DEV2 iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -clamp-mss-to-pmtu Configurando Servidor Filial1 ============================= A configuração para as filiais é quase identica só trocando os valores, vou abreviar pois foi explicado anteriormente. # echo "1" > /proc/sys/net/ipv4/ip_forward Agora o criamos um tunel para a matriz. # ip tunnel add matriz mode gre remote 172.16.1.2 local 172.16.2.2 ttl 255 Estamos ativando a interface matriz. # ip link set matriz up Definimos o ip 192.168.1.1 para a interface de tunel, o mesmo da rede local interna. # ip addr add 192.168.1.1 dev filial1 Definindo a rota para a rede local da matriz. # ip route add 192.168.0.0/24 dev filial1 Correção dos pacotes. # iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -clamp-mss-to-pmtu Script para que nada se perca. #! /bin/sh # description: Inicializacao do iproute # DEV=matriz EXT_REMOTE=172.16.1.2 SUBNET_REMOTE=192.168.0.0/24 EXT_LOCAL=172.16.2.2 INT_LOCAL=192.168.1.1 echo "1" > /proc/sys/net/ipv4/ip_forward ip tunnel add $DEV mode gre remote $EXT_REMOTE local $EXT_LOCAL ttl 255 ip link set $DEV up ip addr add $INT_LOCAL dev $DEV ip route add $SUBNET_REMOTE dev $DEV iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -clamp-mss-to-pmtu Configurando Servidor Filial2 ============================= A configuração é identica a filial 1 só trocando os valores. # echo "1" > /proc/sys/net/ipv4/ip_forward Agora o criamos um tunel para a matriz. # ip tunnel add matriz mode gre remote 172.16.1.2 local 172.16.3.2 ttl 255 Estamos ativando a interface matriz. # ip link set matriz up Definimos o ip 192.168.2.1 para a interface de tunel, o mesmo da rede local interna. # ip addr add 192.168.2.1 dev filial1 Definindo a rota para a rede local da matriz. # ip route add 192.168.0.0/24 dev filial1 Correção dos pacotes. # iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -clamp-mss-to-pmtu Script para que nada se perca. #! /bin/sh # description: Inicializacao do iproute # DEV=matriz EXT_REMOTE=172.16.1.2 SUBNET_REMOTE=192.168.0.0/24 EXT_LOCAL=172.16.3.2 INT_LOCAL=192.168.2.1 echo "1" > /proc/sys/net/ipv4/ip_forward ip tunnel add $DEV mode gre remote $EXT_REMOTE local $EXT_LOCAL ttl 255 ip link set $DEV up ip addr add $INT_LOCAL dev $DEV ip route add $SUBNET_REMOTE dev $DEV iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -clamp-mss-to-pmtu Agora teste o ping para ambas a redes remotas da matriz para filiais e filiais para matriz. Documentação de referência do iproute2 foi "Linux Advanced Routing & Traffic Control HOWTO" em http://lartc.org/howto/. ----------------------------------------------------------- Fórum SlackLife =============== Colaboração: Fábio Becamp <<fabiobecamp (a) gmail com>> O Fórum da comunidade Slacklife surgiu da idéia de ter um canal de união tanto para usuários novatos como experientes. O objetivo do fórum foi sempre gerar união, amizade e troca de conhecimentos em Linux, mais especificamente Slackware, nossa tão querida distribuição. Todos são bem vindos no fórum, tentamos ajudar a todos igualmente, mantendo uma equipe de adminidtradores e moderadores ética, amiga e bastante simpática para que cada vez mais consigamos unir os usuários em prol da evolução do projeto. O crescimento do fórum se dá graças ao comprometimento de seus desenvolvedores e usuários, que como uma grande família ajudam, sempre que possível, com todas as suas forças e seus conhecimentos. Saiba mais: http://forum.slacklife.com.br/ |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Buscando Segurança Online: Gerenciando "Trolls" em um fórum feminista: 02635, Rubens Queiroz de Almeida |
|---|---|
| Next by Date: | Steganografia - Veja além do que os olhos permitem: 02635, Rubens Queiroz de Almeida |
| Previous by Thread: | Buscando Segurança Online: Gerenciando "Trolls" em um fórum feministai: 02635, Rubens Queiroz de Almeida |
| Next by Thread: | Steganografia - Veja além do que os olhos permitem: 02635, Rubens Queiroz de Almeida |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |