Click IP router config

Aniruddha Bohra bohra at cs.rutgers.edu
Wed Jun 18 15:22:54 EDT 2003


Hello
      I have a strange problem with the IP router configuration
I tried click in a configuration for an IP router,
customized and used conf/make-ip-conf.pl and generated
the router config file - Both the modified script and the
output it generates are attached

   My setup is as follows :

H-1 ---->  eth1 on
                     GW
                     eth2 on------> H-2

Now before I insert the module, I cannot ping the hosts - Good
When I do a click install with the file thus generated, I can ping them

However, if I try to open any connection (telnet, ssh...), the packets 
are not seen.
(tcpdump) shows no packets on the relevant interface on the hosts.

I am surely missing something very basic here. How can I get it to
forward packets other than for ping  ?

Thanks for the help

Cheers
Aniruddha
-------------- next part --------------
A non-text attachment was scrubbed...
Name: make-ip-conf.pl
Type: application/x-perl
Size: 6961 bytes
Desc: not available
Url : https://amsterdam.lcs.mit.edu/pipermail/click/attachments/20030618/2b3b198c/make-ip-conf.bin
-------------- next part --------------
// Generated by make-ip-conf.pl
// eth0 128.6.171.141 00:E0:29:0F:D5:FF
// eth1 10.10.10.13 00:04:76:DF:CE:58
// eth2 192.168.100.1 00:04:76:DD:29:78

// Shared IP input path and routing table
ip :: Strip(14)
    -> CheckIPHeader(INTERFACES 128.6.171.141/255.255.255.0 10.10.10.13/255.255.255.0 192.168.100.1/255.255.255.0)
    -> rt :: StaticIPLookup(
	128.6.171.141/32 0,
	128.6.171.255/32 0,
	128.6.171.0/32 0,
	10.10.10.13/32 0,
	10.10.10.255/32 0,
	10.10.10.0/32 0,
	192.168.100.1/32 0,
	192.168.100.255/32 0,
	192.168.100.0/32 0,
	128.6.171.0/255.255.255.0 1,
	10.10.10.0/255.255.255.0 2,
	192.168.100.0/255.255.255.0 3,
	255.255.255.255/32 0.0.0.0 0,
	0.0.0.0/32 0,
	0.0.0.0/0.0.0.0 128.6.171.129 1);

// ARP responses are copied to each ARPQuerier and the host.
arpt :: Tee(4);

    // Input and output paths for eth0
    c0 :: Classifier(12/0806 20/0001, 12/0806 20/0002, 12/0800, -);
    FromDevice(eth0) -> c0;
    out0 :: Queue(200) -> todevice0 :: ToDevice(eth0);
    c0[0] -> ar0 :: ARPResponder(128.6.171.141 00:E0:29:0F:D5:FF) -> out0;
    arpq0 :: ARPQuerier(128.6.171.141, 00:E0:29:0F:D5:FF) -> out0;
    c0[1] -> arpt;
    arpt[0] -> [1]arpq0;
    c0[2] -> Paint(1) -> ip;
    c0[3] -> Print("eth0 non-IP") -> Discard;

    // Input and output paths for eth1
    c1 :: Classifier(12/0806 20/0001, 12/0806 20/0002, 12/0800, -);
    FromDevice(eth1) -> c1;
    out1 :: Queue(200) -> todevice1 :: ToDevice(eth1);
    c1[0] -> ar1 :: ARPResponder(10.10.10.13 00:04:76:DF:CE:58) -> out1;
    arpq1 :: ARPQuerier(10.10.10.13, 00:04:76:DF:CE:58) -> out1;
    c1[1] -> arpt;
    arpt[1] -> [1]arpq1;
    c1[2] -> Paint(2) -> ip;
    c1[3] -> Print("eth1 non-IP") -> Discard;

    // Input and output paths for eth2
    c2 :: Classifier(12/0806 20/0001, 12/0806 20/0002, 12/0800, -);
    FromDevice(eth2) -> c2;
    out2 :: Queue(200) -> todevice2 :: ToDevice(eth2);
    c2[0] -> ar2 :: ARPResponder(192.168.100.1 00:04:76:DD:29:78) -> out2;
    arpq2 :: ARPQuerier(192.168.100.1, 00:04:76:DD:29:78) -> out2;
    c2[1] -> arpt;
    arpt[2] -> [1]arpq2;
    c2[2] -> Paint(3) -> ip;
    c2[3] -> Print("eth2 non-IP") -> Discard;

// Local delivery
toh :: ToHost;
arpt[3] -> toh;
    rt[0] -> IPReassembler -> ping_ipc :: IPClassifier(icmp type echo, -);
    ping_ipc[0] -> ICMPPingResponder -> [0]rt;
    ping_ipc[1] -> EtherEncap(0x0800, 1:1:1:1:1:1, 2:2:2:2:2:2) -> toh;

    // Forwarding path for eth0
       rt[1]  -> DropBroadcasts
	        -> cp0 :: PaintTee(1)
		-> gio0 :: IPGWOptions(128.6.171.141)
		-> FixIPSrc(128.6.171.141)
		-> dt0 :: DecIPTTL
		-> fr0 :: IPFragmenter(1500)
		-> [0]arpq0;
       dt0[1] -> ICMPError(128.6.171.141, timeexceeded) -> rt;
       fr0[1] -> ICMPError(128.6.171.141, unreachable, needfrag) -> rt;
       gio0[1] -> ICMPError(128.6.171.141, parameterproblem) -> rt;
       cp0[1] -> ICMPError(128.6.171.141, redirect, host) -> rt;

    // Forwarding path for eth1
       rt[2]  -> DropBroadcasts
	        -> cp1 :: PaintTee(2)
		-> gio1 :: IPGWOptions(10.10.10.13)
		-> FixIPSrc(10.10.10.13)
		-> dt1 :: DecIPTTL
		-> fr1 :: IPFragmenter(1500)
		-> [0]arpq1;
       dt1[1] -> ICMPError(10.10.10.13, timeexceeded) -> rt;
       fr1[1] -> ICMPError(10.10.10.13, unreachable, needfrag) -> rt;
       gio1[1] -> ICMPError(10.10.10.13, parameterproblem) -> rt;
       cp1[1] -> ICMPError(10.10.10.13, redirect, host) -> rt;

    // Forwarding path for eth2
       rt[3]  -> DropBroadcasts
	        -> cp2 :: PaintTee(3)
		-> gio2 :: IPGWOptions(192.168.100.1)
		-> FixIPSrc(192.168.100.1)
		-> dt2 :: DecIPTTL
		-> fr2 :: IPFragmenter(1500)
		-> [0]arpq2;
       dt2[1] -> ICMPError(192.168.100.1, timeexceeded) -> rt;
       fr2[1] -> ICMPError(192.168.100.1, unreachable, needfrag) -> rt;
       gio2[1] -> ICMPError(192.168.100.1, parameterproblem) -> rt;
       cp2[1] -> ICMPError(192.168.100.1, redirect, host) -> rt;


More information about the click mailing list