Re: Understanding if-bound vs floating state policy
Kenneth Gober <[email protected]> Fri, 13 Dec 2019 10:23:28 -0500
| Newsgroups | gmane.os.openbsd.pf |
|---|---|
| Message-ID | <CANHrbpdi80QZ7K0=JyB29+4o9oHOB-jFrOUNqs_8O-LEWZzRpw@mail.gmail.com> |
--0000000000004118c4059997724f Content-Type: text/plain; charset="UTF-8" On Fri, Dec 13, 2019 at 10:02 AM Victor Sudakov <[email protected]> wrote: > But then, what is the real difference betwttn if-bound and global? > My understanding is that the difference applies when you have multiple paths to the same destination. For example, suppose you have a hardwired ethernet connection on em0, and you also have a wireless connection on iwn0, and you freely switch back and forth between them but use the same IP address on both. With if-bound states, switching from one interface to another would require you to restart all your already-in-progress sessions in order to re-establish states on the new interface. With floating states, a state established on one interface could be used directly if packets for that connection suddenly start appearing on a different interface. (this is a bad example, I know, because ARP issues would make it hard for an IP to float back and forth transparently, but a more proper example is harder to explain). It is a more useful setting on a router in a mesh network, where packets you're forwarding might move between different interfaces, as their path through the network is adjusted due to congestion or whatever. On an endpoint it's not particularly useful unless you want to allow sessions to migrate between different interfaces (all using the same IP address), which is a somewhat rare use case and one you would normally use trunk interfaces to support, rather than floating states. -ken --0000000000004118c4059997724f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr">On Fri, Dec 13, 2019 at 10:02 AM Victor S= udakov <<a href=3D"mailto:[email protected]">[email protected]</a>> wrote:<= br></div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style= =3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding= -left:1ex">But then, what is the real difference betwttn if-bound and globa= l?<br></blockquote><div><br></div><div>My understanding is that the differe= nce applies when you have multiple paths to the same destination.=C2=A0 For= example, suppose you have a hardwired ethernet connection on em0, and you = also have a wireless connection on iwn0, and you freely switch back and for= th between them but use the same IP address on both.=C2=A0 With if-bound st= ates, switching from one interface to another would require you to restart = all your already-in-progress sessions in order to re-establish states on th= e new interface.=C2=A0 With floating states, a state established on one int= erface could be used directly if packets for that connection suddenly start= appearing on a different interface.=C2=A0 (this is a bad example, I know, = because ARP issues would make it hard for an IP to float back and forth tra= nsparently, but a more proper example is harder to explain).</div><div><br>= </div><div>It is a more useful setting on a router in a mesh network, where= packets you're forwarding might move between different interfaces, as = their path through the network is adjusted due to congestion or whatever.= =C2=A0 On an endpoint it's not particularly useful unless you want to a= llow sessions to migrate between different interfaces (all using the same I= P address), which is a somewhat rare use case and one you would normally us= e trunk interfaces to support, rather than floating states.</div><div><br><= /div><div>-ken</div></div></div> --0000000000004118c4059997724f--