Re: Relato de uso do Controle de Conexões Simultâneas (CONNLIMIT)
roneyeduardo ja tinha isso no mikrotik ja, mas com seu post ai tive uma visao fora do quadrado bem legal.
agora vamos la roney, tu conhece de handshake?
Handshake ou aperto de mão é o processo pelo qual duas máquinas afirmam uma a outra que a reconheceu e está pronta para iniciar a comunicação. O handshake é utilizado em protocolos de comunicação, tais como: UDP, FTP, TCP, HTTP, e em cima das FLAG's TCP/IP. etc.
Assim você consegue fazer uma conexão entre duas máquinas só esperando o serviço a ser disponibilizado.
Fiz aqui um QoS no mikrotik bem interessante em cima do que voce tinha analisado CONNLIMIT e comecei a entender bem mais como que funciona.
FIz QoS em cima de conexoes ESTABELECIDAS, que usam as FLAGS "ACK"
Deu um resultado bem interessante aqui.
Mas mesmo assim vou dar mais uma estudada em cima disso que quero tirar umas duvidas se 'e melhor fazer QoS em cima FLAG'S "SYN" ou "ACK"
SYN = 'e inicio de conexao.
ACK = 'e quando a conexao esta estabelecida por uma das partres
Se alguem que estiver lendo esse post enternder bem de FLAGS TCP/IP e quiser discutir algo, poste ai.
Abracos.
Re: Relato de uso do Controle de Conexões Simultâneas (CONNLIMIT)
blz cara...
depois vou dar uma olhada com mais calma... mas fico bom!!
valeu
Re: Relato de uso do Controle de Conexões Simultâneas (CONNLIMIT)
Muito interessante seu artigo!! Tive que fazer umas modificacoes para funcionar. Vamos la (vou tentar ser didatico como voce! eheh)
Fiz as seguintes regras:
iptables -N CONNLIMIT
iptables -A FORWARD -p TCP -d 0/0 --dport 21 -j CONNLIMIT
iptables -A CONNLIMIT -p TCP -m state ! --state RELATED -m connlimit --connlimit-above 1 --connlimit-mask 32 -j DROP
Ou seja, nao deixa ninguem fazer mais do que uma conexao de FTP. Ocorre que abri 3 conexoes com o ftp da Unicamp (ftp.unicamp.br) e baixei 3 arquivos diferentes.. Nao funcionou...
Ai tentei da seguinte forma:
iptables -t mangle -N CONNLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 21 -j CONNLIMIT
iptables -t mangle -A CONNLIMIT -p TCP -m state ! --state RELATED -m connlimit --connlimit-above 1 --connlimit-mask 32 -j DROP
Ou seja, comecei a trabalhar na tabela mangle. Ai deu tudo certo. Abri a 1a conexao com o ftp e deixei baixando um arquivo. Fui tentar abrir a segunda e nada....
Se alguem tiver algum conhecimento para explicar pq somente da forma que fiz funcionou, manda ai!
Abraco!
Fabricio
Re: Relato de uso do Controle de Conexões Simultâneas (CONNLIMIT)
roney qual kernle vc usou e qual ver. do POM vc usou?
Re: Relato de uso do Controle de Conexões Simultâneas (CONNLIMIT)
Aê galera, seguinte, eu não postei no artigo como recompilar, aplicar patch e etc...pq eu não precisei fazer isso...mas sobre esses assuntos tem muito ai pelo google. Como eu uso CentOS, o iptables dele já vem com este suporte, porém o kernel não, mas eu consegui achar um repositório de pacotes RPM onde um cara fez um pacote pré-compilado só com o módulo do connlimit, bastando apenas instalar esse pacote RPM e dar um modprobe no módulo (isso pq o Kernel do RH Enterprise / CentOS não aceitam o patch do connlimit direto do pom, dá erro....mas esse cara desse repositório fez umas alterações no código pra poder funcionar)
Mas minha vontade era realmente apenas de criar um artigo conceitual, pois acho que o maior problema da galera era realmente fazer uma implementação bacana do Connlimit.
Quanto à questão de usar a tabela mangle, eu vou fazer uns testes aqui (Referente ao que o Fabricio Viana falou).
Quanto à isso do handshake, sobre fazer QOS em cima das Flags TCP do pacote, acho que realmente seria interessante elaborarmos um estudo quanto a isso. Preliminarmente, acho bem interessanto fazer os pacotes SYN passarem com prioridade maior, e com maior banda reservada, e deixar os pacotes ACK passando por uma regra com menor prioridade e banda mais limitada...Bom, seria uma boa.
Mas na minha opinião, acho que excelente mesmo seria fazer uma integração ULTRA entre Squid, Iptables e HTB (que é o QOS que eu uso aqui). Eu já tô estudando essa possibilidade, com alguns patches que existem pro squid, como o ZPH e o TPROXY...e tbm na minha cabeça, seria preciso tbm botar o IMQ pra funcionar...Mas isso aí é coisa pra depois, pois eu tô sem máquina aqui pra fazer testes, recompilação, etc...
A minha idéia seria assim, com o iptables + IMQ, agente conseguiria colocar os serviços que passam por fora do proxy (tipo, FTP, MSN, jogos On-line, SMTP, POP3, etc..) em queues (filas) com prioridades definidas...E pra trabalhar em cima dos acessos HTTP, com o Squid + TPROXY + ZPH, dava pra gente fazer acls com arquivos do tipo exe, iso, wmv, zip, rar, etc...e definir um valor de TOS (que é o que os patches ZPH fazem), ai no controle de banda (HTB) fazer com que os pacotes com determinado TOS tivessem menos prioridades...e por ai vai....Mas isso por enquanto eu tô só na VIAGEM, pois como falei, ainda não pude fazer as implementações na prática...t+