网桥和交换机

2口交换机=网桥



交换机: 工作在数据链路层,根据源mac学习(控制层),目的mac转发(数据层).

linux的网卡

vmware workstation中的桥接

参考: http://blog.daocloud.io/docker-bridge/

docker0的桥接

参考: http://blog.daocloud.io/docker-bridge/





网桥操作工具

yum install bridge-utils -y

如果需要使用网桥模式,需要关掉NetworkManager服务

systemctl stop NetworkManager
systemctl disable NetworkManager

两张网卡放在一个bro下

我们已经知道了br网卡是虚拟网桥,相当于一个交换机,可以把eth0接入 eth1接入

实现如图

方法1: 命令行配置

- 添加br0
brctl addbr br0 - 将eth0连到br0
brctl addif br0 eth0
brctl addif br0 eth1 - 清理eth0的地址-这里有点问题吧
ifconfig eth0 0.0.0.0 - 配置br0的地址
ifconfig br0 192.168.1.10 netmask 255.255.255.0 up # 我发现这样可以添加回环口 brctl addif br0 ath0

方法2: 持久化配置

参考: http://www.solutionsatexperts.com/how-to-create-a-bridge-interface-on-rhelcentos/

- 规划
Combine eth1 and eth2 physical interfaces and create a virtual interface br0, assign IP to it.
eth1 : No IP
eth2 : No IP Note: eth1 and eth2 connect to same physical layer / media.
br0 – > eth1
– > eth2 Note: br0 is a virtual interface mapped to eth0 and eth1 br0 – > 192.168.1.10
Netmask – > 255.255.255.0
Gateway – > 192.168.1.1
DNS – > 8.8.8.8 - 操作步骤
Step 1: Disable Network Manager
Step 2: Create virtual interface br0
Step 3: Configure Physcial interfaces eth1 and eth2
Step 4: Restart network service and verify network settings Step 1: Disable Network Manager
systemctl stop NetworkManager # 网卡开启桥接模式需要关掉NetworkManager Step 2: Create virtual interface br0
Add ifcfg-br0 file under /etc/sysconfig/network-script/ #vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.254.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
DNS2=8.8.8.8 Save & Exit(:wq) Step 3: Configure Physcial interfaces eth1 and eth2
vi /etc/sysconfig/network-script/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br0
TYPE=Ethernet Save & Exit (:wq) Step 4: Restart network service and verify network settings
Restart the network services
# systemctl restart network Verify network settings
# ifconfig -a

需求一台pc要通过另一台两口的linux上网

这里要理解,两个网桥之间交互数据: 查路由表(或者nat)

思路其实很简单:

  • 1.就是将虚拟出一个bridge口
  • 2.将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个bridge口分配一个地址
  • 3.其他子网微机配置网关为bridge口的地址便可以了。
  • 4.当然,因为是设备是网关模式,路由和nat也是必须的了。
源地址转换

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 192.168.1.10

brctl命令


$ docker run -itd --name=b1 busybox $ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242fb188161 no veth0a226d0 $ docker run -itd --name=b2 busybox
$ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242fb188161 no veth0a226d0
vethd9de1b2 $ brctl show
show showmacs showstp - 看到容器的mac地址,docker0这个交换机下接了2个
$ brctl showmacs docker0
port no mac addr is local? ageing timer
1 02:42:ac:11:00:02 no 2.36 $ docker exec -it b1 ip ad
14: eth0@if15: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 02:42:ac:11:00:02

linux下回环口的配置

参考: 虚拟网卡添加: http://blog.csdn.net/yydcj/article/details/8447567

http://www.centoscn.com/image-text/config/2016/1113/8145.html

也可以只通过添加br0并给设置地址的方式,设置回环口.

ifconfig lo 130.0.0.1

[svc]linux下网桥-docker网桥的更多相关文章

  1. Linux下,非Docker启动Elasticsearch 6.3.0,安装ik分词器插件,以及使用Kibana测试Elasticsearch,

    Linux下,非Docker启动Elasticsearch 6.3.0 查看java版本,需要1.8版本 java -version yum -y install java 创建用户,因为elasti ...

  2. linux 下安装docker

    Linux 下的 Docker 安装与使用 一.安装与配置 安装一些必要的系统工具: sudo yum install -y yum-utils device-mapper-persistent-da ...

  3. 在Kali linux下使用docker配置sqli-labs(国内源的配置和系统软件更新)

    本篇blog导航: ~前言 ~第一步:在安装好的kali配置国内源 ~第二步:安装docker ~第三步:docker下安装sqli-labs ~写在最后. 前言: 最近闲来无事,在闯关sqli-la ...

  4. Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...

  5. linux下brctl配置网桥

    原文:http://zhumeng8337797.blog.163.com/blog/static/1007689142011643834429/ 先装好网卡,连上网线,这是废话,不用说了. 然后开始 ...

  6. Linux下部署docker记录(0)-基础环境安装

    以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...

  7. mac和linux下使用Docker,部署SpringBoot项目到docker

    主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...

  8. Linux下安装docker,更改镜像仓库地址,并部署springboot应用

    今天做不成的事,明天也不会做好. 各位同学大家好,随着docker的快速发展,越来越多的人开始使用,一方面随着容器化这个趋势越来越火,docker成为了其中的佼佼者:二来容器化确实降低了运维的门槛,让 ...

  9. 巧用linux版powershell,管理linux下的docker

    大家好,我把用powershell的docker马甲命令的好处,放在了页面下方,从第五章开始. powershell 传教士 原创文章 始于 2017-09-07 允许转载,但必须保留名字和出处,否则 ...

随机推荐

  1. 065 xftp的使用

    1.xftp 一个基于 MS windows 平台的功能强大的SFTP.FTP 文件传输软件 2.下载安装 *3.在linux上安装服务 sudo yum install vsftp

  2. [转]使用python来操作redis用法详解

    转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...

  3. 《Android进阶之光》--RxJava结合Retrofit访问网络

    1)配置 dependencies{ ... compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' co ...

  4. 浅谈html5 video 移动端填坑记

    这篇文章主要介绍了浅谈html5 video 移动端填坑记,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 本文介绍了html5 video 移动端填坑记,分享给大家,具体 ...

  5. 不一样的go语言-构建系统与构件系统

    前言   代码的最后一步是构建成计算机可识别的二进制数据,然后才得以在计算机上运行.如果你曾经写过有点规模(至少数十个以上独立的源文件,且需要依赖第三方包)C语言项目,必定对C语言项目的构建过程印象深 ...

  6. 不一样的go语言-不同的OO

    前言   go语言因为产生时代的原因,大神们在设计go时,不得不考虑业界的流行趋势(编程理念),使得go既可以面向过程编程,也可以面向对象编程.这里不探讨两者的优劣,存在即是合理,面向过程编程经久不衰 ...

  7. 【java并发核心一】Semaphore 的使用思路

    最近在看一本书<Java并发编程 核心方法与框架>,打算一边学习一边把学习的经验记下来,所粘贴的代码都是我运行过的,大家一起学习,欢迎吐槽. 估计也没多少人看我的博客,哈哈,那么我还是会记 ...

  8. BZOJ.3620.似乎在梦中见过的样子(KMP)

    题目链接 /* 896kb 6816ms A+B+A是KMP的形式,于是固定左端点,对于每个位置i,若fail[i]所能到的点k中(k=fail[fail[fail[...]]]),有满足len(l~ ...

  9. php创建udp Server

    <?php//服务器信息$server = 'udp://127.0.0.1:7002';//----UDP Server$msgEof = "\n";$socket = s ...

  10. 2016年3月11日Android学习日记

    1.调试技巧:当一次调试过后,可以在App重新返回当前的状态,然后再调试,而不用再点击Android studio的Debug按钮. 参考:http://www.2cto.com/kf/201506/ ...