Eu tenho uma caixa de servidor com duas interfaces.
Uma das interfaces está conectada à rede interna, outra - ao externo.
Eu atribuí IP 192.168.1.200 à interface interna (eth0). Eu tenho alguns daemons locais ouvindo nesta interface IP / (cups, nginx, pdns).
O IP externo é 192.168.0.91 (eth1). Aqui eu tenho apenas NAT masquerading.
Coisas estranhas acontecem sempre que eu estou tentando acessar a caixa do servidor de si mesmo.
Se eu estou tentando abrir a página da Web, localizada em 192.168.1.200, o servidor usa o endereço 192.168.0.91 e estou recebendo permissão negada (servidor protegido para servir conteúdo somente na rede interna).
Se eu derrubar eth1, trabalho de servidor OK e usar IP interno. Mas, assim que eu abrir a eth1, a IP imediatamente pegará o IP como primário e eu irei ter a permissão negada novamente.
Como posso definir explicitamente o IP / interface principal para usar?
Estou executando a versão de 64 bits do Gentoo Linux.
Ambos os drivers do nic são compilados como módulos.
Estou usando o systemd como meu sistema init.
EDITAR:
Obrigado pelas respostas, mas a parte mais interessante está chegando:
atomic ~ # cat /etc/resolv.conf
domain local
search local
nameserver 192.168.1.200
atomic ~ # cat /etc/hosts
...
192.168.1.200 atomic ns.atomic.local atomic.local
...
Endereço resolvido apenas em OK:
atomic ~ # dig atomic.local 192.168.1.200
; <<>> DiG 9.9.4 <<>> atomic.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38797
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;atomic.local. IN A
;; ANSWER SECTION:
atomic.local. 604800 IN A 192.168.1.200
;; Query time: 42 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue May 27 13:37:04 EEST 2014
;; MSG SIZE rcvd: 55
E logs Nginx de acesso via wget:
atomic ~ # wget atomic.fhn
--2014-05-27 13:45:58-- http://atomic.local/
Resolving atomic.local... 192.168.1.200
Connecting to atomic.local|192.168.1.200|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’
[ <=> ] 0 --.-K/s in 0s
2014-05-27 13:45:58 (0.00 B/s) - ‘index.html’ saved [0]
atomic ~ # tail -n 1 /var/log/nginx/access_log
192.168.0.91 - - [27/May/2014:13:45:58 +0300] "GET / HTTP/1.1" 200 5 "-" "Wget/1.14 (linux-gnu)"
Eu tenho o status HTTP 200 / OK porque desabilitei a filtragem de IP / rede enquanto o problema não foi resolvido.
Tabela de roteamento:
192.168.0.0/30 dev wan proto kernel scope link src 192.168.0.2
192.168.1.0/24 dev lan proto kernel scope link src 192.168.1.200
EDIT2:
Tabela de roteamento com métrica usada:
192.168.0.0/30 dev wan scope link metric 20
192.168.1.0/24 dev lan scope link metric 10
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 192.168.0.0 dev wan table local proto kernel scope link src 192.168.0.2
local 192.168.0.2 dev wan table local proto kernel scope host src 192.168.0.2
broadcast 192.168.0.3 dev wan table local proto kernel scope link src 192.168.0.2
broadcast 192.168.1.0 dev lan table local proto kernel scope link src 192.168.1.200
local 192.168.1.200 dev lan table local proto kernel scope host src 192.168.1.200
broadcast 192.168.1.255 dev lan table local proto kernel scope link src 192.168.1.200