Hello,
I have been reading through the documentation and trying to set up a very
small VPN as a test for a larger rollout that I would like to complete in
the future but cannot get this working. The configuration seems like it
should be relatively simple, so I'm most likely missing something basic but
I just cannot see what I'm doing wrong. At the moment I am trying to get
this working between 2 CentOS servers, but will eventually scale to many
more (and using IPv6). I am setting it up in a "client/server" mode
as my
clients will not be opening firewall rules to allow incoming connections,
they will all connect back to my "server."
Both sides of the tunnel are behind a NAT'd address, the public IP of each
server is what I have added as the "Address" variable in the host
files.
After starting tinc, I am able to see that the tun0 interface comes up and
the 192.168.0.0/16 route is added to both route tables. I added
10.18.73.0/24 to my "client" route table pointing to the tun0
interface as
a route is not being created for that (which to my understanding is my
responsibility as tinc does not take care of that). With the daemon
running attached in debug mode, I see that they two devices see each other
and immediately establish the tunnel, but I am unable to ping any of the
addresses on the remote end of the tunnel.
If I try to ping the remote tun0 interface, I receive the following output:
[root at tinc-server tinc]# ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.>From 192.168.1.2 icmp_seq=1 Destination Net Unknown
>From 192.168.1.2 icmp_seq=2 Destination Net Unknown
Using tcpdump on the remote server, I do not see any packets making it to
my tun0 interface.
However, if I try to ping the eth1 interface of the remote server I do not
get any output on the local server, but do see the following in a tcpdump
on the remote server:
[root at localhost tinc]# tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
22:25:11.660009 IP 192.168.1.1 > 192.168.56.101: ICMP echo request, id
34573, seq 14, length 64
22:25:11.660125 IP 192.168.56.101 > 192.168.1.1: ICMP echo reply, id 34573,
seq 14, length 64
22:25:11.660167 IP 192.168.1.1 > 192.168.56.101: ICMP net 192.168.1.1
unreachable - unknown, length 92
22:25:12.658727 IP 192.168.1.1 > 192.168.56.101: ICMP echo request, id
34573, seq 15, length 64
22:25:12.658907 IP 192.168.56.101 > 192.168.1.1: ICMP echo reply, id 34573,
seq 15, length 64
22:25:12.659493 IP 192.168.1.1 > 192.168.56.101: ICMP net 192.168.1.1
unreachable - unknown, length 92
22:25:13.657558 IP 192.168.1.1 > 192.168.56.101: ICMP echo request, id
34573, seq 16, length 64
22:25:13.657679 IP 192.168.56.101 > 192.168.1.1: ICMP echo reply, id 34573,
seq 16, length 64
Here is some output from the "server" upon starting the daemon:
[root at localhost hosts]# tincd -D -d3
tincd 1.0.19 (Jul 31 2012 18:48:38) starting, debug level 3
/dev/net/tun is a Linux tun/tap device (tun mode)
Executing script tinc-up
Listening on 0.0.0.0 port 655
Listening on :: port 655
Ready
Connection from 2.2.2.2 port 35031
Sending ID to <unknown> (2.2.2.2 port 35031)
Got ID from <unknown> (2.2.2.2 port 35031)
Sending METAKEY to client1 (2.2.2.2 port 35031)
Got METAKEY from client1 (2.2.2.2 port 35031)
Sending CHALLENGE to client1 (2.2.2.2 port 35031)
Got CHALLENGE from client1 (2.2.2.2 port 35031)
Sending CHAL_REPLY to client1 (2.2.2.2 port 35031)
Got CHAL_REPLY from client1 (2.2.2.2 port 35031)
Sending ACK to client1 (2.2.2.2 port 35031)
Got ACK from client1 (2.2.2.2 port 35031)
Connection with client1 (2.2.2.2 port 35031) activated
Sending ADD_SUBNET to client1 (2.2.2.2 port 35031)
Sending ADD_EDGE to everyone (BROADCAST)
Got ADD_SUBNET from client1 (2.2.2.2 port 35031)
Forwarding ADD_SUBNET from client1 (2.2.2.2 port 35031)
Got ADD_SUBNET from client1 (2.2.2.2 port 35031)
Forwarding ADD_SUBNET from client1 (2.2.2.2 port 35031)
Got ADD_EDGE from client1 (2.2.2.2 port 35031)
Forwarding ADD_EDGE from client1 (2.2.2.2 port 35031)
UDP address of client1 set to 2.2.2.2 port 655
Sending ANS_KEY to client1 (2.2.2.2 port 35031)
UDP address of client1 set to 2.2.2.2 port 19446
Sending REQ_KEY to client1 (2.2.2.2 port 35031)
Sending PACKET to client1 (2.2.2.2 port 35031)
Sending PACKET to client1 (2.2.2.2 port 35031)
Got ANS_KEY from client1 (2.2.2.2 port 35031)
Got ANS_KEY from client1 (2.2.2.2 port 35031)
Got PING from client1 (2.2.2.2 port 35031)
Sending PONG to client1 (2.2.2.2 port 35031)
Sending PING to client1 (2.2.2.2 port 35031)
And the same output from the "client":
[root at localhost tinc]# tincd -D -d3
tincd 1.0.19 (Jul 31 2012 18:48:38) starting, debug level 3
/dev/net/tun is a Linux tun/tap device (tun mode)
Executing script tinc-up
Listening on 0.0.0.0 port 655
Listening on :: port 655
Ready
Trying to connect to server1 (1.1.1.1 port 655)
Connected to server1 (1.1.1.1 port 655)
Sending ID to server1 (1.1.1.1 port 655)
Got ID from server1 (1.1.1.1 port 655)
Sending METAKEY to server1 (1.1.1.1 port 655)
Got METAKEY from server1 (1.1.1.1 port 655)
Sending CHALLENGE to server1 (1.1.1.1 port 655)
Got CHALLENGE from server1 (1.1.1.1 port 655)
Sending CHAL_REPLY to server1 (1.1.1.1 port 655)
Got CHAL_REPLY from server1 (1.1.1.1 port 655)
Sending ACK to server1 (1.1.1.1 port 655)
Got ACK from server1 (1.1.1.1 port 655)
Connection with server1 (1.1.1.1 port 655) activated
Sending ADD_SUBNET to server1 (1.1.1.1 port 655)
Sending ADD_SUBNET to server1 (1.1.1.1 port 655)
Sending ADD_EDGE to everyone (BROADCAST)
Got ADD_SUBNET from server1 (1.1.1.1 port 655)
Forwarding ADD_SUBNET from server1 (1.1.1.1 port 655)
Got ADD_EDGE from server1 (1.1.1.1 port 655)
Forwarding ADD_EDGE from server1 (1.1.1.1 port 655)
UDP address of server1 set to 1.1.1.1 port 655
Sending ANS_KEY to server1 (1.1.1.1 port 655)
Got ANS_KEY from server1 (1.1.1.1 port 655)
Got REQ_KEY from server1 (1.1.1.1 port 655)
Sending ANS_KEY to server1 (1.1.1.1 port 655)
Got PACKET from server1 (1.1.1.1 port 655)
Got PACKET from server1 (1.1.1.1 port 655)
Sending PING to server1 (1.1.1.1 port 655)
Got PONG from server1 (1.1.1.1 port 655)
Got PING from server1 (1.1.1.1 port 655)
Sending PONG to server1 (1.1.1.1 port 655)
Got PING from server1 (1.1.1.1 port 655)
Sending PONG to server1 (1.1.1.1 port 655)
So obviously at least some of my traffic is getting through the tunnel, but
it appears that it doesn't know how to get back. Is there something that I
am missing or not understanding about how tinc works?
Below is my setup and relavant configs:
"Server" configs:
tinc.conf (CentOS 6.2):
Name = server1
Device = /dev/net/tun
tinc-up:
ifconfig $INTERFACE 192.168.1.1 netmask 255.255.0.0
ifconfig:
eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:FB:F4
inet addr:10.18.73.23 Bcast:10.18.73.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8c:fbf4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:26352 errors:0 dropped:0 overruns:0 frame:0
TX packets:18080 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10267976 (9.7 MiB) TX bytes:3116783 (2.9 MiB)
tun0 Link encap:UNSPEC HWaddr
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.1.1 P-t-P:192.168.1.1 Mask:255.255.0.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:473 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:1456 (1.4 KiB) TX bytes:39732 (38.8 KiB)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
10.18.73.0 * 255.255.255.0 U 1 0 0 eth0
192.168.0.0 * 255.255.0.0 U 0 0 0 tun0
default 10.18.73.1 0.0.0.0 UG 0 0 0 eth0
"Client" configs (CentOS 6.3):
tinc.conf:
Name = client1
ConnectTo = server1
Device = /dev/net/tun
tinc-up:
ifconfig $INTERFACE 192.168.1.2 netmask 255.255.0.0
ifconfig:
eth0 Link encap:Ethernet HWaddr 08:00:27:D9:9E:5F
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed9:9e5f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11199 errors:0 dropped:0 overruns:0 frame:0
TX packets:7632 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12593716 (12.0 MiB) TX bytes:2086945 (1.9 MiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:7C:40:5D
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe7c:405d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15975 errors:0 dropped:0 overruns:0 frame:0
TX packets:8828 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1517895 (1.4 MiB) TX bytes:880057 (859.4 KiB)
tun0 Link encap:UNSPEC HWaddr
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.1.2 P-t-P:192.168.1.2 Mask:255.255.0.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:916 errors:0 dropped:0 overruns:0 frame:0
TX packets:458 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:89768 (87.6 KiB) TX bytes:38472 (37.5 KiB)
.Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
10.0.2.0 * 255.255.255.0 U 1 0 0 eth0
192.168.56.0 * 255.255.255.0 U 1 0 0 eth1
192.168.0.0 * 255.255.0.0 U 0 0 0 tun0
default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
Common files on both hosts:
hosts/server1:
Address = 1.1.1.1
Port = 655
Subnet = 10.18.73.23/32
-----BEGIN RSA PUBLIC KEY-----
blahblahblah
-----END RSA PUBLIC KEY-----
hosts/client1:
Address = 2.2.2.2
Port = 655
Subnet = 192.168.56.101/32
Subnet = 10.0.2.15/32
-----BEGIN RSA PUBLIC KEY-----
blahblah
-----END RSA PUBLIC KEY-----
Thanks in advance for your help!
-Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.tinc-vpn.org/pipermail/tinc/attachments/20120914/190a76b7/attachment-0001.html>