美文网首页
从虚拟网桥聊聊网络基础命令。

从虚拟网桥聊聊网络基础命令。

作者: 倔强swj | 来源:发表于2018-11-15 10:59 被阅读19次

桥接(Bridging),是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程,工作在OSI的第二层。一般的交换机,网桥就有桥接作用。——百度百科
Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。

echo 1 > /proc/sys/net/ipv4/ip_forward  

数据链路层

  • 实现了网卡接口的驱动程序,用来处理数据在物理媒介上的传播。实现了IP地址和物理地址之间的转换。

  • 数据链路层协议有ARP和RARP协议。

  • 数据链路层封装的数据称为帧。

  • Linux 相关命令:

    • arp命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。

      arp(选项)(参数)
      -a<主机>:显示arp缓冲区的所有条目;
      -H<地址类型>:指定arp指令使用的地址类型;
      -d<主机>:从arp缓冲区中删除指定主机的arp条目;
      -D:使用指定接口的硬件地址;
      -e:以Linux的显示风格显示arp缓冲区中的条目;
      -i<接口>:指定要操作arp缓冲区的网络接口;
      -s<主机><MAC地址>:设置指定的主机的IP地址与MAC地址的静态映射;
      -n:以数字方式显示arp缓冲区中的条目;
      -v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息;
      -f<文件>:设置主机的IP地址与MAC地址的静态映射
      

桥接

Linux bridge 根据收到的帧的目的 MAC 地址来决定其行为:

  • 如果帧的目的 MAC 地址是已知的在 bridge 的另一头(非local),会做 bridging (转发)
  • 如果帧的目的 MAC 地址是未知的,会做 flooding (泛洪)
  • 如果帧的目的 MAC 地址是 bridge 自身或者它的某个端口的 MAC 地址(local),则发往上层 IP 层
  • 如果目的 MAC 地址是已知的而且在 bridge 的源侧,则丢弃

Linux bridge 是依据什么来进行转发的。我们可以通过命令来查看

brctl showmacs <bridge>     show a list of mac addrs
port no mac addr        is local?   ageing timer
  2 fa:16:3e:2e:37:e1   no         1.18
  3 fa:16:3e:35:4d:1a   no        20.19
  2 fa:16:3e:53:01:09   no       284.72
  6 fa:16:3e:6a:57:8d   no         1.13
  1 fa:16:3e:76:f5:88   no         0.02
  8 fa:16:3e:b4:cb:15   no        15.50
  9 fa:16:3e:f1:8a:ce   no         4.08

关于网桥的详细原理介绍可以查看[2],讲解的相当的详细。

桥接原理

这里我简单的介绍桥接的命令:

Usage: brctl [commands]
commands:
    addbr       <bridge>        add bridge
    delbr       <bridge>        delete bridge
    addif       <bridge> <device>   add interface to bridge
    delif       <bridge> <device>   delete interface from bridge
    hairpin     <bridge> <port> {on|off}    turn hairpin on/off
    setageing   <bridge> <time>     set ageing time
    setbridgeprio   <bridge> <prio>     set bridge priority
    setfd       <bridge> <time>     set bridge forward delay
    sethello    <bridge> <time>     set hello time
    setmaxage   <bridge> <time>     set max message age
    setpathcost <bridge> <port> <cost>  set path cost
    setportprio <bridge> <port> <prio>  set port priority
    show        [ <bridge> ]        show a list of bridges
    showmacs    <bridge>        show a list of mac addrs
    showstp     <bridge>        show bridge stp info
    stp         <bridge> {on|off}   turn stp on/off

生成树协议工作原理:任意一交换机中如果到达根网桥有两条或者两条以上的链路.生成树协议都根据算法把其中一条切断,仅保留一条.从而保证任意两个交换机之间只有一条单一的活动链路.因为这种生成的这种拓扑结构.很像是以根交换机为树干的树形结构.故为生成树协议

Tcpdump命令

Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
        [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
        [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
        [ -Q in|out|inout ]
        [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
        [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
        [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
        [ -Z user ] [ expression ]

表达式

通过表达式可以对各种不同类型的网络流量进行过滤,以获取到需要的信息。这也是 tcpdump 强大功能的一个体现。
主要有 3 种类型的表达式:

  • Type(类型)选项包括 hostnetport
  • Direction(方向)选项包括 srcdst 以及它们的组合
  • Proto(协议)包括 tcpudpICMPah

只过滤icmp协议的命令行

tcpdump -nni eth0 icmp

[1]桥接原理:https://yuerblog.cc/2017/01/22/understand-bridge-and-dhcp/

[2]详细:https://opengers.github.io/openstack/openstack-base-virtual-network-devices-bridge-and-vlan/

[3] http://www.cnblogs.com/sammyliu/p/5763513.html

相关文章

  • 从虚拟网桥聊聊网络基础命令。

    桥接(Bridging),是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程,工作在OSI的第二层。...

  • 第五篇 : Docker 容器的网络连接

    一、Docker 容器的网络基础 docker0(Linux的虚拟网桥) 通过ifconfig查看docker0的...

  • 网络虚拟化技术

    网络虚拟化技术 数据包从虚拟机到物理机过程: 虚拟机 -> QEMU虚拟网卡 -> 虚拟化层 -> 内核网桥 ->...

  • 无法访问kvm虚拟机问题解决

    kvm的虚拟机无法连接,路由、网络正常时可以执行以下命令修复网桥注意:virbr1 改成自己服务器的网卡标识

  • docker 网络

    docker的网络是基于Linux namespace 的虚拟化 一,网络原理 1,Veth设备(成对) 2,网桥...

  • Docker网络实现

    实现原理 Docker使用Linux桥接(参考《Linux虚拟网络技术》),在宿主机虚拟一个Docker容器网桥(...

  • KVM-网络配置

    qemu支持的网络模式 qemu向客户机提供了如下四种不同模式的网络1、基于网桥的虚拟网卡2、基于nat的虚拟网络...

  • 部分资料记录

    OVS 相关概念网桥概念示例解析Open vSwitch搭建虚拟网络Open vSwitch的ovs-vsctl命...

  • VMwVMware虚拟机的三种网络模型

    VMware虚拟机的三种网络模型一、Bridged(桥接模型)桥接模式是将主机网卡与虚拟机虚拟的网卡用虚拟网卡网桥...

  • 《图解 TCP/IP》知识点整理

    网络基础知识 网络构成的要素:网卡:使计算机连网中继器:从物理层上延长网络网桥(2层交换机):从数据链路层上延长网...

网友评论

      本文标题:从虚拟网桥聊聊网络基础命令。

      本文链接:https://www.haomeiwen.com/subject/cdnefqtx.html