Skip to contentSkip to conversation

How to identify 6to4 and 6in4 tunnels

DISCUSSION zhuyj 2 participants 6 messages Jan 27, 2014 – Jan 28, 2014

Subsystems (2)
lore
Share & tools
lore

zhuyj

author
#0 lore raw

Hi, Maintainers

In our scene, we will create the 6in4/6to4 tunnel firstly and need to check the tunnel type, secondly, we will configure the ip address on it. So, Could we have any way to get the actual tunnel for 6in4 and 6to4 from current linux version?

Both 6in4 and 6to4 have the same protocol “IPPROTO_IPV6” in Linux kernel. The only difference is the ip address on the tunnel. Can we distinguish them in Linux kernel?

Best Regards

Zhu Yanjun

#1 lore raw
Quoted 9 lines · zhuyj

Hi, Maintainers

In our scene, we will create the 6in4/6to4 tunnel firstly and need to check the tunnel type, secondly, we will configure the ip address on it. So, Could we have any way to get the actual tunnel for 6in4 and 6to4 from current linux version?

Both 6in4 and 6to4 have the same protocol “IPPROTO_IPV6” in Linux kernel. The only difference is the ip address on the tunnel. Can we distinguish them in Linux kernel?

Just check the prefix, like it is done in check_6rd().

Regards,
Nicolas

author
#2 lore raw
Quoted 7 lines · Nicolas Dichtel
Quoted 6 lines · zhuyj

Hi, Maintainers

In our scene, we will create the 6in4/6to4 tunnel firstly and need to check the tunnel type, secondly, we will configure the ip address on it. So, Could we have any way to get the actual tunnel for 6in4 and 6to4 from current linux version?

Quoted 9 lines
Quoted 3 lines

Both 6in4 and 6to4 have the same protocol “IPPROTO_IPV6” in Linux kernel. The only difference is the ip address on the tunnel. Can we distinguish them in Linux kernel?

Just check the prefix, like it is done in check_6rd().

Regards,
Nicolas

Hi, Nicolas

Thanks for your reply. Maybe I can configure 6to4 tunnel by the following commands:

ip tunnel add tun6to4 mode sit remote any local 1.202.252.122 ttl 64 ip link set dev tun6to4 up
ip -6 addr add 2002:01ca:fc7a::0012:0225:2122/128 dev tun6to4 ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

But the kernel can not identify the tunnel is 6to4 tunnel or 6in4 tunnel immediately. After the packets travel through this tunnel, the kernel can identify the type of the tunnel by check_6rd.

Is it right?

Best Regards!
Zhu Yanjun

author
#3 lore raw
Quoted 8 lines · zhuyj
Quoted 7 lines · Nicolas Dichtel
Quoted 6 lines · zhuyj

Hi, Maintainers

In our scene, we will create the 6in4/6to4 tunnel firstly and need to check the tunnel type, secondly, we will configure the ip address on it. So, Could we have any way to get the actual tunnel for 6in4 and 6to4 from current linux version?

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines

Both 6in4 and 6to4 have the same protocol “IPPROTO_IPV6” in Linux kernel. The only difference is the ip address on the tunnel. Can we distinguish them in Linux kernel?

Just check the prefix, like it is done in check_6rd().

Regards,
Nicolas

Hi, Nicolas
Thanks for your reply. Maybe I can configure 6to4 tunnel by the following commands:

ip tunnel add tun6to4 mode sit remote any local 1.202.252.122 ttl 64 ip link set dev tun6to4 up
ip -6 addr add 2002:01ca:fc7a::0012:0225:2122/128 dev tun6to4 ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

But the kernel can not identify the tunnel is 6to4 tunnel or 6in4 tunnel immediately. After the packets travel through this tunnel, the kernel can identify the type of the tunnel by check_6rd.

Is it right?

Best Regards!
Zhu Yanjun

author
#4 lore raw
Quoted 25 lines · zhuyj
Quoted 8 lines · zhuyj
Quoted 7 lines · Nicolas Dichtel
Quoted 6 lines · zhuyj

Hi, Maintainers

In our scene, we will create the 6in4/6to4 tunnel firstly and need to check the tunnel type, secondly, we will configure the ip address on it. So, Could we have any way to get the actual tunnel for 6in4 and 6to4 from current linux version?

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines

Both 6in4 and 6to4 have the same protocol “IPPROTO_IPV6” in Linux kernel. The only difference is the ip address on the tunnel. Can we distinguish them in Linux kernel?

Just check the prefix, like it is done in check_6rd().

Regards,
Nicolas

Hi, Nicolas
Thanks for your reply. Maybe I can configure 6to4 tunnel by the following commands:

ip tunnel add tun6to4 mode sit remote any local 1.202.252.122 ttl 64 ip link set dev tun6to4 up
ip -6 addr add 2002:01ca:fc7a::0012:0225:2122/128 dev tun6to4 ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

Quoted 8 lines

But the kernel can not identify the tunnel is 6to4 tunnel or 6in4 tunnel immediately. After the packets travel through this tunnel, the kernel can identify the type of the tunnel by check_6rd.

Is it right?

Best Regards!
Zhu Yanjun

Hi, David

I want to identify sit interface 6to4 or 6in4 with the following parameters.

include/uapi/linux/if_tunnel.h
...

struct ip_tunnel_parm {
        char                    name[IFNAMSIZ];
        int                     link;
        __be16                  i_flags;             <---------I want 
to use this variable to identify the type of sit interface. Can I?
        __be16                  o_flags;
        __be32                  i_key;
        __be32                  o_key;
        struct iphdr            iph;

};
...

Please comment on this ? Thanks a lot.

Best Regards!
Zhu Yanjun

#5 lore raw
In reply to zhuyj
Quoted 26 lines · zhuyj
Quoted 9 lines · zhuyj
Quoted 8 lines · Nicolas Dichtel
Quoted 7 lines · zhuyj

Hi, Maintainers

In our scene, we will create the 6in4/6to4 tunnel firstly and need to check the tunnel type, secondly, we will configure the ip address on it. So, Could we have
any way to get the actual tunnel for 6in4 and 6to4 from current linux version?

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines

Both 6in4 and 6to4 have the same protocol “IPPROTO_IPV6” in Linux kernel. The only difference is the ip address on the tunnel. Can we distinguish them in Linux kernel?

Just check the prefix, like it is done in check_6rd().

Regards,
Nicolas

Hi, Nicolas
Thanks for your reply. Maybe I can configure 6to4 tunnel by the following commands:

ip tunnel add tun6to4 mode sit remote any local 1.202.252.122 ttl 64 ip link set dev tun6to4 up
ip -6 addr add 2002:01ca:fc7a::0012:0225:2122/128 dev tun6to4 ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

Quoted 5 lines

But the kernel can not identify the tunnel is 6to4 tunnel or 6in4 tunnel immediately. After the packets travel through this tunnel, the kernel can identify the type of the tunnel by check_6rd.

Is it right?

As soon as you have added the ipv6 addresses, you know that this tunnel is a 6to4 tunnel.
But what problem are you trying to solve?

Regards,
Nicolas