Routage entre deux réseaux sur Linux?

2

Je suis coincé avec un problème que je ne peux pas trouver de solution. J'ai Linux PC avec deux cartes réseau. Le premier nic (eth1) est connecté à l'ip publique (probablement un commutateur ou autre chose, ça ne compte pas vraiment), donc eth1 est connecté à wan et un autre eth0 que j'ai connecté pour changer et en faire un réseau. configuration:

eth1 adresse ip 88.200.1xx.xxx // xxx sont des raisons de sécurité eth0 adresse ip 192.168.1.1

wan ------> [eth1 (linux PC) eth0] <----> [commutateur] <----> [eth1 (PC1)]

Maintenant, je veux connecter ces deux réseaux pour que PC1 puisse accéder à linux PC et wan. Je pense que je sais comment le faire, mais je ne peux pas le confier correctement. C'est ce que j'ai essayé:

  1. Je suis sur la transmission ip (à coup sûr)
  2. Je mets eth1 default gw à la droite ip sur le wan
  3. J'ai essayé de définir eth0 default gw sur la même adresse IP (mais je ne pouvais pas)

Quoi ou comment puis-je faire cela, j'essayais avec la commande linux route, mais je suis resté bloqué. S'il vous plaît aider.

gorgi93
la source
Vous ne décrivez vraiment pas le problème. Qu'est-ce qui vous fait penser que vous ne pourriez pas le configurer correctement? Qu'est ce qui ne s'est pas bien passé?
David Schwartz
3
Vous ne savez pas comment les autres ont raté cela, mais vous aurez besoin de NAT pour que cela fonctionne. Alors, comment avez-vous configuré iptables? Vous ne nous dites aucune information sur ce qui ne fonctionne pas. Si vous pouvez utiliser la commande ping de votre interface eth1, il ne vous restera plus qu'à parler avec Internet et à obtenir des réponses, du NAT.
gparent

Réponses:

11

Si vous avez 2 cartes réseau sur une machine Linux, toutes deux configurées avec des adresses IP, vous n'avez pas besoin d'ajouter une route d'un réseau à un autre. Cela se fera automatiquement.

Ajoutez une adresse de passerelle par défaut sur le NIC WAN. Ne le faites pas dans la configuration de la carte réseau local.

Activez ensuite le transfert dans le noyau:

echo 1 >> /proc/sys/net/ipv4/ip_forward

Pour qu’elle définisse automatiquement cette valeur au démarrage, décommentez cette ligne./etc/sysctl.conf

#net.ipv4.ip_forward=1

Puis définissez des règles dans iptables pour effectuer le transfert et le transfert:

# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT

# We allow traffic from the LAN side
iptables -A INPUT -i eth0 -j ACCEPT

######################################################################
#
#                         ROUTING
#
######################################################################

# eth0 is LAN
# eth1 is WAN

# Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# fowarding
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

ça devrait le faire.

Goez
la source
Merci beaucoup mon pote ... En fait, je l'ai fait, mais mon problème était lié aux tables de tournées ... Je pensais que les tables de tournées fonctionnaient différemment, je les ai donc mal configurées. Ce que je pensais être: la carte réseau dans la table de routage signifiait la source du trafic, mais quelqu'un m'a dit que l'interface dans la table de routage était l'interface de destination: D: D
gorgi93
2

Vous ne pouvez avoir qu'une passerelle par défaut, donc n'en définissez qu'une.

Pour acheminer le trafic sur l'autre interface, vous devez définir un itinéraire statique persistant et le lier à cette interface.

MDMarra
la source
comment j'ai mis cette route? vous voulez dire route statique de 192.168.1.0 à wan?
gorgi93
1
Il ne devrait rien faire de particulier pour acheminer le trafic sur l’autre interface. La route d'interface créée automatiquement devrait suffire.
David Schwartz
Ca ne marche pas ... J'ai juste essayé de configurer iptables pour le nat mais ça ne marche pas ... dohhh
gorgi93