Você está encaminhando ou criando pontes ao fornecer acesso a um domínio. Parece que você está tentando fazer as duas coisas ao mesmo tempo e as chances são de que acione o redirecionamento e interrompa indiretamente a conectividade por causa das regras de firewall.
Considere os seguintes casos:
-
Você faz o Bridging. Pacotes são executados através da cadeia FORWARD do iptables e entregues diretamente do seu host para guest, sem roteamento real. É importante saber que a cadeia FORWARD se aplica mesmo para a ponte por padrão. Normalmente, os provedores solicitarão que você vincule um endereço MAC Virtual específico para que isso funcione por motivos de segurança (spoofing & al).
-
Você faz o roteamento. Pacotes são executados através da cadeia FORWARD do iptables e então roteados usando a tabela de roteamento do kernel para o destino correto. Geralmente, isso significa que você está usando endereços de uma sub-rede diferente ou / 32 endereços únicos com roteamento manipulado especificamente pelo provedor.
Aqui, você está fazendo um pouco dos dois:
- Você tem uma ponte conectando o DomU à conexão do host
- No entanto, o DomU tenta rotear o host para alcançar o gateway do provedor
- O provedor percebe isso, talvez porque não use o endereço MAC virtual indicado, se você tiver definido um, e envia uma mensagem REDIRECIONAR ICMP para notificar o convidado sobre o que está acontecendo
Não sei por que isso não funciona exatamente, considerando que o ICMP Redirect está desabilitado em quase todas as principais distribuições Linux e deve funcionar apesar dos problemas que o roteamento assimétrico pode trazer. Este é provavelmente um problema com o gateway do provedor sendo muito exigente com ARP & MAC muda de alguma forma ...
De qualquer forma, como os seus endereços IP Dom0 e DomU estão na mesma máscara de rede, você precisa fazer uma ponte completa no seu caso. Simplesmente corrija o endereço do gateway do DomU para apontar para .1, o gateway do provedor. Não se esqueça de ajustar as regras de firewall como necessárias, pois os pacotes com ponte passam pela cadeia FORWARD por padrão.
Fonte: executo o Xen em uma caixa de teste que fornece acesso a diferentes domínios por meio de NAT, Bridging e roteamento, dependendo do domínio