调试笔记:
C:\Users\banma-2864>adb shell
BusyBox v1.33.2 (2024-05-31 07:31:37 UTC) built-in shell (ash)
/ #
/ #
/ #
/ # cat /proc/version
cat /proc/version
Linux version 5.4.195 (shuai@ubuntu) (arm-openwrt-linux-gcc (OpenWrt GCC 8.4.0 r0-3999c14) 8.4.0, GNU ld (GNU Binutils) 2.35.1) #6 PREEMPT Mon Dec 16 17:21:27 CST 2024
/ # ping www.baidu.com
ping www.baidu.com
PING www.baidu.com (153.3.238.102): 56 data bytes
64 bytes from 153.3.238.102: seq=0 ttl=52 time=38.674 ms
64 bytes from 153.3.238.102: seq=1 ttl=52 time=47.610 ms
64 bytes from 153.3.238.102: seq=2 ttl=52 time=42.334 ms
64 bytes from 153.3.238.102: seq=3 ttl=52 time=42.761 ms
64 bytes from 153.3.238.102: seq=4 ttl=52 time=46.086 ms
64 bytes from 153.3.238.102: seq=5 ttl=52 time=55.479 ms
64 bytes from 153.3.238.102: seq=6 ttl=52 time=41.175 ms
64 bytes from 153.3.238.102: seq=7 ttl=52 time=34.892 ms
64 bytes from 153.3.238.102: seq=8 ttl=52 time=34.404 ms
64 bytes from 153.3.238.102: seq=9 ttl=52 time=34.831 ms
64 bytes from 153.3.238.102: seq=10 ttl=52 time=33.337 ms
^C
C:\Users\banma-2864>adb shell
BusyBox v1.33.2 (2024-05-31 07:31:37 UTC) built-in shell (ash)
/ # ifconfig
ifconfig
bridge0 Link encap:Ethernet HWaddr 4E:2D:45:FB:48:7A
inet addr:192.168.225.1 Bcast:192.168.225.255 Mask:255.255.255.0
inet6 addr: fe80::4c2d:45ff:fefb:487a/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:934 (934.0 B)
ccinet1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.64.156.179 Mask:255.255.255.0
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1382 (1.3 KiB) TX bytes:1360 (1.3 KiB)
ccinet2 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.1.63.218 Mask:255.255.255.0
UP RUNNING NOARP 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:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ecm0 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:27
inet6 addr: fe80::a8bb:ccff:fedd:ee27/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:184 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6772 (6.6 KiB) TX bytes:4344 (4.2 KiB)
ecm0.2 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:27
inet addr:172.20.2.40 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::a8bb:ccff:fedd:ee27/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1916 (1.8 KiB)
ecm0.3 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:27
inet addr:172.20.3.40 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::a8bb:ccff:fedd:ee27/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2066 (2.0 KiB)
ecm0.4 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:27
inet addr:172.20.4.40 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::a8bb:ccff:fedd:ee27/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1956 (1.9 KiB)
ecm0.5 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:27
inet addr:172.20.5.40 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::a8bb:ccff:fedd:ee27/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2266 (2.2 KiB)
eth0 Link encap:Ethernet HWaddr 96:A2:61:B5:9E:51
inet6 addr: fe80::94a2:61ff:feb5:9e51/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:826 (826.0 B)
Interrupt:26 Base address:0x1800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 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:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/ #
遇到的问题:
1.偶现3网段无法ping通问题排查
1.NAD端抓tcpdump发现是apr丢失
/ # tcpdump -i ecm0.3
tcpdump -i ecm0.3
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ecm0.3, link-type EN10MB (Ethernet), capture size 262144 bytes
12:25:34.901607 IP 172.20.3.36.42808 > 223.5.5.5.domain: 63371+ A? pre.gw.zebred.com. (35)
12:25:35.001524 ARP, Request who-has 172.20.3.36 tell 172.20.3.40, length 28
12:25:35.132674 IP 172.20.3.36.53040 > 223.6.6.6.domain: 2574+ A? ntp.aliyun.com. (32)
12:25:35.143623 IP 172.20.3.36.60902 > 223.6.6.6.domain: 59687+ A? autoapi.amap.com. (34)
12:25:35.325372 IP 172.20.3.36.48964 > 223.6.6.6.domain: 2671+ A? api.ebanma.com. (32)
12:25:36.041601 ARP, Request who-has 172.20.3.36 tell 172.20.3.40, length 28
12:25:36.623509 IP 172.20.3.36.55971 > 223.5.5.5.domain: 9907+ A? cmns-ws.aicc.aliyun.com. (41)
12:25:36.940586 IP 172.20.3.36.34566 > 223.6.6.6.domain: 61201+ A? hu-api-ai-rdam-meb-uat.mos.csvw.com. (53)
12:25:37.234056 ARP, Request who-has 172.20.3.36 tell 172.20.3.40, length 28
12:25:37.504376 IP 172.20.3.36.50806 > 172.20.3.40.domain: 7609+ A? times.aliyun.com. (34)
12:25:37.624881 IP 172.20.3.36.40265 > 223.5.5.5.domain: 31673+ A? lbs.yunos.com. (31)
12:25:37.730380 IP 172.20.3.36.38360 > 172.20.3.40.domain: 1339+ A? api.ebanma.com. (32)
12:25:37.837252 IP 172.20.3.36.58725 > 223.5.5.5.domain: 40909+ A? connect.rom.miui.com. (38)
12:25:37.837466 IP 172.20.3.36.12932 > 223.5.5.5.domain: 19997+ A? connect.rom.miui.com. (38)
12:25:37.841644 IP 172.20.3.36.27117 > 223.5.5.5.domain: 49258+ A? connect.rom.miui.com. (38)
12:25:37.843139 IP 172.20.3.36.44118 > 223.5.5.5.domain: 17777+ A? connect.rom.miui.com. (38)
12:25:37.904474 IP 172.20.3.36.46592 > 223.6.6.6.domain: 63371+ A? pre.gw.zebred.com. (35)
12:25:37.952572 IP 172.20.3.36.64801 > 172.20.3.40.domain: 21269+ A? cdn.hellobanma.com. (36)
12:25:37.996706 IP 172.20.3.36.55794 > 223.5.5.5.domain: 29739+ A? ynuf.alipay.com. (33)
12:25:38.281605 ARP, Request who-has 172.20.3.36 tell 172.20.3.40, length 28
12:25:38.623539 IP 172.20.3.36.55835 > 172.20.3.40.domain: 42369+ A? lbs.yunos.com. (31)
12:25:38.963491 IP 172.20.3.36.41229 > 223.5.5.5.domain: 25468+ A? cdn.hellobanma.com. (36)
12:25:38.994083 IP 172.20.3.36.35153 > 172.20.3.40.domain: 44579+ A? ynuf.alipay.com. (33)
12:25:39.321590 ARP, Request who-has 172.20.3.36 tell 172.20.3.40, length 28
12:25:39.624424 IP 172.20.3.36.58860 > 223.6.6.6.domain: 9907+ A? cmns-ws.aicc.aliyun.com. (41)
12:25:39.974654 IP 172.20.3.36.59715 > 223.6.6.6.domain: 54174+ A? cdn.hellobanma.com. (36)
12:25:40.628206 IP 172.20.3.36.35961 > 223.6.6.6.domain: 31673+ A? lbs.yunos.com. (31)
12:25:40.676091 ARP, Request who-has 172.20.3.36 tell 172.20.3.40, length 28
2.于是查看apr配置表,发现果然是3网段apr没有配置
#查看ip rule规则
/ # ip rule
ip rule
0: from all lookup local
102: from all to 172.20.2.0/24 lookup vlan2_table1
103: from all to 172.20.3.0/24 lookup vlan3_table1
202: from 172.20.2.0/24 lookup vlan2_table2
203: from 172.20.3.0/24 lookup vlan3_table2
32766: from all lookup main
32767: from all lookup default
#查看ip路由
/ # route -n
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.233.0 0.0.0.0 255.255.255.0 U 0 0 0 ccinet2
10.71.159.0 0.0.0.0 255.255.255.0 U 0 0 0 ccinet1
172.20.2.0 0.0.0.0 255.255.255.0 U 0 0 0 ecm0.2
172.20.3.0 0.0.0.0 255.255.255.0 U 0 0 0 ecm0.3
172.20.4.0 0.0.0.0 255.255.255.0 U 0 0 0 ecm0.4
172.20.5.0 0.0.0.0 255.255.255.0 U 0 0 0 ecm0.5
192.168.225.0 0.0.0.0 255.255.255.0 U 0 0 0 bridge0
#查看apr配置(发现问题,3网段apr丢失)
/ # ip neighbor
ip neighbor
172.20.5.36 dev ecm0.5 lladdr aa:bb:cc:dd:ee:23 PERMANENT
172.20.4.36 dev ecm0.4 lladdr aa:bb:cc:dd:ee:23 PERMANENT
172.20.3.36 dev ecm0.3 INCOMPLETE
172.20.2.36 dev ecm0.2 lladdr aa:bb:cc:dd:ee:23 PERMANENT
#新增apr配置(如果失败,先down设置后再up网卡),然后OK了
ip neighbor add 172.20.3.36 lladdr aa:bb:cc:dd:ee:23 dev ecm0.3
### 分析原因:配置静态arp之前,收到172.20.2.36数据包,系统自己做了动态arp探测,生成incomplete表项(ip与mac映射表),导致再用ip neigh add命令失败。
#最终修改脚本顺序,先设置arp再up:
/oemapp/bin/vlanset_nad.sh
#!/bin/sh
device=ecm0
vlan_device=ecm0
ifconfig $device down
ifconfig $device hw ether aa:bb:cc:dd:ee:27
ifconfig $device up
ip link add link $device name $vlan_device.2 type vlan id 2 || true
ip addr add 172.20.2.40/24 dev $vlan_device.2 || true
ip neighbor add 172.20.2.36 lladdr aa:bb:cc:dd:ee:23 dev $vlan_device.2
ip link set dev $vlan_device.2 up
ip link add link $device name $vlan_device.3 type vlan id 3
ip addr add 172.20.3.40/24 dev $vlan_device.3
ip neighbor add 172.20.3.36 lladdr aa:bb:cc:dd:ee:23 dev $vlan_device.3
ip link set dev $vlan_device.3 up
ip link add link $device name $vlan_device.4 type vlan id 4
ip addr add 172.20.4.40/24 dev $vlan_device.4
ip neighbor add 172.20.4.36 lladdr aa:bb:cc:dd:ee:23 dev $vlan_device.4
ip link set dev $vlan_device.4 up
ip link add link $device name $vlan_device.5 type vlan id 5
ip addr add 172.20.5.40/24 dev $vlan_device.5
ip neighbor add 172.20.5.36 lladdr aa:bb:cc:dd:ee:23 dev $vlan_device.5
ip link set dev $vlan_device.5 up