Forum Linux.debian/ubuntu IP additionnelle sur serveur web

Posté par  . Licence CC By‑SA.
Étiquettes :
0
2
sept.
2019

Bonjour,

IP d'origine 173.249.3.15 // http://173.249.3.15/
Nouvelle ip 164.68.125.112 // http://164.68.125.112/
La page a interroger pour la versification http://145.239.63.193/

J'ai acheté et ajouter une adresse ip a mon serveur debian 9, quand je fait des testes php sur la nouvelle ip avec
echo $_SERVER['REMOTE_ADDR'];

http://164.68.125.112, j'ai bien la nouvelle ip qui s'affiche 164.68.125.112 OK.

Mais pour être sur et certains je lis cette meme page http://164.68.125.112 a partir d'un autre serveur
exemple

    require '/root/vendor/autoload.php';
    use Goutte\Client;
    // Logiquement ici il doit afficher 164.68.125.112 et non 173.249.3.15 puisque c'est 164.68.125.112 qui interroge http://145.239.63.193
    $urlsource = "http://145.239.63.193/"; // DANS CETTE PAGE IL Y A echo 'IP '.$_SERVER['REMOTE_ADDR']; // 
    $client = new Client();
    $crawlersource = $client->request('GET', $urlsource);
    $html = $crawlersource->text();
    echo $html;

et la surprise c'est l'ip 173.249.3.15 d'origine qui s'affiche.

/etc/network/interfaces

    # defaut ip
    auto eth0
    iface eth0 inet static
        address 173.249.3.15
        netmask 255.255.255.0
        gateway 173.249.3.1
        dns-search invalid
        dns-nameservers 213.136.95.10 213.136.95.11
        up ip route replace 173.249.3.0/24 via 173.249.3.1 dev eth0

    # New ip
    auto eth0:1
    iface eth0:1 inet static
        address 164.68.125.112
        netmask 255.255.255.0
        gateway 164.68.125.1
        dns-search invalid
        dns-nameservers 79.143.183.251 79.143.183.252
        up ip route replace 164.68.125.0/24 via 164.68.125.1 dev eth0:1

Je travail avec le catalogue Aliexpress avec API, le problème et qu'il y a deux millions de produits et il ne m'autorise qu'une seule instance de connexion avec ip.

j'ai du raté un truc, si vous pouvez m'aider, merci

  • # route vers Aliexpress

    Posté par  . Évalué à 2.

    j'ai du raté un truc, si vous pouvez m'aider, merci

    par hasard, ta route par defaut (et vers aliexpress) sort par ta carte eth0
    et non par ta carte eth0:1 ?

    il faudrait connaitre les IPs aliexpress,
    et faire ta route vers ces IPs via xxx dev eth0:1

    • [^] # Re: route vers Aliexpress

      Posté par  . Évalué à 2.

      On peut aussi s'amuser à faire des tables de routage et ip rule:

      • tu crées deux tables de routage avec des routes différentes (via l'une ou l'autre de tes IPs)
      • tu ajoutes une règle avec ip rule pour sélectionner l'une des tables en fonction d'un paramètre ou l'autre.

      Il est possible également de définir l'IP source avec CURLOPT_LOCALADDR ou bind().

  • # teste sur 145.239.63.193 a la place de aliexpress

    Posté par  . Évalué à 1.

    pour mes testes j'utilise temporairement cette ip 145.239.63.193 avant la production sur aliexpress

    j'ai fais comme ceci mais l'ip affichée est toujours celle par défaut eth0

    default via 145.239.63.193 dev eth0:1 # toujours 173.249.3.15 qui prend le dessus
    ou
    up ip route replace 164.68.125.0/24 via 145.239.63.193 dev eth0:1 # toujours 173.249.3.15 qui prend le dessus

    • [^] # Re: teste sur 145.239.63.193 a la place de aliexpress

      Posté par  . Évalué à 2. Dernière modification le 03 septembre 2019 à 20:09.

      si la route ne suffit pas (as-tu une passerelle sur l'autre reseau ?)
      alors il faut jouer du SNAT

      en gros tu masques le trafic sortant vers aliepxress (ou ta machine de test)
      derriere ta seconde IP

      iptables -t nat --destination ALIEXPRESS_NETWORK -j SNAT --to-source 2e_IP_de_ton_infra
  • # Routage, reseau, binding

    Posté par  (site web personnel) . Évalué à 2.

    Tant de confusion j'en ai mal à la tête….

    • L'ip utilisée pour interroger ton serveur n'a aucun impact sur le chemin réseau utilisé par ton serveur pour se connecter ailleurs.
    • Un serveur ne peut pas utiliser deux routes par defaut de même priorité
    • "iface eth0:1" est une pratique non recommandée depuis longtemps (https://wiki.debian.org/NetworkConfiguration#iproute2_method)
    • les "ip route replace" sont assez surprenant, d'oû viennent t'ils / quels en sont l'utilité souhaitée ? (tu dit d'ajouter/remplacer une route qui passerait par la gateway locale pour atteindre le LAN)

    La syntaxe de "ip route" est (très résumé) "ip route via dev ", donc pour utiliser ta seconde IP et uniquement celle-ci pour joindre 145.239.63.193 en restant dans ta configuration actuelle, il te faut rajouter la route suivante:
    ip route add 145.239.63.193 via 164.68.125.1 dev eth0:1

    Pour pouvoir utiliser aleatoirement les deux adresses il te faut modifier ton application pour qu'elle binde l'ip source de ton choix, exemple la commande curl le permet via le paramêtre "--interface":
    $ curl --interface 1.2.3.4 http://ifconfig.me
    $ curl --interface 1.3.2.4 http://ifconfig.me

    Par contre attention, cela implique par contre que le routage de ta machine et celui du réseau utilisé soient "synchronisés" ! C'est à dire que si le réseau oblige le passage par la "gateway 2" pour l'ip source 2 alors il va te falloir créer deux tables de routages et un source-based routing

    Quelque chose dans ce goût là:

    /etc/network/interfaces:

        auto eth0
        allow-hotplug eth0
        iface eth0 inet static
            address 173.249.3.15/24
            gateway 173.249.3.1
    
            up   ip addr add 164.68.125.112/24 dev $IFACE label $IFACE:0
            down ip addr del 164.68.125.112/24 dev $IFACE label $IFACE:0
            up   ip route flush 10
            up   ip route add table 10 to 164.68.125.1/24 dev eth0
            up   ip route add table 10 to default via 164.68.125.1 dev eth0
            down ip route flush 10
            up   ip rule add from 164.68.125.112/24 table 10 priority 10
    

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.