[IPv6] Hoe Linux een default source IP aan te praten?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Zoals de mensjes van IRC ongetwijfeld wel weten zit ik al een tijdje gezellig te kloten met IPv6. (Sinds 26 februari to be exact :+). Ondertussen heb ik de mogelijkheid tot vier tunnels met de bijbehorende /48 subnets. Harstikke tof natuurlijk, maar ik loop tegen één probleempje aan:

De Linux kernel (I assume) pakt automatisch het laatst toegevoegde IP-adres aan m'n eth0 als source van alle 'zomaar' gegenereerde pakketjes.

Dit kwam ik tegen in bijvoorbeeld een tracepath naar ipv6.google.com vanaf mijn laptop (gaat via de server):

[b][red]flaptop[/][blue] ~ #[/][/] tracepath6 ipv6.google.com
 1?: [LOCALHOST]                      pmtu 1480
 1:  2001:888:${MY_PREFIX}::c0ff:ee                  1.726ms 
 2:  xs4all${MY_TUNNEL_ID}.ipv6.xs4all.nl                   25.547ms 
 3:  104.ae0.xr4.1d12.xs4all.net              asymm  4  26.219ms 
 4:  0.so-6-0-0.xr1.sara.xs4all.net           asymm  5  25.713ms 
 5:  pr61.ams04.net.google.com                asymm  6  26.418ms !A
     Resume: pmtu 1480 
[b][red]flaptop[/][blue] ~ #[/][/]

Waarbij 2001:888:${MY_PREFIX}::c0ff:ee dus 't laatst toegevoegde IP-tje aan eth0 is.

Nu zóu ik dus graag willen zien dat Linux by default gewoon lekker 2001:888:${MY_PREFIX}::1 gebruikt. Geen gezeur, gewoon ~::1.

De man-page van `ip` zegt het volgende over `ip addr add` qua verdere argumenten:

   ip address add - add new protocol address.
       dev NAME
       local ADDRESS (default)
       peer ADDRESS
       broadcast ADDRESS
       label NAME
       scope SCOPE_VALUE

Verder niets over 'default' of 'metric' of weet ik het wat dat adres enig voorrang zou kunnen geven.

Bij `ip route add` staat wel:

   ip route add - add new route
   ip route change - change route
   ip route replace - change or add new one
       src ADDRESS
              the  source  address  to prefer when sending to the destinations
              covered by the route prefix.


Nu heb ik dus een route naar `2000::/3`, een soort default route. Maar hoe vaak ik die ook weghaal en weer terugstop met een `src 2001:888:${MY_PREFIX}::1`, hij komt er niet tussen te staan?

Nu is dus mijn vraag, iemand enig idee? 8)7

Verder draai ik Gentoo met Linux kernel 2.6.23-gentoo-r8 en maak ik gebruik van sys-apps/iproute2-2.6.22.20070710 :)

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Voeg die route eens toe naar je gewone netwerk, dat gaat vast beter. Dit TTL exceeded packets gaan niet naar 2000::/3 namelijk, die gaan naar jouw netwerk toe.

[ Voor 40% gewijzigd door CyBeR op 26-03-2008 14:52 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Hmm ja, maar bij `ip -6 route list` komt die `src <ip>` dr verder ook niet bij de 2000::/3-route te staan. Dus ik nam aan dat dat sowieso 'mis' ging.

[b][red]server[/][blue] ~ #[/][/] ip -6 route change 2001:888:${MY_PREFIX}::/64 dev eth0 src 2001:888:${MY_PREFIX}::1
[b][red]server[/][blue] ~ #[/][/]

Had geen enkel nut, de src komt niet tussen `ip -6 route list` te staan. Ook geen foutmelding, niets.

[ Voor 46% gewijzigd door Osiris op 26-03-2008 16:24 ]


Acties:
  • 0 Henk 'm!

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 22:47
Ik weet dat dit topic drie jaar oud is, maar ik had dit probleem vandaag ook en ik kwam toen dit topic tegen. Voor degene die ook dit probleem tegenkomt:

Een oplossing is om alle behalve één van de ip-adressen deprecated te maken. Dit gaat door de preferred_lft van een adres op 0 te zetten. In het volgende voorbeeld is 2001:db8:300:2d7::2 het tunnel-endpoint van mijn sixxs-tunnel, en 2001:db8:3fb::1 een adres in mijn subnet. Die laatste is toegevoegd aan zowel mijn interne netwerkkaart als de sixxs-interface. Met de volgende code wordt het adres uit het subnet als 'source address' geselecteerd:

[b][red]server[/red][blue] ~ #[/blue][/b] ip -6 addr change 2001:db8:300:2d7::2 dev <device> preferred_lft 0
[b][red]server[/red][blue] ~ #[/blue][/b] ip adr show sixxs
5: sixxs: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN 
    link/sit <local-endpoint> peer <remote-endpoint>
    inet6 2001:db8:300:2d7::2/64 scope global [b]deprecated[/b]    <-- niet meer gebruikt
       valid_lft forever preferred_lft forever
    inet6 2001:db8:3fb::1/128 scope global                  <-- nu wel gebruikt
       valid_lft forever preferred_lft forever
[...]


Zie ook: http://www.davidc.net/net...e-address-selection-linux