# Pro Schnittstelle 1 IP einrichten



## MrServer (27. Mai 2016)

Guten Morgen.

Ich habe hier im Forum bereits ähnliche Beiträge gelesen, doch bin ich bisher nicht zum erfolgreichen Ergebnis gekommen.

Ich habe ISPConfig installiert und es läuft mit meiner eth0 Schnittstelle erfolgreich.
Später habe ich versucht eth1 zu aktivieren und habe dort ebenfalls eine IP zugewiesen.

Ping intern funktioniert auch, nur nach extern kommt eine Fehlermeldung.
PING google.de (172.217.17.227) from 192.168.10.11 eth1: 56(84) bytes of data.
From 192.168.10.11 icmp_seq=1 Destination Host Unreachable


An beiden Schnittstellen hängt eine eigenen FritzBox mit fester statischer ipv4 Adresse.

Meine Config schaut so aus:
# The primary network interface
auto eth0 eth1
iface eth0 inet static
  address 192.168.178.3
  netmask 255.255.255.0
  network 192.168.178.0
  broadcast 192.168.178.255
  gateway 192.168.178.1

# The secondary network interface
iface eth1 inet static
  address 192.168.10.11
  netmask 255.255.255.0
  gateway 192.168.10.1
up route add -net 192.168.10.0/23 gw 192.168.10.1 dev eth1

Die Routingtabelle schaut so aus:

Kernel-IP-Routentabelle
Ziel  Router  Genmask  Flags Metric Ref  Use Iface
default  192.168.178.1  0.0.0.0  UG  0  0  0 eth0
192.168.10.0  *  255.255.255.0  U  0  0  0 eth1
192.168.10.0  192.168.10.1  255.255.254.0  UG  0  0  0 eth1
192.168.178.0  *  255.255.255.0  U  0  0  0 eth0

In ISPConfig habe ich beide externe IPs eingetragen.
Via Port 80 kann ich nur über eth0 zugreifen. eth1 zeigt mir "Server nicht gefunden" Port geschlossen..
Via Port 443 komme ich über eth0 und eth1 auf den Server, was mich sehr verwundert.

Ich hoffe, dass ihr mir in die richtige Richtung helfen könnt.
Wahrscheinlich habe ich nur einen Denkfehler?

LG


----------



## JeGr (31. Mai 2016)

Hi MrServer,
deine Konfiguration ist schon etwas seltsam... Dein Secondary Interface bspw. deklarierst du mit Netzmaske 255.255.255.0 (/24), fährst aber untendran (m.E. sinnfrei) eine Netz-Route mit /23 hoch die du auf das Gateway .10.1 schickst. Das ist nicht recht durchschaubar, was das bringen soll, zumal es deiner Netzkonfiguration für eth1 widerspricht. Entweder das Netz ist wirklich /23 oder es sind zwei /24er, dann stimmt aber die Netzroute nicht.
Zudem kommt, dass du zwar für jedes iface gern ein gateway angeben kannst, es kann aber eben nur eines das Default Gateway sein. Das ist in dem Fall das GW von eth0 (siehe Routingtabelle).

Zur Diagnose ob das eth1 Bein überhaupt sauber funktioniert würde ich die default Route mal auf eth1 und .10.1 ändern und dann den Ping wiederholen (und nebenbei checken ob DNS sauber geht). Dann sollte man die default Route wieder auf das eth0 ändern. Die Netzroute von eth1 sehe ich nicht als sinnvoll und würde ich entfernen. Statt dessen solltest du ggf. eine zweite Routing Table einfügen (table 1), in der du die IP des Servers (192.168.10.11) hinzufügst und deren Default Route dann die .10.1 ist. Das Resultat ist dann, dass der IP Stack bei ankommenden Paketen für .10.11 bemerkt, dass das via route table 1 abgefackelt wird und dementsprechend die Antworten/Pakete an .10.1 zurückschickt, anstatt an den Default Router via eth0. Damit sollte auch deine Erreichbarkeit über dieses Interface wieder klappen und auch der Ping mit ausgewähltem Interface eth1 und IP .10.11 als abgehend sollte klappen.

Gruß Jens


----------



## MrServer (31. Mai 2016)

Hallo Jens!
Danke für deine Antwort!

Ich habe dies soweit umgesetzt und folgendes in meiner Config:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface

allow-hotplug eth0
iface eth0 inet static
  address 192.168.178.3
  netmask 255.255.255.0
  gateway 192.168.178.1

# The secondary network interface

allow-hotplug eth1
iface eth1 inet static
   address 192.168.10.11
   netmask 255.255.255.0

   post-up ip route add 192.168.10.0/24 dev eth1 src 192.168.10.11 table rt2
     post-up ip route add default via 192.168.10.1 dev eth1 table rt2
     post-up ip rule add from 192.168.10.11/32 table rt2
     post-up ip rule add to 192.168.10.11/32 table rt2   

Meine Route:

Kernel-IP-Routentabelle
Ziel  Router  Genmask  Flags Metric Ref  Use Iface
default  192.168.178.1  0.0.0.0  UG  0  0  0 eth0
192.168.10.0  *  255.255.255.0  U  0  0  0 eth1
192.168.178.0  *  255.255.255.0  U  0  0  0 eth0

Ich kann via Port 443 auf den Server zugreifen, nur Port 80 macht Schwierigkeiten.

Wenn ich nur das eth1 (ohne eth0) anklemme, funktioniert der Ping und DNS einwandfrei. Ein Erreichen des Servers via Port 80 dennoch nicht, nur über Port 443. Wenn ich beide Schnittstellen angeschlossen habe, kann ich über eth0 ping und DNS einwandfrei durchführen, und über eth1 nur bis zum Router pingen, das Internet funktioniert nicht. zb Ping zu google.de

In meiner Firewall habe ich die jeweiligen Ports allerdings offen.

Habe ich einen Denkfehler, oder blockiert ISPConfig weitere IPs? Eigentlich doch nicht?

Gruß


----------



## JeGr (31. Mai 2016)

Also solang Basics wie Ping etc. nicht laufen, sehe ich da keine Relevanz zu ISPC. Bei beiden angeschlossenen Interfaces müsstest du mit Ping rauskommen.

In der /etc/network/interfaces sollte

```
...
        post-up ip rule add from 192.168.10.11 table 1
        post-up ip route add 192.168.10.0/24 table 1 dev eth1
        post-up ip route add 0.0.0.0/0 table 1 via 192.168.10.1
```
eigentlich funktionieren, den "gateway" Eintrag würde ich da rausnehmen.

Anschließend solltest du mit

```
ip route show
```
bzw.

```
ip route show table 1
```
deine beiden Tabellen sehen können. Ein

```
mtr -n 8.8.8.8
```
sollte dann brav über die .178.1 Strecke via eth0 laufen, wohingegen ein

```
mtr -n 8.8.8.8 --address 192.168.10.11
```
dann über das zweite Gateway laufen sollte.

Auch solltest du mit "host" oder "dig" DNS Abfragen stellen können, wenn beide Interfaces an sind, da die DNSe von jedem aus erreichbar sein sollte. Wenn das bis dahin klappt, kann man sich weiter vorarbeiten, warum irgendwelche Ports vielleicht nicht tun, aber erstmal sollte der Basic Network Stack funktionieren


----------



## MrServer (31. Mai 2016)

Top!

Das funktioniert!

Je nachdem welche Source-IP ich wähle, nimmt er die richtige Schnittstelle! Danke!!

ip route show
default via 192.168.178.1 dev eth0
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.11
192.168.178.0/24 dev eth0  proto kernel  scope link  src 192.168.178.3

ip route show table 1
default via 192.168.10.1 dev eth1
192.168.10.0/24 dev eth1  scope link

Ein Ping /Trace läuft wie oben von dir geschrieben hast, problemlos durch.

Nun habe ich "nur" noch das Problem bzgl. der Ports.
Über den 80er (zB via ping.eu) bleibt dieser geschlossen und nur über 443 ist der Server erreichbar.

Muss ich ggf noch etwas in ISPConfig umstellen?
Dort habe ich bisher nur die beiden externen IPs die ich via eth0 und eth1 habe, eingetragen.

LG


----------



## JeGr (31. Mai 2016)

OK dann sollten die Basics laufen. Wenn du auch HTTPS auf beiden Lines durch bekommst, sollte das stimmen. Ist ggf. auf dem Router auf der eth1 Seite  was beim Forwarding noch nicht korrekt eingestellt? Leiten beide ihre Ports auf die richtige IP weiter? Hört sich so an als würde Port 80 auf der zweiten Line geschluckt werden und gar nicht erst beim Host ankommen.
Ansonsten schau mal nach, was du bei 

```
netstat -tulpen | grep 80
```
als Output bekommst. Sollte das ein Apache sein, kannst du auch nach "httpd" oder "apache2" oder im Falle von nginx nach "nginx" greppen.

Gruß


----------



## MrServer (31. Mai 2016)

Danke!

netstat -tulpen | grep 80
tcp6  0  0 :::80  :::*  LISTEN  0  15145  1816/apache2
tcp6  0  0 :::8081  :::*  LISTEN  0  15153  1816/apache2
udp6  0  0 fe80::21b:78ff:fea3:123 :::*  0  19226  990/ntpd
udp6  0  0 fe80::21b:78ff:fea3:123 :::*  0  19225  990/ntpd

 netstat -tulpen | grep apache
tcp6  0  0 :::443  :::*  LISTEN  0  15149  1816/apache2
tcp6  0  0 :::80  :::*  LISTEN  0  15145  1816/apache2
tcp6  0  0 :::8081  :::*  LISTEN  0  15153  1816/apache2

In der FritzBox habe ich alle Ports (80, 443, 25, 993, etc) auf den richtigen Server umgeleitet.

Wenn ich in der FritzBox auf eth1 den Server als Exposed Host eintrage (also kein Schutz durch die Firewall) komme ich dennoch nicht auf Port 80.
Alle anderen Ports sind frei.

LG


----------



## JeGr (31. Mai 2016)

Dann liegt es erstmal aber nicht am Apachen, denn der lauscht laut Definition da oben auf alle IPs v4 wie v6 auf den angegebenen Ports.
Möglich wäre jetzt noch:
1) NameVirtualhost Direktive für die andere IP nicht gesetzt -> sollte aber laufen, wenn du die IP in ISPC Admin angelegt und einem Web zugewiesen hast (bzw. wenn nichts zugewiesen wurde, sollte das Web ja auf alle IPs lauschen).
2) UFW/Firewall - beim Perfect Server Tutorial wird ja auch die Firewall konfiguriert. Ist die aktiv? Evtl. mal abschalten, da ggf. die neue zweite IP da nicht freigegeben ist und deshalb weggeblockt wird?
Ansonsten ins allgemeine Access/Error Log schauen, ob da überhaupt was auftaucht wenn du über die zweite IP zugreifst.

Im Extremfall: tcpdump anwerfen und auf der zweiten Schnittstelle auf Port 80 lauschen lassen, ob was ankommt.

```
tcpdump -i eth1 'port 80 or port 443'
```
dann sollte man auch was auf dem TLS port sehen.


----------



## MrServer (31. Mai 2016)

Guten Abend.

Ich habe nun länger die Logfiles beobachtet, ich finde keine relevanten Fehler zu dem Problem.

Über tcpdump kommt, sobald ich den Port von extern abfrage folgende Meldung rein:

20:37:12.979382 IP nemec2.internet.lv.35048 > mail.XXXXXX.email.http: Flags , seq 2946344176, win 7300, options [mss 1414,sackOK,TS val 2348765461 ecr 0,nop,wscale 8], length 0
20:37:12.979447 IP mail.XXXXXX.email.http > nemec2.internet.lv.35048: Flags [S.], seq 1588313606, ack 2946344177, win 28960, options [mss 1460,sackOK,TS val 2833765 ecr 2348765461,nop,wscale 7], length 0
20:37:13.973753 IP nemec2.internet.lv.35048 > mail.XXXXXX.email.http: Flags , seq 2946344176, win 7300, options [mss 1414,sackOK,TS val 2348765561 ecr 0,nop,wscale 8], length 0
20:37:13.973794 IP mail.XXXXXX.email.http > nemec2.internet.lv.35048: Flags [S.], seq 1603850399, ack 2946344177, win 28960, options [mss 1460,sackOK,TS val 2834013 ecr 2348765561,nop,wscale 7], length 0

Ich habe nun nochmal alle Einstellungen überprüft und in der FritzBox alle Freigaben gelöscht und komplett neu hinzugefügt und siehe da: *ES LÄUFT!*

*Klasse und vielen Dank!*


----------



## JeGr (1. Juni 2016)

Super, freut mich zu lesen


----------

