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

2018-11-15  本文已影响19人  倔强swj

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

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

数据链路层

桥接

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

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 种类型的表达式:

只过滤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

上一篇下一篇

猜你喜欢

热点阅读