[Bridge] IP address on physcial interface instead of bridge interface?

Joakim Tjernlund joakim.tjernlund at transmode.se
Sun Mar 28 09:19:19 PDT 2010


Stephen Hemminger <shemminger at linux-foundation.org> wrote on 2010/03/28 18:03:21:
>
> On Sun, 28 Mar 2010 17:19:13 +0200
> Joakim Tjernlund <joakim.tjernlund at transmode.se> wrote:
>
> > Nicolas de Pesloüan <nicolas.2p.debian at free.fr> wrote on 2010/03/26 22:35:40:
> > >
> > > Joakim Tjernlund a écrit :
> > > >
> > > > Nicolas de Pesloüan <nicolas.2p.debian at free.fr> wrote on 2010/03/26 21:39:33:
> > > >
> > > >> From: Nicolas de Pesloüan <nicolas.2p.debian at free.fr>
> > > >> To: Joakim Tjernlund <joakim.tjernlund at transmode.se>
> > > >> Cc: bridge at lists.linux-foundation.org
> > > >> Date: 2010/03/26 21:39
> > > >> Subject: Re: [Bridge] IP address on physcial interface instead of
> bridge interface?
> > > >>
> > > >> Joakim Tjernlund wrote:
> > > >>
> > > >>> Figure a small picture will help so here it is:
> > > >>>
> > > >>> Before adding eth0 to br0:
> > > >>> eth0    br0
> > > >>>  |
> > > >>>  |
> > > >>> HW controller
> > > >>>
> > > >>> after adding eth0 to br0:
> > > >>> eth0
> > > >>>   \
> > > >>>    \
> > > >>>      br0
> > > >>>    /
> > > >>>   /
> > > >>> HW controller
> > > >> I don't understand your ascii art. What is HW controller ? eth0 is an hardware
> > > >> controller !?
> > > >>
> > > >>    Nicolas.
> > > >
> > > > eth0 is the I/F IP stack will see/use. HW controller is the ethernet HW
> controller,
> > > > the PCI HW if you like.
> > >
> > > I tested the following setup:
> > >
> > > # eth0 setup:
> > >
> > > ip addr add $IP dev eth0
> > > ip link set up dev eth0
> > > ip route add default via $DEF_ROUTE
> > >
> > > # bridge setup:
> > >
> > > brctl addbr br0
> > > brctl setfd br0 0
> > >
> > > Then I tested the following migration sequence to move the IP addresse to br0:
> > >
> > > ip addr add $IP dev br0
> > > ip link set up dev br0
> > >
> > > brctl addif br0 eth0
> > > ip addr del $IP dev eth0
> > > ip route add default via $DEF_ROUTE
> > >
> > > Thanks to "brctl setfd br0 0", this migration cause no trouble to active
> connections.
> > >
> > > So I cannot find a good reason to try and use eth0 as the "main" bridge interface.
> > >
> > > Do you have a process really linked to eth0 ?
> >
> > So I did a quick test and it did seem to work for the simple case. However
> > there may be other routes connected to eth0 than just the default route so
> > one have to scan the whole route table. There is also the another problem,
> > now the I/F is named br0 and all config/status ops related to eth0 must
> > be changed to use br0 instead.
> > The routing daemon(Quagga) also needs to update its config to use br0 instead.
> > All in all, using br0 instead of eth0 works on a technical level but
> > all apps dealing with routes and interfaces needs to be updated and this
> > is not trivial nor wanted.
> >
> > Allowing eth0 be used as I suggested would really help in these
> > configurations. Would such a change be welcomed and is it
> > hard to impl. ?
>
> The bridge code is becoming a mess as everyone implements there favorite

Sure, I understand that but I felt this was general enough to be a standard
feature.

> rework. I prefer to have custom modifications handled by netfilter (the all purpose
> packet patch kit).

hmm, not sure I follow here. Are you saying I can do this by using netfilter?
I don't see how netfilter can do this.

>
> I am considering some patches to allow a "master interface" but this solves a different
> issue, which relates to booting in virtual environments.

Perhaps my suggestion would work for that case too?

>
> You can always rename interfaces.
>
> ip li set dev eth0 name eth0_link
> ip li set dev br0 name eth0

Possibly, but to rename an I/F I have to bring it down first. Then communication
stops and all routes are deleted so that doesn't feel like a viable solution.

 Jocke



More information about the Bridge mailing list