1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| # console 1
[root@localhost test]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:89:17:39 brd ff:ff:ff:ff:ff:ff inet 172.16.117.133/24 brd 172.16.117.255 scope global dynamic ens33 valid_lft 1272sec preferred_lft 1272sec inet6 fe80::20c:29ff:fe89:1739/64 scope link valid_lft forever preferred_lft forever 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:89:17:43 brd ff:ff:ff:ff:ff:ff inet 192.168.0.10/24 brd 192.168.0.255 scope global ens37 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe89:1743/64 scope link valid_lft forever preferred_lft forever [root@localhost test]# python3.7 tun.py layer3.ip6.IP6 v_fc_flow (I): 0x60000000 = 1610612736 = 0b1100000000000000000000000000000 dlen (H): 0x8 = 8 = 0b1000 nxt (B): 0x3A = 58 = 0b111010 hlim (B): 0xFF = 255 = 0b11111111 src : b'\xfe\x80\x00\x00\x00\x00\x00\x00\xb0\xe4\xc2\x9f\xf4\x055v' = fe80::b0e4:c29f:f405:3576 dst : b'\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02' = ff02::2 opts : [] layer3.icmp6.ICMP6 type (B): 0x85 = 133 = 0b10000101 code (B): 0x0 = 0 = 0b0 sum (H): 0xE036 = 57398 = 0b1110000000110110 bodybytes : b'\x00\x00\x00\x00'
layer3.ip6.IP6 v_fc_flow (I): 0x60000000 = 1610612736 = 0b1100000000000000000000000000000 dlen (H): 0x8 = 8 = 0b1000 nxt (B): 0x3A = 58 = 0b111010 hlim (B): 0xFF = 255 = 0b11111111 src : b'\xfe\x80\x00\x00\x00\x00\x00\x00\xb0\xe4\xc2\x9f\xf4\x055v' = fe80::b0e4:c29f:f405:3576 dst : b'\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02' = ff02::2 opts : [] layer3.icmp6.ICMP6 type (B): 0x85 = 133 = 0b10000101 code (B): 0x0 = 0 = 0b0 sum (H): 0xE036 = 57398 = 0b1110000000110110 bodybytes : b'\x00\x00\x00\x00'
layer3.ip6.IP6 v_fc_flow (I): 0x60000000 = 1610612736 = 0b1100000000000000000000000000000 dlen (H): 0x8 = 8 = 0b1000 nxt (B): 0x3A = 58 = 0b111010 hlim (B): 0xFF = 255 = 0b11111111 src : b'\xfe\x80\x00\x00\x00\x00\x00\x00\xb0\xe4\xc2\x9f\xf4\x055v' = fe80::b0e4:c29f:f405:3576 dst : b'\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02' = ff02::2 opts : [] layer3.icmp6.ICMP6 type (B): 0x85 = 133 = 0b10000101 code (B): 0x0 = 0 = 0b0 sum (H): 0xE036 = 57398 = 0b1110000000110110 bodybytes : b'\x00\x00\x00\x00'
# switch console 2 [root@localhost test]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:89:17:39 brd ff:ff:ff:ff:ff:ff inet 172.16.117.133/24 brd 172.16.117.255 scope global dynamic ens33 valid_lft 1130sec preferred_lft 1130sec inet6 fe80::20c:29ff:fe89:1739/64 scope link valid_lft forever preferred_lft forever 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:89:17:43 brd ff:ff:ff:ff:ff:ff inet 192.168.0.10/24 brd 192.168.0.255 scope global ens37 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe89:1743/64 scope link valid_lft forever preferred_lft forever 29: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500 link/none inet 10.0.0.1/24 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::b0e4:c29f:f405:3576/64 scope link flags 800 valid_lft forever preferred_lft forever
# 在此可以看到,已经添加了tun0设备,并且状态设置为UP以及配置了IP地址 # 此时线程0是正在每隔1s发送一个ICMP数据包的,那我们抓包来看看 [root@localhost test]# tcpdump -n -i tun0 -p 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 21:39:42.884724 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 336, length 20 21:39:43.888298 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 337, length 20 21:39:44.890558 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 338, length 20 21:39:45.894039 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 339, length 20 21:39:46.897343 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 340, length 20 ^C 5 packets captured 5 packets received by filter 0 packets dropped by kernel
# 为什么收不到reply包?接着往下看
[root@localhost test]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.117.2 0.0.0.0 UG 0 0 0 ens33 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 ....
[root@localhost test]# tcpdump -n -i ens33 -p icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 21:40:43.070594 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 396, length 20 21:40:44.074246 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 397, length 20 21:40:45.077836 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 398, length 20 21:40:46.081776 IP 10.0.0.1 > 114.114.114.114: ICMP echo request, id 8940, seq 399, length 20 ^C 4 packets captured 4 packets received by filter 0 packets dropped by kernel
|