Configuring gt64 elements...

Juan Luis Baptiste M. jbaptiste at merlinux.org
Wed Oct 24 12:09:14 EDT 2001


Hi,

After successfully installed click with the help of Eddie, we have started doing
tests with gt64 (IPv6/IPv4 translator elements), but click is crashing (seg.
fault). Our setup are three machines:

gt64: the translator, with ipv4 address 172.25.79.156 and ipv6 address
3ffe:1ce1:2:0:200::1

ipv4: ipv4 node, with 172.25.79.152 address

ipv6: ipv6 node with 3ffe:1ce1:2:0:200::2 address

We followed all the instructions to create the routes to the translator in both
machines, but when from ipv4 we ping 1.0.0.1 we get this error in gt64:

[root at gt64 userlevel]# ./click ../conf/gt642.click
after-pt460:  104 | 60000000 00403a81 00000000 00000000 00000000 ac194f98
00000000 00000000 00000000 01000001 8000347f a5040000 ade3d13b 332c0c00
08090a0b
0c0d0e0f 10111213 14151617 18191a1b 1c1d1e1f 20212223 24252627 28292a2b
2c2d2e2f
30313233 34353637
Segmentation fault (core dumped)

I was thinking that the error could be with the patterns in the classifier
element, but not sure. I don't know if this patters are standar or I have to
change them according to the addresses I'm using. Also, I don't understand how
to calculate this offsets and values for the patterns.


>From ipv6 machine appears:

[root at ipv6 /root]# ping6 -I eth0 ::172.25.79.152
connect: Cannot assign requested address

It seems that it is not possible to ping ipv4mapped-ipv6 addresses in linux.

Can someone take a look at our config file to see if something is wrong or
missing?

Here it is our config file:

//gt642.click
//router and translator: gt64
//00:50:8B:65:2C:23, 172.25.79.156, , fe80::250:8bff:fe65:2c23
// 6-only node: ipv6 3ffe:1ce1:2:0:200::2 (mapped 4 address: 1.0.0.1)
// 4-only node: ipv4: 172.25.79.152 (test for ping, telnet, finger,http)
// ipv4 can ping 1.0.0.1
// ipv6 can ping6 ::172.25.79.152

//ipv4: route delete 1.0.0.1
//ipv4: route add 1.0.0.1 gw 172.25.79.156

//gt64: in click/userlevel directory:
//gt64: ./click ../conf/gt642.click

//ipv6: route -A inet6 delete ::172.25.79.152
//ipv6: route -A inet6 add ::172.25.79.152 gw 3ffe:1ce1:2:0:200::1

arp::ARPQuerier(172.25.79.156, 00:50:8B:65:2C:23);
arr::ARPResponder(172.25.79.156 00:50:8B:65:2C:23);

nda :: IP6NDAdvertiser(
	3ffe:1ce1:2:0:200::1/128 00:50:8B:65:2C:23,
	fe80::250:8bff:fe65:2c23/128 00:50:8B:65:2C:23);

nds :: IP6NDSolicitor(
	fe80::250:8bff:fe65:2c23 , 00:50:8B:65:2C:23);

c :: Classifier(
	12/86dd 20/3aff 54/87,
	12/86dd 20/3aff 54/88,
	12/86dd,
	12/0806 20/0001,
	12/0806 20/0002,
	12/0800 30/01000001,
	-);

rt :: StaticIPLookup(

	172.25.79.156/32 0,
	172.25.79.255/32 0,
	172.25.79.0/32 0,
	172.25.79.152/32 172.25.79.152 1,
	1.0.0.1/32 1.0.0.1 2,
	0.0.0.0/0 172.25.0.1 3);

rt6 :: LookupIP6Route(
	3ffe:1ce1:2::2/128 ::0 0,
	3ffe:1ce1:2:0:200::1/128 ::0 0,
	3ffe:1ce1:2:0:200::2/128 3ffe:1ce1:2:0:200::2 1,
	3ffe:1ce1:2::/80 ::0 2,
	3ffe:1ce1:2:0:200::/80 ::0 2,
	::0/96 ::0 3,
  	::0/0 ::c0a8:1 4);

//at :: AddressTranslator(
//	1,
//	0,
//	3ffe:1ce1:2:0:200::2 ::1.0.0.1,
//	1,
//	1,
//	0,
//	::ffff:172.25.79.156 1300 1310);

//at :: AddressTranslator(
//	1,
//	0,
//	3ffe:1ce1:2:0:200::2 ::1.0.0.1,
//	0);

at :: AddressTranslator(
	0,
	1,
	0,
	0,
	::1.0.0.1);


pt64 :: ProtocolTranslator64();
pt46 :: ProtocolTranslator46();

FromDevice(eth0, 1)
  	-> c;

c[0] 	-> nda
	//-> Print(nda, 200)
	-> Queue(1024)
	-> ToDevice(eth0);
c[1] 	-> [1]nds;
c[2]	//-> Print(before-Strip, 200)
	-> Strip(14)
	-> CheckIP6Header(3ffe:1ce1:2:0:200::ffff 3ffe:1ce1:2::ffff)
	-> GetIP6Address(24)
	//-> Print(before-rout6, 200)
	-> rt6;

c[3] 	//-> Print(arr, 200)
	-> arr
	-> Queue(1024)
	-> ToDevice(eth0) ;

c[4] 	//-> Print(arp-reply, 200)
	->[1]arp;

c[5] 	//-> Print(c5-normal-ip-pkt, 200)
	-> Strip(14)
	-> CheckIPHeader(18.26.4.255)
	-> GetIPAddress(16)
	-> rt;

c[6]	//-> Print(c6-normal-ip-pkt, 200)
	->Discard;

rt[0]	->Print(rt0, 200) ->Discard;
rt[1]	//->Print(rt1, 200)
	-> DropBroadcasts
      	-> dt1 :: DecIPTTL
      	-> fr1 :: IPFragmenter(300)
	//->Discard;
	//-> Print(before-arp0, 200)
	->[0]arp;
rt[2]	//->Print(rt2, 200)
	->[0]pt46;
rt[3]	->Print(rt3, 200) ->Discard;

rt6[0] 	-> Print(route60-ok, 200) -> Discard;
rt6[1] 	//-> Print(route61-ok, 200)
	-> dh1:: DecIP6HLIM-> [0]nds;
rt6[2] 	-> dh2:: DecIP6HLIM
	-> Print(route62-ok, 200)  -> Discard;
rt6[3] 	//-> Print(route63-ok, 200)
	-> [0]at;
rt6[4] 	-> Print(route64-ok, 200) -> Discard;

dh1[1]	-> ICMP6Error(3ffe:1ce1:2:0:200::1, 3, 0)
	-> Discard;
dh2[1]	-> ICMP6Error(3ffe:1ce1:2:0:200::1, 3, 0)
	-> Discard;
at[0]  	//-> Print(after-at0, 200)
	-> [0]pt64;
at[1]  	-> Print(after-at1, 200)
	-> CheckIP6Header()
	-> GetIP6Address(24)
	-> [0]rt6;

pt64[0] //-> Print(after-pt640, 200)
	-> CheckIPHeader(172.25.79.255 1.255.255.255)
	-> GetIPAddress(16)
	-> [0]rt;
pt46[0]	-> Print(after-pt460, 200)
	-> [1]at;

arp[0] 	-> Print(arp0, 200)
	-> ToDevice(eth0);

nds[0]  //-> Print(nds, 200)
	-> ToDevice(eth0);


Thanks!
--
Juan Luis Baptiste M.
email: jbaptiste at merlinux.org
http://www.merlinux.org


------------------------------------------------------
Todas las noticias de Linux y el mundo Open Source las
encuentras en Merlinux - http://www.merlinux.org



More information about the click mailing list