Date: Tue, 13 Mar 2001 14:17:58 +1100 From: Murray Taylor <mtaylor@bytecraft.com.au> To: "'freebsd-net@freebsd.org'" <freebsd-net@freebsd.org> Subject: Frame Relay setup questions (and basis for tutorial?) Message-ID: <710709BB8B02D311942E00606744181054428D@MELEXC01>
next in thread | raw e-mail | index | archive | help
This loooong email will hopefully allow the netgraph - network gurus to A: answer my remaining questions and B: grab this and make a tutorial 'worked example' (unless it is total blech of course) So to those who have already earned their stripes from one looking for his first (hopefully, not to painful) stripe..... RTFMs used - man netgraph, ng_frame_relay, ng_lmi, ng_iface, ng_rfc1490, ng_bridge - /usr/share/examples/netgraph/* - Daemonnews 200003 netgraph article by Archie Cobbs - previous freebsd-questions and -net mailings O'Reilly - DNS and BIND - Getting Connected - The internet at 56K and up Addison-Wesley - Practical Internetworking with TCP/IP and UNIX Other factoids about the networks - The melbourne net is Win 9x/NT centric and almost all addresses are served up by DHCP from the NT PDC - The FreeBSD boxen are being used for the frame relay/ webserving application only at present. - The FreeBSD boxen run Samba at the os level = 0 and other appropriate settings to avoid interaction with the Browse master election waffle of M$ land This is still theoretical, as I am still waiting for the copper connection ;-) ! But it is RSN !! -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o- The Questions: For the initial setup [1] Given the settings from Telstra for the Management protocol, do I need the netgraph ng_lmi module? For the WAN setup [1] Given that I understand that establishing the permanent virtual circuit (PVC) to the Sydney office will assign another DLCI number to us, is the netgraph extension I have made in start_if.ng1 (melbourne setup) correct? [2] Do I need to add a router daemon to the melbourne system now? More difficult questions (given DHCP nature of the network) [3] Do I need to fully populate the /etc/hosts table now? [4] Do I need to fully populate the DNS table in Spyder? Other questions (bonus points!) [1] if I need to bring out other xxx.yyy.zzz.0/26 addresses 'out-the-side' of Spyder for other 'net visible machines, how should it be done? There is'nt any lower / upper hooks on the ng_iface node to attach a ng_bridge. I assume that this would be the connections point as it is the 'effective ethernet port' that one normally hooks to, is it not? Murray Taylor Project Engineer Bytecraft P/L +61 3 9587 2555 +61 3 9587 1614 fax mtaylor@bytecraft.com.au -o-o-o-o-o-o-o-o-o-o-o-o-o--o-o-o-o-o-o-o-o-o-o-o-o The 2 setups to be examined w.r.t. the above questions Initial setup -- Internet Access from ByteMelb for website - select Management Protocol ITU-T (CCITT) Q933 Annex A no ANSI T1.617 Annex D yes (Telstra default) LMI (FRF Doc#001-208966) no - select physical interface X.21bis/V35 no X.21 yes G.704 no - Telstra assignments xxx.yyy.zzz.0/26 network DLCI 16 Internet link (Telstra 'Big Pond') - Hardware card WANic 405 with X21 interface uses sr(4) driver - kernel compiled with NETGRAPH - hardware setup ng0 ip fxp0 ip xxx.yyy.zzz.1 SPYDER 10.1.2.30 +----------+ | | +---+ |-+-+ +-| frame | N | X21 |s|n| |f| 100BaseT =======| T |========|r|g| |x|~~~~~~~~~~~~ relay | U | |0|0| |p| +---+ |-+-+ |0| | +-| | | | | | | | | +----------+ Netgraph setup for Internet access [ ](auto1023) -------+ [ lmi ](auto0) ---------+| [ ] || || [ sr0 ] [ ](dlci0) ---+| [ phys ](rawdata) --- (downstream)[ frame_relay ](dlci1023) -+ [ ] [ ](dlci16)--+ | +---------------------------------------------------------+ | | { ] [ ng0 ] +--- (downstream)[ rcf1490 ](inet) --- (inet)[ iface ] xxx.yyy.zzz.1 [ ] [ ] Desired Initial Routing default xxx.yyy.zzz.1 UGSc ng0 127.0.0.1 127.0.0.1 UH lo0 10.1.2.0 ff:ff:ff:ff:ff:ff UHLWb fxp0 10.1.2 link#1 UC fxp0 - - - - so the following is done in this sequence via rc.conf (written in the sequence that rc.network will process them) =============== network portions of rc.conf ========================== # # set up my hostname # hostname="spyder.bytecraft.au.com" # # network setup # network_interfaces="lo0 ng0 fxp0" # # (NB more needed in man pages re start_if.* files) # # start_if.ng0 file is run here automagically # ifconfig_lo0="inet 127.0.0.1" ifconfig_fxp0="inet 10.1.2.30 netmask 255.255.0.0" ifconfig_ng0="inet xxx.yyy.zzz.1 netmask 255.255.255.192" # # firewall # ipfw_enable="YES" ipfw_flags="/etc/firewall/rules" # # NAT setup here # natd_enable="YES" natd_interfaces="ng0" # # static routes # static_routes="ng0" route_ng0="-net 0.0.0.0 xxx.yyy.zzz.1" # # gateway enable # gateway_enable="YES" # # ----- end of netpass 1 # # named enable # named_enable="YES" named_flags="-u bind -g bind /etc/namedb/sandbox/named.conf" # # ----- end of netpass 2 # # sshd # sshd_enable="YES" # # ----- end of netpass 3 # # inetd flags # inetd_flags="" ============= end of network part of rc.conf ======================== the start_if.ng0 script ( basically a copy of the frame relay example file in /usr/share/examples/netgraph ) ================ start_if.ng0 ============================= #!/bin/sh # script to set up a frame relay link on the sr card. # The dlci used is selected below. The default is 16 # WANic 405 CARD=sr0 DLCI=16 # create a frame_relay type node and attach it to the sync port. ngctl mkpeer ${CARD}: frame_relay rawdata downstream # Attach the dlci output of the (de)multiplexor to a new # Link management protocol node. ngctl mkpeer ${CARD}:rawdata lmi dlci0 auto0 # Also attach dlci 1023, as it needs both to try autoconfiguring. # The Link management protocol is now alive and probing.. ngctl connect ${CARD}:rawdata ${CARD}:rawdata.dlci0 dlci1023 auto1023 # Attach the DLCI(channel) the Telco has assigned you to # a node to hadle whatever protocol encapsulation your peer # is using. In this case rfc1490 encapsulation. ngctl mkpeer ${CARD}:rawdata rfc1490 dlci${DLCI} downstream # Attach the ip (inet) protocol output of the protocol mux to the ip (inet) # input of a netgraph "interface" node (ifconfig should show it as "ng0"). ngctl mkpeer ${CARD}:rawdata.dlci${DLCI} iface inet inet ================end of start_if.ng0 ========================== windoze machines that need internet access have their gateway set to 10.1.2.30 ** NOTE most internet access is inwards to apache webserver running on spyder ===================================================================== VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ===================================================================== Second Setup Then when Sydney comes online as a WAN extension to the ByteMelb net Assumptions Private Virtual Circuit (PVC) defined as : DLCI 17 at bytemelb DLCI 16 at bytesyd MELBOURNE - hardware setup ng0 ip fxp0 ip xxx.yyy.zzz.1 SPYDER 10.1.2.30 ng1 ip +----------+ 10.1.2.250 | +-+ | | |n| | +---+ |-+g| +-| frame | N | X21 |s|0| |f| 100BaseT =======| T |========|r|-| |x|~~~~~~~~~~~~ relay | U | |0|n| |p| +---+ |-+g| |0| | |1| +-| | +-+ | | | | | | | +----------+ Netgraph redefined to this configuration [ ](auto1023) -------+ [ lmi ](auto0) ---------+| [ ] || || [ sr0 ] [ ](dlci0) ---+| [ phys ](rawdata) --- (downstream)[ frame_relay ](dlci1023) -+ [ ] [ ](dlci16) ---+ [ ](dlci17) --+| || +----------------------------------------------------------+| |+----------------------------------------------------------+ || || { ] [ ng0 ] |+--- (downstream)[ rcf1490 ](inet) --- (inet)[ iface ] 203.39.118.1 | [ ] [ ] | | [ ] [ ng1 ] +---- (downstream)[ rfc1490 ](inet) --- (inet)[ iface ] 10.1.2.250 [ ] [ ] Desired Initial Routing default xxx.yyy.zzz.1 UGSc ng0 127.0.0.1 127.0.0.1 UH lo0 10.1.7/24 10.1.2.250 UGS ng1 -- added WAN link 10.1.2.0 ff:ff:ff:ff:ff:ff UHLWb fxp0 10.1.2 link#1 UC fxp0 --- SYDNEY - hardware setup ng0 ip fxp0 ip 10.1.7.250 SYDGATE 10.1.7.1 +----------+ | | +---+ |-+-+ +-| frame | N | X21 |s|n| |f| 100BaseT =======| T |========|r|g| |x|~~~~~~~~~~~~ relay | U | |0|0| |p| +---+ |-+-+ |0| | +-| | | | | | | | | +----------+ Netgraph will be similar to original ByteMelb setup [ ](auto1023) -------+ [ lmi ](auto0) ---------+| [ ] || || [ sr0 ] [ ](dlci0) ---+| [ phys ](rawdata) --- (downstream)[ frame_relay ](dlci1023) -+ [ ] [ ](dlci16)--+ | +---------------------------------------------------------+ | | { ] [ ng0 ] +--- (downstream)[ rcf1490 ](inet) --- (inet)[ iface ] 10.1.7.250 [ ] [ ] Desired Initial Routing default 10.1.7.250 UGSc ng0 127.0.0.1 127.0.0.1 UH lo0 10.1.7.0 ff:ff:ff:ff:ff:ff UHLWb fxp0 10.1.7 link#1 UC fxp0 - - - - so the setups now are this (written in the sequence that rc.network will process them) =bytMelb==== WAN ===network portions of rc.conf ============== # # changes / additions marked by --------- WAN # # set up my hostname # hostname="spyder.bytecraft.au.com" # # network setup # network_interfaces="lo0 ng0 ng1 fxp0" ---------- WAN # # start_if.ng0 file is run here automagically # start_if.ng1 is run also ---------- WAN # ifconfig_lo0="inet 127.0.0.1" ifconfig_fxp0="inet10.1.2.30 netmask 255.255.0.0" ifconfig_ng0="inet xxx.yyy.zzz.1 netmask 255.255.255.192" ifconfig_ng1="inet 10.1.2.250 netmask 255.255.0.0" ---------- WAN # # firewall # ipfw_enable="YES" # # NAT setup here # natd_enable="YES" natd_interfaces="ng0" # # static routes # static_routes="ng0 ng1" ---------- WAN route_ng0="-net 0.0.0.0 -interface ng0" route_ng1="-net 10.1.7.0 10.1.2.250 255.255.0.0" ---------- WAN # # gateway enable # gateway_enable="YES" # # ----- end of netpass 1 # # named enable # named_enable="YES" named_flags="-u bind -g bind /etc/namedb/sandbox/named.conf" # # ----- end of netpass 2 # # sshd # sshd_enable="YES" # # ----- end of netpass 3 # # inetd flags # inetd_flags="" ============= end of network part of rc.conf ======================== the start_if.ng0 script ( basically a copy of the frame relay example file in /usr/share/examples/netgraph ) ===bytMelb== WAN =========== start_if.ng0 ========================== ----------- WAN no changes ============== end of start_if.ng0 =============================== ===bytMelb== WAN =========== start_if.ng1 ========================== #!/bin/sh # script to set up an additional frame relay link on the sr card. # WANic 405 CARD=sr0 # # WAN link to sydney DLCI=17 # Attach the DLCI(channel) the Telco has assigned you to # a node to handle whatever protocol encapsulation your peer # is using. In this case rfc1490 encapsulation. ngctl mkpeer ${CARD}:rawdata rfc1490 dlci${DLCI} downstream # Attach the ip (inet) protocol output of the protocol mux to the ip (inet) # input of a netgraph "interface" node (ifconfig should show it as "ng1"). ngctl mkpeer ${CARD}:rawdata.dlci${DLCI} iface inet inet ====bytMelb== WAN ==========end of start_if.ng1 =================== windoze machines that need internet access have their gateway set to 10.1.2.30 other windoze machines should pass through to bytSyd OK due to netmask value 255.255.0.0 ???? ====bytSyd === WAN == network portions of rc.conf ================= # # set up my hostname # hostname="sydgate.bytecraft.au.com" # # network setup # network_interfaces="lo0 ng0 fxp0" # # start_if.ng0 file is run here automagically # ifconfig_lo0="inet 127.0.0.1" ifconfig_fxp0="inet 10.1.7.1 netmask 255.255.0.0" ifconfig_ng0="inet 10.1.7.250 netmask 255.255.0.0" # # firewall # ipfw_enable="NO" # # NAT setup here # natd_enable="NO" # # static routes # static_routes="ng0" route_ng0="-net 0.0.0.0 -interface ng0" # # gateway enable # gateway_enable="NO" # # ----- end of netpass 1 # # named enable # named_enable="NO" # # ----- end of netpass 2 # # sshd # sshd_enable="YES" # # ----- end of netpass 3 # # inetd flags # inetd_flags="" ===bytSyd== WAN == end of network part of rc.conf ====== the start_if.ng0 script ( basically a copy of the frame relay example file in /usr/share/examples/netgraph ) ===bytSyd== WAN ==== start_if.ng0 ===================== #!/bin/sh # script to set up a frame relay link on the sr card. # The dlci used is selected below. The default is 16 # WANic 405 CARD=sr0 DLCI=16 # create a frame_relay type node and attach it to the sync port. ngctl mkpeer ${CARD}: frame_relay rawdata downstream # Attach the dlci output of the (de)multiplexor to a new # Link management protocol node. ngctl mkpeer ${CARD}:rawdata lmi dlci0 auto0 # Also attach dlci 1023, as it needs both to try autoconfiguring. # The Link management protocol is now alive and probing.. ngctl connect ${CARD}:rawdata ${CARD}:rawdata.dlci0 dlci1023 auto1023 # Attach the DLCI(channel) the Telco has assigned you to # a node to hadle whatever protocol encapsulation your peer # is using. In this case rfc1490 encapsulation. ngctl mkpeer ${CARD}:rawdata rfc1490 dlci${DLCI} downstream # Attach the ip (inet) protocol output of the protocol mux to the ip (inet) # input of a netgraph "interface" node (ifconfig should show it as "ng0"). ngctl mkpeer ${CARD}:rawdata.dlci${DLCI} iface inet inet ===bytSyd== WAN ====end of start_if.ng0 ====================== windoze machines that need internet access have their gateway set to 10.1.2.30 windoze machines should see melb system OK due to netmask value 255.255.0.0 ???? To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?710709BB8B02D311942E00606744181054428D>