Vários endereços IP através da mesma interface e iptables

1

Administrador do sistema não é meu ponto strong. Minha situação é que temos 1 site que possui 4 domínios. O site em si serve diferentes modelos / conteúdo, dependendo de qual domínio é usado, simulando 4 sites diferentes.

Queremos SSL para cada domínio (atualmente, configuramos tudo corretamente com o apache e estamos trabalhando em três sites).

Temos 3 interfaces de rede física: eth5, eth6, eth7. Um funcionário anterior escreveu essas regras de roteamento IP para ajudar a configurar nossos endereços IP de host virtual. Eu realmente não entendo o que está acontecendo, exceto que, com esses recursos, 3 dos nossos domínios funcionam corretamente com SSL, correspondendo a hosts virtuais para cada endereço IP * .95

Eth5
ip route add *.*.*.0/24 dev eth5 proto kernel scope link src *.*.*.95 table 20
ip route add default via *.*.*.1 dev eth5 table 20
ip rule add from *.*.*.95 lookup 20 

Eth6
ip route add *.*.*.0/24 dev eth6 proto kernel scope link src *.*.*.12 table 40
ip route add default via *.*.*.1 dev eth6 table 40
ip rule add from *.*.*.12 lookup 40

Eth7
ip route add *.*.*.0/24 dev eth7 proto kernel scope link src *.*.*.11 table 30
ip route add default via *.*.*.1 dev eth7 table 30
ip rule add from *.*.*.11 lookup 30

Essas regras funcionaram para 3 dos 4 sites que precisamos de SSL. Temos outro endereço IP * .14 que dissemos ao nosso DNS interno (bind9) e godaddy (correlacionando ao IP público de * .14 que é * .70) para apontar aqui. Mas sinto que preciso adicionar outra regra.

Eu quero saber o que essas regras fazem, por que preciso de uma regra e como posso fazer .14 realmente funcionar.

O domínio que eu quero apontar para 14 está apontando para 12 (em nosso site interno). Externamente está apontando para 70, que é 14, então nada está aparecendo, porque essa parte não está funcionando!

Editar o comentário de Florenz:

Nosso servidor está executando o Ubuntu 12.10. Temos o apache que manipula nossos hosts virtuais com uma pasta chamada sites-available e outros sites habilitados. Eu tenho essa parte toda funcionando corretamente, onde existem quatro sites disponíveis e habilitados, contendo hosts virtuais.

Nesses, temos <virtualhost> que contêm os endereços IP que correspondem a .95, .11, .12 e o que não funciona .14 Como eles usam SSL, eles usam a porta: 443

Todos os certificados SSL estão sendo executados e vinculados lá também. Eu não acho que o lado do apache dos hosts virtuais não seja feito corretamente. Eu acho que tem a ver com essas regras de roteamento IP. Eu realmente não sei muito sobre essas coisas, então é difícil explicar isso.

    
por amurrell 14.08.2013 / 20:25

1 resposta

0

Então eu descobri uma solução para esse problema.

Existem duas maneiras de corrigi-lo, uma delas é a maneira como perguntei aqui - crie uma nova interface para refletir o IP x.x.x.14.

Anteriormente, eu havia definido um novo Virtualhost para executar o SSL no domínio restante. O problema é que definir o Virtualhost com um de nossos IPs não é suficiente. Precisávamos relacionar esse IP com uma de nossas interfaces. Como não estou familiarizado com interfaces de escrita ou criando interfaces virtuais - e já temos interfaces complicadas - essa não foi uma rota fácil para mim (sem trocadilhos).

A maneira como consertei isso foi executar os dois Virtualhosts no mesmo endereço IP e porta - um dos endereços IP já relacionados a uma interface de trabalho. Tudo o que eu precisava fazer era adicionar a diretiva NameVirtualhost, para que a sobreposição não causasse um aviso com o Apache. Houve uma excelente descrição deste aqui .

Um exemplo de que a referência acima fornecida demonstra a ideia, que eu adaptei para o meu caso:

NameVirtualHost x.x.x.12:433

<VirtualHost x.x.x.12:433>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost x.x.x.12:433>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>

Usamos os sites do apache disponíveis e os sites ativados, portanto cada virtualhost é definido em seu próprio arquivo. Eu incluí a diretiva NameVirtualhost em apenas um deles e funcionou.

Conclusão: Acabei de usar o mesmo endereço IP que já tinha uma interface de trabalho para evitar o problema de descobrir como criar um novo.

    
por 15.08.2013 / 23:42