Description of nertwork to be used in the ``Maxi Project'': This is a hypothetical private network inside NJIT, with a private address space, connected through a NAT Router (Network Address Translation) to the rest of the NJIT network, and thus to the rest of the Internet. A drawing of this network now can be found on Dr Ott's web page. For a computer (router) the drawing is not necessary: all relevant information is given below. But the drawing makes life easier for us humans! There are 12 routers (R1, R2, ... , R12) and 13 networks numbered I, II, ... , XIII. (Roman numerals). In my code, networks zero, XIV and XV play a special role. Network Adress MTU I 172.16.0.0/20 4352 II 172.16.192.0/20 1500 III 172.17.0.0/20 65535 IV 172.17.204.0/24 4464 V 172.17.240.0/24 576 VI 172.18.240.0/24 1500 VII 172.18.248.0/24 1500 VIII 172.18.244.0/24 1500 IX 172.19.0.0/20 65535 X 172.18.242.0/24 1500 XI 172.18.241.0/24 1500 XII 172.19.48.0/24 4464 XIII 172.19.63.0/24 17914 XV NJIT, everything outside 172.0.0.0/8, has MTU 65535 Interfaces: R1: A1 to I, A2 to II, A3 to III, A4 to IV, A5 to V. R2: A6 to I, A7 to VI. R3: A8 to V, A9 to VI. R4: A10 to IV, A11 to VII. R5: A12 to VII, A13 to VIII. R6: A14 to III, A15 to IX. R7: A16 to IX, A17 to ``NJIT''. R8: A18 to II, A19 to XI. R9: A20 to XI, A21 to XII R10: A22 to III, A23 to XIII. R11: A24 to II, A25 to X. R12: A26 to XII, A27 to XIII. Addresses of interfaces: A1 (I): 172.16.0.15 A2 (II): 172.16.192.15 A3 (III): 172.17.0.15 A4 (IV): 172.17.204.15 A5 (V): 172.17.240.15 A6 (I): 172.16.0.14 A7 (VI): 172.18.240.15 A8 (V): 172.17.240.14 // This one was changed 11/10/2002. A9 (VI): 172.18.240.14 A10 (IV): 172.17.204.14 A11 (VII): 172.18.248.15 A12 (VII): 172.18.248.14 A13 (VIII): 172.18.244.15 A14 (III): 172.17.0.14 A15 (IX): 172.19.0.15 A16 (IX): 172.19.0.14 A17 (NJIT): 128.235.0.15 A18 (II): 172.16.192.14 A19 (XI): 172.18.241.15 A20 (XI): 172.18.241.14 A21 (XII): 172.19.48.15 A22 (III): 172.17.0.13 A23 (XIII): 172.19.63.15 A24 (II): 172.16.192.13 A25 (X): 172.18.242.15 A26 (XII): 172.19.48.14 A27 (XIII): 172.19.63.14 Please let me know if I use the same address twice, or if an an interface has an address not in the network it interfaces to. Routing is ``min-hop'': Routers always try to use the route that has the smallest number of intermediate routers. There are some ties: R1 to XII could use A2 - A18 - A19 - A20 - A21 (two hops) or A3 - A22 - A23 - A27 - A26 (also two hops). If R1 has a packet destined for XII it will use output interface A3 to next-hop A22. Similarly, If R1 has a packet destined for VI it will use output interface A1 to next-hop A6. NOTE: This means that if R1 gets a packet entering at A5 destined for VI then it will simply forward the packet to A6. But if R1 gets a packet entering at A1, destined for VI, with source address in I, then it will forward the packet to A6 AND send an ICMP redirect to the source address. (Similar with a packet destined for XII entering at interface A2 or A3). All Routers R1 - R6 and R8 - R12 have a ``default route'' to, or toward, router R7. Router R7 is a NAT Router. We will not discuss this further. For the purposes of this project, the following suffices: (1) If R7 has a packet, the destination address of which is in one of the networks in this description, then it delivers or forwards the packet, using the min-hop approach. (2) If R7 has a packet, the destination address of which is a public IP address, it forwards the packet (through interface A17) to the appropriate NJIT Router. (In this case R7 may change source address and source port number, and ``keep state'', in order to make sense out of return packets, if any, see the NAT RFCs. Usually the ``source address of that outgoing packet becomes the public IP address of A17, that is, 128.235.0.15 . You are NOT required to do that address translation.) (3) If R7 receives a packet on A16 with a destination address that is a private address (see Forouzan page 107) and not in one of the networks in this description, then it ``throws the packet on the floor'' and if possible sends an ICMP packet to the source address. (4) If R7 receives a packet on A17 it attempts to use the ``state information'' in its memory to translate the destination address and destination port number into a packet destined for one of the networks I - XIII. If that succeeds, it delivers or forwards the resulting packet. (As in (1)). If it fails ... , let's assume it destroys the packet. (That way, R7 also functions as a firewall). --- You will construct routing tables for R1 and for R7. For R7, you will NOT worry about the address translation part. Examples will be given. You will write a program that for each input interface A1 - A5 explains what R1 does with any packet entering on that input interface, and that for input interfaces A16 - A17 explains what R7 does with a packet arriving on those interfaces. Packets will have either no options or the strict source route option (with No-Ops). Make sure you do ``strict source route'' as done in class, NOT as done in Forouzan! An example ``input file'' and an example ``output file'' were added on 11/10/2002. The output file was created by running my program with the sample input file. Thus far the sample input file has only 2 packets. More will be added. Make sure that your program creates output similar to mine. The sample output file contains a discussion added by hand. You are not expected to add a discussion! Looking through the example input- and output files is likely to be helpful in preparing for the second midterm. Since I did not give router addresses in NJIT that R7 interacts with, the test cases will not include strict sourse route packets in R7. (Strict source route only in R1). The only options I will use are strict source route and No-Op.