sudo gvim /etc/network/interfaces
auto lo iface lo inet loopback auto enp0s3 auto br0 iface br0 inet dhcp bridge_ports enp0s3 bridge_stp on bridge_fd 0
bridge_maxwait 0
由于参照网上关于网卡桥接的配置,几乎所有的资料都说需要在 /etc/network/interfaces中br0的配置中有一行: bridge_stp off ,但是每次修改配置文件,重启网卡后,网络就会不通,有时还能通几秒,可以执行几条命令,但是随后又会断网
最后,查了不知多少资料,偶然在http://blog.csdn.net/cybertan/article/details/8160102中看到一个关于STP的说明:
建立bridge后的状态是让网络接口eth0进入混杂模式(promiscuous mode,接收网络中所有数据包),网桥br0进入转发状态(forwarding state),
而且br0和eth0有相同的MAC地址,一般也会得到和eth0相同的IP。“brctl stp br0 on”是打开br0的STP协议,STP是生成树协议(Spanning Tree Protocol),
它主要是为了避免在建有bridge的以太网LAN中出现桥回路(bridge loop)。如果不打开STP,则可能出现回路从而导致建有bridge的主机网络不畅通。
所以,瞬间明白为什么网络不通了:在服务器内部成环了!于是果断将:bridge_stp off 一行注释掉(后来发现应该改成:bridge_stp no),再重启网卡,瞬间网络就通了,但是我后面又在几台机器上测试了,貌似还是不行,重启系统后,桥接就没问题了。不过,后来又发现:貌似bridge_stp on/no,都对桥接影响不大,反正就是需要重启系统。被这个问题折腾了两三天,故在此备忘,也希望能帮助到遇到同样问题的同学。
http://smilejay.com/2012/08/kvm-bridge-networking/
查看tun模块是否加载,如下:
# lsmod | grep tun
tun 12197 2
如果tun模块没有加载,则运行“modprobe tun”命令来加载即可;当然,如果已经将tun编译到内核(可查看内核config文件(/boot/config-5.3.0-28-generic)中是否有“CONFIG_TUN=y”选项),则不需要加载了;
而如果内核完全没有配置TUN模块,则需要重新编译内核才行了。
原文:https://www.cnblogs.com/sinferwu/p/12680707.html