Einrichten eines Gateways zwischen zwei Subnetzen im selben physischen Netzwerk

Einrichten eines Gateways zwischen zwei Subnetzen im selben physischen Netzwerk

Ich muss ein DHCP-fähiges Netzwerk (192.168.2.) auf einer physischen Ebene konfigurieren, auf der sich ein bereits vorhandenes Netzwerk (192.168.1.) mit statischen IPs befindet. Ich habe einen Debian 7-Server mit zwei Schnittstellen (Server und Schnittstellen sind alle virtuell) und möchte IP als Gateway für mein Netzwerk einrichten. Ich habe eth0 zum Routing von Paketen an das ursprüngliche Netzwerk verwendet (um auf das Internet-Gateway unter 192.168.1.5 zuzugreifen) und eth1 zum Verwalten des Datenverkehrs von/zu meinem Netzwerk.

ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0c:29:d4:02:1b  
          inet addr:192.168.1.110  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed4:21b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21668983 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10044848 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10931368249 (10.1 GiB)  TX bytes:2383839079 (2.2 GiB)

eth1      Link encap:Ethernet  HWaddr 00:0c:29:d4:02:25  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed4:225/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14113604 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11269734 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1871598524 (1.7 GiB)  TX bytes:10331981618 (9.6 GiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8158 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8158 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:629690 (614.9 KiB)  TX bytes:629690 (614.9 KiB)

Route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.5     0.0.0.0         UG    0      0        0 eth0
localnet        *               255.255.255.0   U     0      0        0 eth0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1

iptables -vL

Chain INPUT (policy ACCEPT 5603K packets, 822M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 138K packets, 8597K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  14M 9542M ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
 398K   27M ACCEPT     all  --  eth1   any     anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 2915K packets, 1432M bytes)
 pkts bytes target     prot opt in     out     source               destination         

iptables -tnat -vL

Chain PREROUTING (policy ACCEPT 607K packets, 49M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 112K packets, 17M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 6893 packets, 977K bytes)
 pkts bytes target     prot opt in     out     source               destination        

Chain POSTROUTING (policy ACCEPT 2391 packets, 374K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 363K   24M MASQUERADE  all  --  any    eth0    anywhere             anywhere   

Danach habe ich einen autoritativen DHCP-Server auf eth1 aktiviert.

Nun zum Problem: Verbindungen zum Server funktionieren immer (ich habe dort eine Samba-Freigabe und einen MySQL-Server), aber manchmal (scheinbar zufällig) können die Clients (hauptsächlich Windows 7 oder XP) für einen unterschiedlich langen Zeitraum keine Verbindung zum Internet herstellen. In diesem Zustand kann ich einen Ping an 192.168.1.110 senden, aber nicht an 192.168.1.5.

Nachtrag

Die Tatsache, dass die FORWARD-Kette Pakete verloren hat, erscheint verdächtig, daher habe ich diese Filterung vorübergehend deaktiviert mit:

iptables -A FORWARD -j ACCEPT

Mit der neuen Regel funktioniert alles. Ich muss allerdings noch klären, was los ist ...

Nachtrag 2

Dies sind die aktuellen iptables-Regeln:

iptables-speichern

# Generated by iptables-save v1.4.14 on Fri Jun 27 20:53:32 2014
*mangle
:PREROUTING ACCEPT [28129147:14012989399]
:INPUT ACCEPT [8479051:1218948772]
:FORWARD ACCEPT [19639349:12792010625]
:OUTPUT ACCEPT [4434912:3183821941]
:POSTROUTING ACCEPT [23940877:15968783924]
COMMIT
# Completed on Fri Jun 27 20:53:32 2014
# Generated by iptables-save v1.4.14 on Fri Jun 27 20:53:32 2014
*nat
:PREROUTING ACCEPT [931027:74896097]
:INPUT ACCEPT [153578:23398245]
:OUTPUT ACCEPT [9169:1292388]
:POSTROUTING ACCEPT [3186:492868]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Fri Jun 27 20:53:32 2014
# Generated by iptables-save v1.4.14 on Fri Jun 27 20:53:32 2014
*filter
:INPUT ACCEPT [2415796:331288771]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1218435:1654003511]
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -j ACCEPT
COMMIT
# Completed on Fri Jun 27 20:53:32 2014

Antwort1

Um zu diagnostizieren, wo die Pakete durch die iptables-Ketten fließen, können Sie den Parameter -j LOG und ggf. --log-prefix (ein Text zur einfachen Identifizierung des Protokolls in kern.log oder syslog) verwenden. Sie können die standardmäßige Accept-Richtlinie beibehalten und am Ende der FORWARD-Kette eine Deny-All-Regel mit aktivierter Protokollierung hinzufügen, damit Sie besser verstehen, welche Art von Paketen gelöscht werden.

Sie können einen Blick auf diese Schaltpläne werfenhttp://www.linuxnetmag.com/share/issue9/iptables3.jpg, die den grundlegenden Paketfluss innerhalb von Iptables-Ketten zeigen.

Um eine bessere Antwort geben zu können, wäre es interessant, die vollständigen von Ihnen definierten iptable-Regeln zu haben.

verwandte Informationen