Debian Gateway

M

marque

Grünschnabel
Hallo liebe Leute,
ich versuche mich seit 2 Tagen an einer Gateway Konfiguration mit Debian, habe schon einige Beiträge in Foren durchstöbert bekomme keine Internetverbindung für den Clinet hin.
Ich bin ein relativ neuer Linux-user, werde mich desshalb umso mehr anstrengen eure Antworten zu verstehen und Fehler zu korrigieren.

Ich hoffe es ist ok, dass der Post durch die lange Beschreibung der Config-Files etwas länger geworden ist.
Dafür habe ich versucht sie möglichst hübsch und strukturiert zu halten.
Danke im Voraus an jeden der sich Zeit nimmt sich mit meinem Problem zu beschäftigen.

Die Hardware siegt so aus:

WAN
  • -> Router 192.168.1.1
  • -> Router 192.168.2.1
  • -> Debian Gateway
    eth1 192.168.2.51​
    eth2 192.168.3.1​
  • -> WindowsClient 192.168.3.2

Die Interfaces vom Debain Rechner, die ich für das Gateway nutzen möchte sind eth1 und eth2.
die Verbindung zum Internet durch eth1 steht.

#1#
ipforwarding ist aktiviert:
/etc/sysctl.conf
net.ipv4.ip_forward=1​

#2#
Die Interfaces sind wie folgt eingestellt:
/etc/network/interfaces
auto eth1
allow-hotplug eth1
#iface eth1 inet dhcp
iface eth1 inet static
address 192.168.2.51
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
#gateway 192.168.2.1
post-up route add default gw 192.168.2.1 metric 2
pre-down route del default gw 192.168.2.1

auto eth2
allow-hotplug eth2
#iface eth2 inet dhcp
iface eth2 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
#gateway 192.168.2.1
post-up route add default gw 192.168.3.1 metric 3
pre-down route del default gw 192.168.3.1​

#3#
ifconfig:
eth1 Link encap:Ethernet Hardware Adresse 00:10:b5:46:30:59
inet Adresse:192.168.2.51 Bcast:192.168.2.255 Maske:255.255.255.0
inet6-Adresse: 2002:c0a8:10c:1234:210:b5ff:fe46:3059/64 Gültigkeitsbereich:Global
inet6-Adresse: fe80::210:b5ff:fe46:3059/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:1251 errors:1 dropped:0 overruns:0 frame:0
TX packets:1800 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:874803 (854.2 KiB) TX bytes:278120 (271.6 KiB)
Interrupt:20 Basisadresse:0xdf00

eth2 Link encap:Ethernet Hardware Adresse 00:e0:7d:af:b7:fb
inet Adresse:192.168.3.1 Bcast:192.168.3.255 Maske:255.255.255.0
inet6-Adresse: fe80::2e0:7dff:feaf:b7fb/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:510 errors:0 dropped:0 overruns:0 frame:0
TX packets:351 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:37206 (36.3 KiB) TX bytes:39717 (38.7 KiB)
Interrupt:9 Basisadresse:0xde00
#4#
route -n
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 2 0 0 eth1
0.0.0.0 192.168.3.1 0.0.0.0 UG 3 0 0 eth2
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2​


Zum ausprobieren habe ich schon mal dhcp3-server und dnsmasq installiert, wobei ich den dhcp-server und dns-server wohl erst später testen kann/sollte.

#5#
/etc/dnsmasq.conf
dhcp-range=192.168.3.2,192.168.3.150,12h
dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s)
dhcp-option=vendor:MSFT,2,1i​

#6#
/etc/dhcp/dhcpd.conf
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers 192.168.2.1, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
subnet 192.168.3.0 netmask 255.255.255.0 {
}​
 
Hallo,

sieht eigentlich ganz gut aus.

die Default Route brauchst du nur auf eth1.

Das sollten so aussehen:
Code:
route -n
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 2 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
/CODE]


Wie sieht deine Client-Konfiguration aus?
Kannst du den Router (192.168.2.1) von einem Client aus pingen?

mfg
HeadCrash
 
Juhu jemand hat geschrieben :)

Ich kann vom Client aus nur die zwei Netzwerkkarten vom Debian Gateway pingen (eth2 192.168.3.1 und die eth1 192.168.2.51).
Ein tracerout zu den Routern schlägt fehlt.
d.h. vom Client komme ich nur ans gateway, nicht weiter.
In die andere Richtung (Ping von Debian Gateway zu Client schlägt auch fehl).

edit:
die Client Konfiguration siegt so aus:

Adresse: 193.168.3.2
Subnetmaske: 255.255.255.0
Standardgateway: 192.168.3.1
 
Normalerweise solltest du vom Debian Gateway auch den Client pingen können.
Es sei denn auf dem Client läuft eine Firewall, was bei allen aktuellen Windows-Systemen der Fall ist.

Zur Erreichbarkeit des Routers, fällt mir grade das fehlende NAT auf.

Wenn du auf dem Gateway:
Code:
tcpdump -c 5 -ni eth1 icmp
ausüfhrst solltest du Packete sehen die ans Gateway gesendet werden.
Da noch kein NAT eingerichtet ist von der IP des Clients (192.168.3.2).
Da das ein Netz ist dass dein Router nicht kennt, schicht er die Antworten in Richtung Internet.

Zum Thema NAT und Router -> link

Code:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth2 -j ACCEPT

sollte da helfen.
 
Tatsache, es hat geklappt!
Der ping von Gateway nach Client ging wie du sagtest nicht durch die Firewall.
Nachdem ich sie ausgeschaltet habe, konnte ich den Router anpingen und die icmp Pakete zum Router am Gateway sehen, aber es kamen keine zurück.
Durch die iptables kommen sie jetzt auch noch zurück!

Siehe
Code:
[B][I]tcpdump -c 5 -ni eth1 icmp[/I][/B]
[INDENT]tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
23:22:18.273551 IP 192.168.2.51 > 192.168.2.1: ICMP echo request, id 1, seq 141, length 40
23:22:18.273877 IP 192.168.2.1 > 192.168.2.51: ICMP echo reply, id 1, seq 141, length 40
23:22:19.275572 IP 192.168.2.51 > 192.168.2.1: ICMP echo request, id 1, seq 142, length 40
23:22:19.275894 IP 192.168.2.1 > 192.168.2.51: ICMP echo reply, id 1, seq 142, length 40
23:22:20.277588 IP 192.168.2.51 > 192.168.2.1: ICMP echo request, id 1, seq 143, length 40
5 packets captured
5 packets received by filter
0 packets dropped by kernel[/INDENT]
Der Clue ist, dass mein dns server auch zu funktionieren scheint, denn ich kann im Browser direkt Webseiten eingeben und muss keine IP-Adressen eingeben. Das macht andscheind dnsmasq.
Zugegeben verstehe ich die iptables noch nicht, aber ich werde mir morgen darüber mal Tutorials und das Manual durchlesen.
Code:
[B][I]iptables -S[/I][/B]
[INDENT]-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i eth2 -j ACCEPT[/INDENT]

[B][I]iptables --list[/I][/B]
[INDENT]Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination[/INDENT]
Ich dachte bissher iptables sind reine Firewall-Regeln zur Sicherheit und dass ich mich darum nicht kümmern muss. Ich wollte da vorerst meim Router vertrauen, dass der das übernimmt.
Das mit den iptables hätte ich warscheinlich nicht hinbekommen.
Vielen vielen Dank für deine Hilfe! :)
 
Morgen,

schön das es geht.

NAT ist eine der Funktionen die eine Firewall beherrscht. Noch ein kleiner Hinweis, die iptables sind noch nicht Reboot fest,
das heißt du musst sie nach jedem Reboot wieder aktivieren bzw. sie in ein Skript packen und beim booten ausführen.
Eine Variante hierzu: link

mfg
HeadCrash
 

Ähnliche Themen

Wired-Lan komisches Verhalten

Problem bei der installation einer Sun Netzwerkkarte

Adressvergabe in anderen Subnets

Routing mehrere Netzwerkkarten

Debian 7.6 kein lokales Netz

Zurück
Oben