openwrt brctl的操作方法

openwrt 网络的默认配置如下:

root@OpenWrt:/etc/init.d# ifconfig
br-lan Link encap:Ethernet HWaddr D0:39:72:18:7C:FF
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fdea:e40b:d8de::1/60 Scope:Global
inet6 addr: fe80::d239:72ff:fe18:7cff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2482 errors:0 dropped:0 overruns:0 frame:0
TX packets:1591 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:235069 (229.5 KiB) TX bytes:134302 (131.1 KiB)

eth0 Link encap:Ethernet HWaddr D0:39:72:18:7C:FF
UP BROADCAST 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:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:45

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:864 errors:0 dropped:0 overruns:0 frame:0
TX packets:864 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:58752 (57.3 KiB) TX bytes:58752 (57.3 KiB)

dhcp是通过br-lan结点分配的,这个结点是个桥接的虚拟节点:

root@OpenWrt:/# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.d03972187cff no eth0

把usb0加入桥接:

root@OpenWrt:~# brctl addif br-lan usb0

root@OpenWrt:~# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.d03972187cff no eth0

启动usb0:

root@OpenWrt:~# ifconfig usb0 up
[ 6523.200137] br-lan: port 2(usb0) entered blocking state
[ 6523.205863] br-lan: port 2(usb0) entered forwarding state

addbr bridge的名称 #添加bridge;

delbr bridge的名称 #删除bridge;

addif bridge的名称 device的名称 #添加接口到bridge;

delif bridge的名称 device的名称#从bridge中删除接口

使用brctl命令创建网桥br1
# brctl addbr br1

删除网桥br1
# brctl delbr br1

将eth0端口加入网桥br1 
# brctl addif br1 eth0

删除eth0端口加入网桥br1 
# brctl delif br1 eth0

查询网桥信息
# brctl show
# brctl show br1