这几天做实验,想用arm tiny6410板子做个mesh网络节点。该板子本身自带一个lan网卡,我自己配了一个tp-link的usb无线网卡。其中wlan网卡工作在adhoc模式下,作为mesh骨干网的接入点,跑aodv协议;lan网卡就在普通的局域网模式下,可连接任何设备。然后再将两块网卡内部连通。内部连通可以使用两种方法(我所知道的):1,如果两块网卡ip地址在不通网段,需要用NAT方式连通(此处不谈);2,如果两块网卡ip地址在同一网段,可以用桥接方式将其连通。我分别做了实验,将两块网卡的ip地址配成两个网段,我用网线将笔记本和板子的lan口连好,并且也保证了笔记本的lan口和板子的lan口在同一网段,即笔记本和板子的lan网卡在同一网段,和板子的wlan网卡不在同一网段,此时笔记本可以ping通板子的lan口,ping不通板子的wlan口,ok,这个好理解,说明板子的两块网卡还没有用NAT方式连通;接着,我把板子两块网卡配成同一网段,此时笔记本和板子的两张网卡都在同一网段,结果板子的两块网卡均可以用笔记本ping通,此时,我错误的以为当板子的两块网卡在同一网段下,linux系统会自动将两块网卡桥接起来。
今天,突然查看了下笔记本的arp表,发现板子的两块网卡的ip地址(192.168.1.20和192.168.1.230)对应的是同一块网卡,即板子的lan口网卡(MAC地址: 08-90-00-a0-90-90):
这时,我才明白了,根本不是linux系统自动将板子的两块网卡桥接起来,而是配的两个ip地址对应了同一块网卡,即lan口网卡,所以才ping通。
哎,做事情还是需要认真的,不能想当然,要动手验证,不然又要犯大错了。接下来,我手动的将两块网卡桥接起来,实验继续........