linux 创建网桥

由于最近项目需验证个问题,需求是要创建一个虚拟机网桥,在使用ifconfig命令查看时让docker0网桥不在第一个显示,因此,我们创建一个虚拟网桥让它排在第一位置

项目使用Centos7系统,因此使用 brctl 创建网桥后可以使用 ifconfig 和 ip add两种方法去配置IP地址

方法一:

查看网桥命令

#brctl  show

[root@localhost opt]# brctl show
 bridge name bridge id STP enabled interfaces
 docker0 8000.0242cffb9c2b no veth3d93fdb
 vetha55117d
[root@localhost opt]#

这里已经有docker0网桥了,这个网桥是在启动Docker Daemon时自动创建的。 添加网桥命令顺序。 #brctl addbr br0 eth0 #eth0是要桥接的网卡的名称。 我的就是eth1,所以我的命令就是 #brctl addbr ad0 eth1

给网桥添加ip地址 [root@localhost
~]# ifconfig ad0 172.10.0.1 [root@localhost ~]# 查看ip信息,可以发现添加了ad0网桥,且信息显示在docker0上面 [root@localhost ~]# ifconfig ad0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.10.0.1 netmask 255.255.0.0 broadcast 172.10.255.255 inet6 fe80::2458:f7ff:fe24:b267 prefixlen 64 scopeid 0x20<link> ether 26:58:f7:24:b2:67 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 24 bytes 3644 (3.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:cfff:fefb:9c2b prefixlen 64 scopeid 0x20<link> ether 02:42:cf:fb:9c:2b txqueuelen 0 (Ethernet) RX packets 11453 bytes 44241445 (42.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 21146 bytes 1888772 (1.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.13.51 netmask 255.255.0.0 broadcast 172.16.255.255 inet6 fe80::79f:188f:ef14:5adb prefixlen 64 scopeid 0x20<link> ether 0c:da:41:1d:b0:ee txqueuelen 1000 (Ethernet) RX packets 31624069 bytes 6572205580 (6.1 GiB) RX errors 0 dropped 97100 overruns 0 frame 0 TX packets 1564839 bytes 164193902 (156.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

方法二:

除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器。

在启动 Docker 服务的时候,使用 -b BRIDGE或--bridge=BRIDGE 来指定使用的网桥。

如果服务已经运行,那需要先停止服务,并删除旧的网桥。

$ sudo service docker stop
$ sudo ip link set dev docker0 down
$ sudo brctl delbr docker0
然后创建一个网桥 bridge0。

$ sudo brctl addbr bridge0
$ sudo ip addr add 192.168.5.1/24 dev bridge0
$ sudo ip link set dev bridge0 up
查看确认网桥创建并启动。

$ ip addr show bridge0
4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
    link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.1/24 scope global bridge0
       valid_lft forever preferred_lft forever
配置 Docker 服务,默认桥接到创建的网桥上。

$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
$ sudo service docker start
启动 Docker 服务。新建一个容器,可以看到它已经桥接到了 bridge0 上。

可以继续用 brctl show 命令查看桥接的信息。另外,在容器中可以使用 ip addr 和 ip route 命令来查看 IP 地址配置和路由信息。

 

 

posted @ 2019-11-18 11:00  香菜哥哥  阅读(2988)  评论(0编辑  收藏  举报