我必须设备,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 后,这应该可以正常工作。但事实并非如此。
另一个设置是
A:
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 节点,我可以 ping 通 192.168.1.105,但无法 ping 通子网中处于活动状态的 192.168.1.120。 tun0 收到 ping,但 eth0 未收到 ping。