Múltiplos endereços IP na interface. Eu quero especificar um deles para saída

6

Fiz o curlmyip.com e recebi o endereço IP de saída incorreto. Meu arquivo de serviço do systemd é:

[Unit]
Description=Wired Networking
Wants=network.target dibbler-client.service
Before=network.target dibbler-client.service

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/network
ExecStart=/sbin/ip link set dev ${interface} up
ExecStart=/sbin/ip addr add ${address}/24 dev ${interface}
ExecStart=/sbin/ip addr add ${failover}/32 dev ${interface}
ExecStart=/sbin/ip route add default via ${gateway} src ${failover}
ExecStart=/sbin/ip -6 addr add ${addressv6}/64 dev ${interface}

ExecStop=/sbin/ip addr flush dev ${interface}
ExecStop=/sbin/ip -6 addr flush dev ${interface}
ExecStop=/sbin/ip link set dev ${interface} down

[Install]
WantedBy=multi-user.target

E as variáveis são:

interface=eno1
address=88.190.15.135
address6=2001:bc8:300a:dead::b12d
failover=212.83.129.104
broadcast=88.190.15.255
gateway=88.190.15.1

Agora, ip addr me dê:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether b8:ac:6f:94:e2:4e brd ff:ff:ff:ff:ff:ff
    inet 88.190.15.135/24 scope global eno1
       valid_lft forever preferred_lft forever
    inet 212.83.129.104/32 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::baac:6fff:fe94:e24e/64 scope link
       valid_lft forever preferred_lft forever

e ip route:

default via 88.190.15.1 dev eno1  src 212.83.129.104
88.190.15.0/24 dev eno1  proto kernel  scope link  src 88.190.15.135

curlmyip.com diga-me que o endereço IP de saída é 88.190.15.135. Como posso alterar este endereço de saída e torná-lo 212.83.129.104?

EDIT: testado para alterar o src da rota para o gateway ... Sem alterações.

Obrigado!

    
por Cubox 29.09.2013 / 03:47

3 respostas

11

Parece que seu provedor está jogando alguns truques sujos com o roteamento IP. O segundo endereço IP que você está usando está em uma rede completamente diferente. Sua dedibox está no AS12322, enquanto seu outro endereço IP está registrado no Tiscali no AS12876. Isso parece funcionar porque os provedores de serviços envolvidos estão fazendo isso funcionar.

De qualquer forma, a maioria dos programas que podem fazer conexões de rede tem uma opção que permite especificar o endereço IP de origem. Para a linha de comando curl , essa opção é --interface .

curl --interface 212.83.129.104 http://curlmyip.com/
    
por 29.09.2013 / 15:33
2

A partir da configuração que você postou, parece que você está especificando 212.83.128.104 como a origem da sua rota padrão:

default via 88.190.15.1 dev eno1  src 212.83.129.104

Você provavelmente deve alterar isso ou removê-lo.

EDIT: Aparentemente eu interpretei mal a pergunta e pensei que 212.83.128.104 estava sendo usado como o IP de origem. Se eu relê-lo corretamente, 88.190.15.135 está realmente sendo usado como o IP de origem, e o comportamento desejado é ter 212.83.129.104 usado em seu lugar. Para diagnosticar, precisaremos de mais informações, mas meu palpite é que você está sendo afetado por esse bug: link onde ip route ... src é quebrado no kernel.

    
por 29.09.2013 / 04:07
0

Como meu provedor dedicado me disse, link .

Eu adicionei isto: -t nat -A POSTROUTING -o eno1 \! -d 10.8.0.0/24 -j SNAT --to-source 212.83.129.104 e agora tudo está bem:)

Se você está hospedado pela Online.net, é o único jeito.

    
por 30.09.2013 / 16:22