ip link 配置网桥接口
新建网桥接口:
root@phycore-am335x-1:~# ip link add name br0 type bridge
[ 26.747911] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
网卡eth0、eth1加入网桥连接
root@phycore-am335x-1:~# ip link set eth0 master br0
[ 61.414369] br0: port 1(eth0) entered blocking state
[ 61.419864] br0: port 1(eth0) entered disabled state
[ 61.449214] device eth0 entered promiscuous mode
[ 61.454233] audit: type=1700 audit(1521473806.430:2): dev=eth0 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
[ 61.489977] audit: type=1300 audit(1521473806.430:2): arch=40000028 syscall=296 per=800000 success=yes exit=40 a0=3 a1=becc26cc a2=0 a3=0 items=0 ppid=213 pid=241 auid=4294967295 uid=0 g)
[ 61.543910] audit: type=1327 audit(1521473806.430:2): proctitle=6970006C696E6B007365740065746830006D617374657200627230
root@phycore-am335x-1:~# ip link set eth1 master br0
[ 67.864523] br0: port 2(eth1) entered blocking state
[ 67.869922] br0: port 2(eth1) entered disabled state
[ 67.875232] net eth1: promiscuity not disabled as the other interface is still in promiscuity mode
[ 67.905360] device eth1 entered promiscuous mode
[ 67.910516] audit: type=1700 audit(1521473812.880:3): dev=eth1 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
[ 67.947374] audit: type=1300 audit(1521473812.880:3): arch=40000028 syscall=296 per=800000 success=yes exit=40 a0=3 a1=bebca6cc a2=0 a3=0 items=0 ppid=213 pid=242 auid=4294967295 uid=0 g)
[ 67.997811] audit: type=1327 audit(1521473812.880:3): proctitle=6970006C696E6B007365740065746831006D617374657200627230
root@phycore-am335x-1:~# bridge link
3: eth0 state UP : mtu 1500 master br0 state disabled priority 32 cost 19
4: eth1 state UP : mtu 1500 master br0 state disabled priority 32 cost 19
网桥接口使能:
root@phycore-am335x-1:~# ip link set br0 up
[ 108.673940] br0: port 2(eth1) entered blocking state
[ 108.679355] br0: port 2(eth1) entered forwarding state
[ 108.685040] br0: port 1(eth0) entered blocking state
[ 108.690358] br0: port 1(eth0) entered forwarding state
查看网口信息,此时br0网桥接口已经连接
root@phycore-am335x-1:~# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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: can0: mtu 16 qdisc pfifo_fast state UNKNOWN group default qlen 10
link/can
3: eth0: mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether 90:70:65:6d:b4:19 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.11/24 brd 192.168.3.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.115/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::9270:65ff:fe6d:b419/64 scope link
valid_lft forever preferred_lft forever
4: eth1: mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether 90:70:65:6d:b4:1b brd ff:ff:ff:ff:ff:ff
inet 192.168.4.11/24 brd 192.168.4.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::9270:65ff:fe6d:b41b/64 scope link
valid_lft forever preferred_lft forever
5: sit0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1
link/sit 0.0.0.0 brd 0.0.0.0
6: br0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 90:70:65:6d:b4:19 brd ff:ff:ff:ff:ff:ff
inet6 fe80::9270:65ff:fe6d:b419/64 scope link
valid_lft forever preferred_lft forever
如果需要对网桥接口设置ip地址,使用以下命令设置
root@phycore-am335x-1:~# ip addr add dev br0 192.168.5.11/24
systemd服务配置网桥接口
使用上面ip link方式配置网桥接口,开发板重新开机后,相应的网桥配置都会没有了。如果需要网桥接口开机自动配置,需要在systemd-networkd.service中配置。
新建网桥接口:
在/etc/systemd/network目录下新增配置文件br0.netdev, 内容如下
[NetDev]
Name=br0
Kind=bridge
网卡eth0, eth1加入网桥连接:
修改/lib/systemd/network目录下eth0 和eth1的配置文件10-eth0.network、10-eth1.network,在[Network]的配置下增加Bridge配置
[Network]
Bridge=br0
网桥接口连接设置:
在/lib/systemd/network目录下新建网桥接口配置文件20-br0.network, 内容如下:
[match]
Name=br0
[Network]
DHCP=ipv4
经过以上设置后,重启systemd-networkd 服务即可。
root@phycore-am335x-1:~# systemctl restart systemd-networkd
使用这种方法,重新开机上电后,网桥接口配置便会自动连接。