eth0 192.168.8.178/22, tun0 10.0.0.2/24 장치를 설치해야 합니다.
10.0.0.1(다른 호스트)에서 192.168.8.178/22에 액세스할 수 있기를 원합니다.
$ ip -4 addr show eth0
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.8.178/22 scope global eth0
valid_lft forever preferred_lft forever
$ ip -4 addr show tun0
33: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
inet 10.0.0.2/24 scope global tun0
valid_lft forever preferred_lft forever
tun0에서 규칙을 추가하고 192.168.8.0/22를 eth0 gw 192.168.8.1로 라우팅하면 문제가 해결될 것이라고 생각했지만 작동하지 않습니다.
$ ip ro
default via 192.168.8.1 dev eth0
10.0.0.0/24 dev tun0 proto kernel scope link src 10.0.0.2
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.8.0/22 dev eth0 proto kernel scope link src 192.168.8.178
$ ip ru show tab tm
32765: from 10.0.0.0/22 iif tun0 lookup tm
$ ip ro show tab tm
192.168.8.0/22 via 192.168.8.1 dev eth0
tun0에서 icmp를 캡처할 수 있습니다.
$ tcpdump -nni tun0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
17:54:44.773931 IP 10.0.0.1 > 192.168.8.110: ICMP echo request, id 14222, seq 416, length 64
17:54:45.783634 IP 10.0.0.1 > 192.168.8.110: ICMP echo request, id 14222, seq 417, length 64
하지만 eth0에는 아무것도 없습니다.
$ tcpdump -nni eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
어떻게 해야 하나요?
tun0은 Tinc용입니다. 이 노드를 통해 192.168.8.0/22를 노출하고 다른 노드에서 192.168.8.178에 액세스할 수 있기를 원합니다.
$ tcpdump -nni tun0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
17:57:12.453450 IP 10.0.0.1 > 192.168.8.178: ICMP echo request, id 14223, seq 5, length 64
17:57:12.453491 IP 192.168.8.178 > 10.0.0.1: ICMP echo reply, id 14223, seq 5, length 64
17:57:13.454498 IP 10.0.0.1 > 192.168.8.178: ICMP echo request, id 14223, seq 6, length 64
17:57:13.454537 IP 192.168.8.178 > 10.0.0.1: ICMP echo reply, id 14223, seq 6, length 64
편집하다
실제 질문은 "tinc를 통해 로컬 네트워크를 공유하는 방법"입니다.
내 생각에는 ip_forward가 활성화되어 있으면 제대로 작동할 것 같습니다. 그러나 그것은 진실이 아니다.
또 다른 설정은
ㅏ:
ip link set $INTERFACE up
ip addr add 192.168.100.1/16 dev $INTERFACE
Subnet=192.168.100.1/32
두번째:
ip link set $INTERFACE up
ip addr add 192.168.1.105/16 dev $INTERFACE
Subnet = 192.168.1.0/24
노드 A에서 192.168.1.105에는 ping을 보낼 수 있지만 서브넷에서 활성화된 192.168.1.120에는 ping을 보낼 수 없습니다. tun0은 ping을 수신하지만 eth0은 수신하지 않습니다.