Date: Sun, 13 Dec 1998 13:32:58 -0500 From: "Jim Flowers" <jflowers@ezo.net> To: <freebsd-questions@FreeBSD.ORG> Subject: SKIP behind NAT with single-homed skiphost Message-ID: <009401be26c7$025317e0$848266ce@crocus.ezo.net>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. ------=_NextPart_000_0091_01BE269D.19246890 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable In order to have a choice of routing my discontinuous local network = (network 1) segment over the Internet to its parent (network 2) I want = to use SKIP behind NAT to set up a tunnel. That way the local and = parent networks can communicate through the tunnel (slow speed) but hosts on the local network can access the Internet-at-large using NAT = (high speed cable modem). The choice is made by simply changing the = gateway of the workstation or by addressing network segments with static = routes on network 1. =20 Unfortunately, tunneling with SKIP from network to network using single = interface skiphosts behind natd does not appear to be possible with the = freebsd 2.2.7 port of natd. The problem is that a route must exist on = network 2 to forward packets for network 1 to S2 for skip processing and = there must be a route to direct the return packets from S2 to N1 ( S1 is = unreachable from network 2) via the Internet. Unfortunately due to NAT, = N1 is also the source address for all of the natded packets coming from = network 1 so a loop would result on network 2. =20 H1----+----N1----R1---------[Internet]------------R2----+----H2 S1----+ +----S2 = (single homed) | | network 1 network 2 =20 One solution would be to patch natd.c (and associated program calls) to = allow SKIP (protocol 57) in addition to TCP, UDP and ICMP and then pass = all SKIP packets on to the S1 host for processing. CDP is simpler, as = it is 1640/UDP packets and natd/divert will handle it, as is. =20 This seems like a lot of effort and I don't like to use programs with = local patches but the result is desireable. Have I missed an elegant = (or clever ordinary) way to achieve this capability? =20 Glad to hear your ideas. =20 Thanks. Jim Flowers <jflowers@ezo.net> ------=_NextPart_000_0091_01BE269D.19246890 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN"> <HTML> <HEAD> <META content=3Dtext/html;charset=3Diso-8859-1 = http-equiv=3DContent-Type> <META content=3D'"MSHTML 4.72.2106.6"' name=3DGENERATOR> </HEAD> <BODY bgColor=3D#ffffff> <DIV> <DIV><FONT color=3D#000000 size=3D2>In order to have a choice of routing = my=20 discontinuous local network (network 1) segment over the Internet to its = parent=20 (network 2) I want to use SKIP behind NAT to set up a tunnel. That = way the=20 local and parent networks can communicate through the tunnel (slow = speed)=20 but</FONT></DIV> <DIV><FONT size=3D2>hosts on the local network can access the = Internet-at-large=20 using NAT (high speed cable modem). The choice is made by simply = changing=20 the gateway of the workstation or by addressing network segments with = static=20 routes on network 1.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>Unfortunately, tunneling with SKIP from network to = network=20 using single interface skiphosts behind natd does not appear to be = possible with=20 the freebsd 2.2.7 port of natd. The problem is that a route must = exist on=20 network 2 to forward packets for network 1 to S2 for skip processing and = there=20 must be a route to direct the return packets from S2 to N1 ( S1 is = unreachable=20 from network 2) via the Internet. Unfortunately due to NAT, N1 is = also the=20 source address for all of the natded packets coming from network 1 so a = loop=20 would result on network 2.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV> </DIV> <DIV><FONT=20 size=3D2>H1----+----N1----R1---------[Internet]------------R2----+----H2<= /FONT></DIV> <DIV><FONT=20 size=3D2>S1----+ &nb= sp; &nbs= p;  = ; = =20 +----S2 (single homed)</FONT></DIV> <DIV><FONT size=3D2> =20 | = &= nbsp; &n= bsp; &nb= sp; =20 |</FONT></DIV> <DIV><FONT size=3D2> network=20 1 = &= nbsp; &n= bsp; =20 network 2</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>One solution would be to patch natd.c (and = associated program=20 calls) to allow SKIP (protocol 57) in addition to TCP, UDP and ICMP and = then=20 pass all SKIP packets on to the S1 host for processing. CDP is = simpler, as=20 it is 1640/UDP packets and natd/divert will handle it, as = is.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>This seems like a lot of effort and I don't like to = use=20 programs with local patches but the result is desireable. Have I = missed an=20 elegant (or clever ordinary) way to achieve this = capability?</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>Glad to hear your ideas.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>Thanks.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV></DIV> <DIV><FONT color=3D#000000 size=3D2>Jim Flowers <<A=20 href=3D"mailto:jflowers@ezo.net">jflowers@ezo.net</A>></FONT></DIV></B= ODY></HTML> ------=_NextPart_000_0091_01BE269D.19246890-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?009401be26c7$025317e0$848266ce>