web-dev-qa-db-ja.com

仮想tun0デバイスからルーティングの問題をデバッグするにはどうすればよいですか?

Tun0デバイスを作成し、172.16.1.0/24サブネット宛てのパケットをこのデバイスから読み取ることができるようにルートを設定するプログラム(私が作成)があります。私は今、反対方向に進んで、によって受信できるtunデバイスにパケットを書き込もうとしています。

私の最初の努力は、送信元と宛先のアドレスとポートを変更するだけでうまくいきました。私は以下を実行することができます:

nc -u -s MY_IP -p 4001 172.16.1.3 4000

そして私の入力はエコーされます。

実際に最初から出力パケットを生成するという私の2番目の取り組みは、現在失敗しています。

走れる tcpdump -i tun0そして私が書いたパケットを見てください:

11:30:14.433489 IP (tos 0x0, ttl 32, id 0, offset 0, flags [none], proto UDP (17), length 56) 172.16.1.2.54167 > Ubuntu-dbacher.local.4011: [udp sum ok] UDP, length 28

しかし、私のリスナー(nc -l -u -s MY_IP -p 4011)何も表示されません。

Tun0デバイスがパケットをルーティングするのを妨げている何かが間違っていると思われますが、パケットがドロップされている場所を可視化する方法がわかりません。

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.16.1.1  P-t-P:172.16.1.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.0      172.16.1.1      255.255.255.0   UG    0      0        0 tun0
10.10.48.0      0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         10.10.48.1      0.0.0.0         UG    0      0        0 eth0

$ cat /proc/sys/net/ipv4/ip_forward
1

Tunパケットがドロップされている場所をデバッグするにはどうすればよいですか?

(ところで、すべてのパケットはUDPです。)

2
Dave Bacher

ただの予感-Linuxはパケットルーティングを許可していますか?

run cat/proc/sys/net/ipv4/ip_forward-0の場合は1が表示されるはずです。run:

echo 1 > /proc/sys/net/ipv4/ip_forward

また、iptablesも確認してください。最初は、おそらくFORWARDチェーンのACCEPTが必要です。

iptables -P FORWARD ACCEPT
iptables -F FORWARD

ルーティング/ファイアウォールのトラブルシューティングを行うとき、私はほとんどの場合[あなたが言及した] tcpdumpを使用します。

5
pQd

多分これは役立ちます:

ip route get 198.51.100.1

または:

ip route get to 198.51.100.1 from 192.168.0.2 iif eth0

このソース: http://www.microhowto.info/troubleshooting/troubleshooting_the_routing_table.html

1
guettli