Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Source IP adres wijzigt onvoorspelbaar  (gelezen 809 keer)

Offline Tha_Duck

  • Lid
  • Steunpunt: Nee
Source IP adres wijzigt onvoorspelbaar
« Gepost op: 2011/07/04, 17:08:47 »
Sinds enige tijd stoei ik met een onverklaarbaar probleem. Wij maken (onder andere) gebruik van Ubuntu LTS versies, en sinds versie 10.04LTS (misschien al eerder, maar dat weet ik nog niet zeker) heb ik het probleem dat servers met meerdere IP adressen wisselen van source IP adres.

Voorbeelden zeggen meer, dus bij deze:
Instellingen in de /etc/network/interfaces
# 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
auto eth0
iface eth0 inet static
address 172.16.1.2
netmask 255.255.255.0
gateway 172.16.1.1

auto eth0:1
iface eth0:1 inet static
address 172.16.1.3
netmask 255.255.255.0

auto eth0:2
iface eth0:2 inet static
address 172.16.1.4
netmask 255.255.255.0

Nu zou je verwachten dat je naar buiten toe altijd gebruik maakt van eth0 (dus IP 172.16.1.2), maar tot mijn verbazing is dat dus niet zo.

Het bewijs:
td@srv001:~$ ip route
172.16.1.0/24 dev eth0  proto kernel  scope link  src 172.16.1.3
default via 172.16.1.1 dev eth0  metric 100

Heel vreemd, het verkeerde adres wordt dus gebruikt. Dit zie ik ook in de firewall terugkomen, waar overigens ook het grote probleem hiervan zit. Er is geen rule op te maken.

Om te testen heb ik al een nieuwe Ubuntu 10.04.2 LTS ISO gedownload, zelfde probleem. Gechecked of de VMWare host of versie het probleem is (nee, komt zowel op ESXi 3.5, 4.0 en 4.1 voor). Debian 6 geprobeerd, en daar komt het probleem niet voor.

Het is wel mogelijk om met het ip commando het source adres aan te passen (ook na reboot), maar na enige tijd zet de machine zelf hem toch weer om. Meestal pakt hij het eth0:1 adres, maar het komt ook voor dat hij ineens wel de eth0 pakt.

Iemand die dit bekend voorkomt? Via Google eigenlijk niks zinnigs kunnen vinden. Ik ga nu Ubuntu 8.04 LTS nog even proberen, maar ik verwacht daar het probleem niet.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Source IP adres wijzigt onvoorspelbaar
« Reactie #1 Gepost op: 2011/07/05, 13:35:47 »
Dit lijkt op jouw probleem: http://ubuntuforums.org/showthread.php?t=683076
Misschien kan je er wat mee :)

Offline Tha_Duck

  • Lid
  • Steunpunt: Nee
Re: Source IP adres wijzigt onvoorspelbaar
« Reactie #2 Gepost op: 2011/07/05, 15:48:48 »
Dank voor je hulp, maar die pagina had ik al gelezen :)

Het belangrijkste wat er staat (in de link in de reactie op de forum post):
Citaat
There are a number of reasons you might want to specify the IP from which your outbound traffic appears to originate. It is common practice to setup IP aliases on a single NIC but by default the primary IP assigned to the NIC will be used as the source IP for all traffic outbound through that NIC.

Het is dus heel vreemd dat er bij mij, zonder een extra instelling, afgeweken wordt van die default. Dat vind ik verdacht.

Ondertussen getest met Debian 6.0.2.1 en daar gaat het standaard wel goed. Keer of 15 gereboot met de extra IP adressen en constant goed. Ik heb nu net een Ubuntu 8.04LTS klaargezet, die ga ik ook even testen.

Update: Ubuntu 8.04LTS krijg ik het probleem niet in. Het is dus echt een 10.04 iets... :(
« Laatst bewerkt op: 2011/07/05, 16:39:51 door Tha_Duck »

Offline #!

  • Lid
    • tuxtopia
  • Steunpunt: Nee
Re: Source IP adres wijzigt onvoorspelbaar
« Reactie #3 Gepost op: 2011/07/09, 17:24:05 »
Kan je niet gewoon je rule op hostname maken.. Als work arround?

Offline Thomas de Graaff

  • Lid
  • Steunpunt: Nee
Re: Source IP adres wijzigt onvoorspelbaar
« Reactie #4 Gepost op: 2011/07/09, 23:07:37 »
Nu zou je verwachten dat je naar buiten toe altijd gebruik maakt van eth0 (dus IP 172.16.1.2), maar tot mijn verbazing is dat dus niet zo.

Het bewijs:
td@srv001:~$ ip route
172.16.1.0/24 dev eth0  proto kernel  scope link  src 172.16.1.3
default via 172.16.1.1 dev eth0  metric 100

Zoals ik het lees is het bovenstaande geen bewijs dat al het verkeer dat gerouteerd wordt (dus naar een ander netwerk dan 172.16.1.0 gaat), als bron adres 172.16.1.3 heeft. Zoals ik het lees geven bovenstaande regels weer dat verkeer naar het lokale netwerk gaat via de interface met adres 172.16.1.3, en dat verkeer voor andere netwerken gaat via eth0. Dat zou volgens mij dus best als bronadres 172.16.1.2 kunnen hebben?

Waarom heb je eigenlijk twee interfaces die beiden met hetzelfde lokale netwerk verbinden? Ik vind het logisch dat een OS dan zonder het expliciet aan te geven niet weet welke interface te gebruiken voor verkeer met bestemmingen in het lokale netwerk.

Met het volgende commando kan je instellen dat de eth0 en niet de eth0:1 wordt gebruikt voor verkeer naar het lokale netwerk:
sudo route add -net 172.16.1.0/24 dev eth0
(ip route geeft het bron adres niet goed weer als je gewijzigd hebt!)

Blijkt toch ook verkeer voor buiten het lokale netwerk via eth0:1 verzonden te worden, dan kan je ook die forceren via eth0:
sudo route del default
sudo add default gw 172.168.1.1 dev eth0
« Laatst bewerkt op: 2011/07/09, 23:10:57 door Thomas de Graaff »