Networking网络配置和Bridge配置

操作系统

Ubuntu 16.04

NetworkManager

Ubuntu16.04的网络配置由NetworkManager托管,有可视化界面方便用户操作,如下图。

NetworkManager.png

Networking

除了NetworkManager配置网络,还有一种networking也可以配置,但是会和NetworkManager打架,所以首先禁用NetworkManager。

配置Networking流程大致是:

首先禁用Network Manager;
然后配置文件,如/etc/network/interfaces;
最后重启网络服务。

禁用Network Manager

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

删除avahi-daemon和avahi-autoipd

彻底删除avahi-daemon和avahi-autoipd。这两个包是兼容苹果系统的自动网络发现服务,会干扰传统的dhcp运作。

sudo apt-get purge avahi-daemon avahi-autoipd // 注意不是apt-get remove而是apt-get purge,删除后需要重启。

interfaces与networking服务本质

interfaces路径:/etc/network/interfaces,是网络配置文件。
networking服务:系统启动、系统关闭和网线插拔时起作用。

比如这样一个interfaces文件:

#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet dhcp
auto enp0s8
allow-hotplug enp0s8
iface enp0s8 inet static 
address 192.168.56.111
gateway 192.168.56.2
dns-nameserver 8.8.8.8
dns-nameserver 192.168.56.254

第一行就提示我们,这个文件是与ifup/ifdown文件相配合的。
ifup与ifdown文件是用来手动启动或关闭某个网络接口的。

interfaces文件中,以下这几行是直接被ifup与ifdown文件使用的。

iface lo inet loopback
iface enp0s3 inet dhcp
iface enp0s8 inet static 
address 192.168.56.111
gateway 192.168.56.2
dns-nameserver 8.8.8.8
dns-nameserver 192.168.56.254

而以下几行与Networking服务配置使用:

auto lo
auto enp0s3
allow-hotplug enp0s3
auto enp0s8
allow-hotplug enp0s8

Networking服务在系统启动、系统关闭和网线插拔时起作用。

在系统启动,会自动用ifup/ifdown去控制写了auto [...]的接口。
在网线插拔中,会自用调用ifup/ifdown去控制写了allow-hotplug [...]的接口。

因此,可以也可以不用restart networking,而是使用ifup/ifdown进行细粒度控制。

Networking配置

查看网口

接来下的配置都是针对网口,所以需要知道有哪些网口,网口名通常为eth0或者enp0s3,如果是无线网口名可能为wlan0。
ls /sys/class/net
ip addr

热插拔网口

sudo ifdown enp0s3 // 类似于拔下enp0s3的网线
sudo ifup enp0s3 // 类似于插上enp0s3网线
sudo ifdown -a // 类似于拔下所有网线
sudo ifup -a // 类似于插上所有网线

配置interfaces

文件路径:/etc/network/interfaces

#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto enp0s3 // 在系统启动,会自动用ifup/ifdown去控制写了auto […]的接口
allow-hotplug enp0s3 // 在网线插拔中,会自用调用ifup/ifdown去控制写了allow-hotplug […]的接口
iface enp0s3 inet dhcp // 1.dhcp设置,自动获取ip
auto enp0s8
allow-hotplug enp0s8
iface enp0s8 inet static // 2.静态ip设置
address 192.168.56.111
#gateway 192.168.56.2 // 如果和dhcp的gateway冲突,就把这行删除
dns-nameserver 8.8.8.8 // 3.dns设置,生效后在/etc/resolv.conf会追加
dns-nameserver 192.168.56.254

bridge配置

网桥模式可以把两个不同网口的子网组合在一起,对外看上去好像是一个子网,所以也叫透明模式。

bridge配置依赖bridge-utils工具。

安装bridge-utils

sudo apt-get install bridge-utils

配置

配置1:br0只配置enp0s3

该配置在虚拟机上测试的。

#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
#auto enp0s3
#iface enp0s3 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports enp0s3 // enp0s3的配置删除或注释
bridge_fd 5
bridge_stp off

enp0s3是连接的外网。

配置bridge后:

1.保留enp0s3设置,重启服务成功,ifconfig:既有enp0s3也有br0;ip route:enp0s3和br0是一样的;dns是enp0s3的dhcp分配的,但是不能上网。
2.删除enp0s3设置,重启服务成功,ifconfig:既有enp0s3也有br0;ip route:enp0s3和br0是一样的;dns是enp0s3的dhcp分配的,并且可以上网,但是网速慢。
3.删除enp0s3设置,重启电脑后,ifconfig:enp0s3没有ip地址,br0分配了ip地址;ip route:只有br0的;dns是dhcp分配的,可上网,网速快。

结论:bridge连接的网口enp0s3的配置应该删除,然后重启电脑ifconfig才生效。

配置2:dhcp配置:br0连接两个网口

该配置在虚拟机上测试的。

#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br0
iface br0 inet dhcp
bridge_ports enp0s3 enp0s8 // 默认是enp0s8优先级更高
bridge_fd 5
bridge_stp off
#bridge_portprio enp0s3 129 // 可通过优先级属性设置哪个网口的优先级高

enp0s3是连接的外网,enp0s8是内网。

配置bridge后:

1.bridge_ports enp0s3 enp0s8,重启服务后,enp0s8优先级高,所以ifconfig:显示的是enp0s8 dhcp分配的ip地址;ip route:只有enp0s8分配的路由;dns:空,所以不能上网。
2.bridge_ports enp0s8 enp0s3,重启服务后,enp0s3优先级高,所以ifconfig:显示的是enp0s3 dhcp分配的ip地址;ip route:只有enp0s3分配的路由;dns:有,所以能上网。
3.bridge_portprio enp0s3 129,默认优先级是128,所以设置enp0s3优先级为129,那所有的现象就和2一样了。
结论:配置多个网口的bridge,一定要清楚优先级顺序。

配置3:静态配置:br0连接2个网口

该配置在工控机测试的。

#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
bridge_ports enp3s0 enp4s0
bridge_fd 5
bridge_stp off
bridge_maxwait 0
address 192.168.40.2
netmask 255.255.255.0
dns-nameserver 192.168.40.9
post-up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.40.1 // 静态路由

配置bridge后,拿两台电脑,一台连enp3s0口,另一台连enp4s0口,两台电脑配置的ip地址都是40网段,比如192.168.40.10和192.168.40.11。

1.两台电脑能相互ping通。
2.两台电脑ping bridge,即192.168.40.2,也能ping通。

配置4:手动配置:br0连接2个网口

该配置在工控机测试的。配置完后br0没有分配地址,这是最简单的配置。

#interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br0
iface br0 inet manual
bridge_ports enp3s0 enp4s0
bridge_fd 5
bridge_stp off
bridge_maxwait 0

配置bridge后,拿两台电脑,一台连enp3s0口,另一台连enp4s0口,两台电脑配置的ip地址都是40网段,比如192.168.40.10和192.168.40.11。

1.两台电脑能相互ping通。

设置bridge命令

设置bridge连接网口

brctl addbr br0 #创建网桥
brctl addif br0 enp0s3 // 网口
brctl addif br0 enp0s8

设置bridge具体信息

ifconfig br0 XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX up // bridge ip
route add default gw XXX.XXX.XXX.XXX // bridge 路由网关

若ifconfig后没有br0信息,手动加载

ifup enp0s3
ifup enp0s8
ifup br0

重启服务

sudo systemctl restart networking
sudo /etc/init.d/networking restart

通过以上多种配置和实验,证明重启系统生效更彻底。
那我们在完成功能开发的时候,不可能每次文件配置(interfaces)之后,要求用户重启系统来让网络配置彻底生效。
所以我的解决办法是,通过ip命令配置立即生效(ip命令配置是临时的,重启系统之后会丢失,所以再配合文件配置),同时文件配置(interfaces)永久生效。
想知道ip命令如何配置请看《ip命令配置网络和网桥》,移步https://www.jianshu.com/p/26b4db8b1706

错误日志

重启不一定会成功,查看报错日志很重要。

systemctl status networking.service // 显示执行过程
journalctl -xe // 更详细的执行过程

查看配置是否生效

所谓网络配置,可细分为三类:

A:接口的IP配置,即ifconfig显示的IP地址、子网掩码。
B:路由配置,即route中显示的默认网关。
C:域名解析配置,即/etc/resolv.conf中的域名服务器信息。

分别对应如下命令查看:

ifconfig
ip route
cat /etc/resolv.conf

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容