web-dev-qa-db-fra.com

Pourquoi IP Route Ajouter ne fonctionne pas, mais IP Route Ajouter avec moins de détails puis changez de fonctionner?

J'ai un problème avec iP itinéraire Ajouter. Étonnamment, je peux ajouter la route puis le changer, mais je ne peux pas l'ajouter directement:

# ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
RTNETLINK answers: No such process

mais:

# ip route add 192.168.0.0/16 dev eth0
# ip route change 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101

Mon fichier d'interfaces est:

iface lo inet loopback
auto eth0
iface eth0 inet static
    address 178.xxx.xxx.xxx
    netmask 255.255.255.192
    network 178.xxx.xxx.xxx
    broadcast 178.xxx.xxx.xxx
    gateway 178.xxx.xxx.xxx
auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.0.0

Je suis un peu perdu que je dois dire. Je vais bien avec l'ajout, mais il n'est pas satisfaisant de ne pas comprendre pourquoi cela fonctionne en deux étapes et non directement. Je lisais des pages d'homme après les pages de l'homme sans compréhension.

mis à jour à l'aide des réponses :

J'ai maintenant une passerelle sur eth0 et eth0:0, mais comme je veux tout mon trafic sauf le 192.168.0.0/16 Pour être marqué comme venant de mon 178.xxx.xxx.xxx Adresse, j'ai ajouté une règle de routage. Peut-être avoir eth0 avec le 192.168.1.101 IP et ensuite le 178.xxx.xxx.xxx IP sur eth0:0 fonctionnerait sans règne de routage, mais cela va ici:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address 178.xxx.xxx.131
    netmask 255.255.255.192
    network 178.xxx.xxx.128
    broadcast 178.xxx.xxx.191
    gateway 178.xxx.xxx.190
    up /sbin/ip route add default via 178.xxx.xxx.190 dev eth0 table 125
    up /sbin/ip rule add from 178.xxx.xxx.128/26 table 125
    post-down /sbin/ip route del default via 178.xxx.xxx.190 dev eth0 table 125
    post-down /sbin/ip rule del from 178.xxx.xxx.128/26 table 125

auto eth0:0
iface eth0:0 inet static
    address 192.168.1.101
    netmask 255.255.0.0
    gateway 192.168.255.254

J'ai aussi désactivé rp_filter:

echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

Merci pour ton aide!

7

Selon votre fichier d'interfaces, vous êtes déjà dans le réseau 192.168.0.0/16, vous ne devez donc pas avoir besoin d'une passerelle sur ce réseau.

2
Mathias Weidner

Si j'adore mes résultats pour votre configuration IP (je suis sur un 192.168.x.0/24):

Route IP $ sudo Add 192.168.0.0/16 VIA 192.168.255.254 SRC 192.168.1.101

Je reçois

Rtnetlink réponses: aucun tel processus

Mais

Route IP $ sudo Add 192.168.0.0/16 VIA 192.168.1.254 SRC 192.168.1.101

travaux. Je soupçonne que c'est que le 192.168.255.254 ne figure pas sur votre sous-réseau local ou une route connue, vous avez donc besoin d'un itinéraire d'abord.

1
Andrew

Comme d'autres ont déclaré que votre adresse IP sur Eth0: 1 de 192.168.1.101/16 signifie que vous avez déjà une route statique pour ce sous-réseau. On dirait que vous devez ajouter une passerelle pour cette interface pointant vers 192.168.255.254.

0
HostBits

Je sais que c'est un peu en retard, mais j'aimerais aussi clarifier ce qui est "itinéraire". Tu as dit :

Je veux tout mon trafic, à l'exception du 192.168.0.0/16 pour être marqué comme venant de mon adresse 178.xxx.xxx.xxx

la commande route vous permet de déterminer un itinéraire basé sur une destination, non sur une source. Vous devez configurer vos services pour utiliser une adresse IP en fonction de la passerelle que vous souhaitez utiliser. Comme Mathias Weidner a dit, vous n'avez pas besoin d'une passerelle puisque vous êtes directement connecté (même sous-réseau = pas de routage)

0
Dijkman