網橋:和交換機工作原理一樣的一個硬體。 網橋內部有一個緩存,裡面放了介面和mac地址的對應關係。 橋接、NAT和僅主機模式: NAT網卡(vmnet8):相當於一個虛擬的集線器(Vmnet8),兩台使用nat模式的虛擬機能夠通信,是因為它都連接到了這個集線器(hub)上面。windows裡面本省就生 ...
網橋:和交換機工作原理一樣的一個硬體。
網橋內部有一個緩存,裡面放了介面和mac地址的對應關係。
橋接、NAT和僅主機模式:
NAT網卡(vmnet8):相當於一個虛擬的集線器(Vmnet8),兩台使用nat模式的虛擬機能夠通信,是因為它都連接到了這個集線器(hub)上面。windows裡面本省就生成了一個交割vmnet8的網卡,vmnet8上面的地址是第一個ip地址。這個虛擬的網卡和虛擬的hub也是連接在一起的。所以windows和虛擬機、虛擬機和虛擬機之間能通信。
僅主機網卡(vmnet1):配置了僅主機模式的虛擬機都會連接到僅主機這個hub上面。windows裡面也有一個虛擬的網卡(vmnet1)(首地址)。
僅主機不能連通外網。(虛擬機之間和物理機之間通信)
橋接網卡(vmnet0):也相當於一個hub,物理機上有一個本地的物理網卡(真正的網卡),上面配了一個地址,這個網卡連接到vmnet0這個hub上面,如果有網卡是橋接模式,那麼他就會連接到這個hub上面。
橋接:
把兩個網路用網橋把他們連接起來。
環境準備:
圖中兩個交換機之間沒有任何連接的話,是無法保證通信的。
現在連接一個電腦,電腦兩端都有網卡,此時A和B之間也無法通信,因為這不是一個hub或交換機。因為電腦收到數據報文後,發現目標地址不是他,就直接丟棄了。
讓A和B通信的方法:
方法一:
把這個電腦配置為路由器(但是左右兩邊的網段一樣,所以不行。路由器是連接兩個不同網段的)
方法二:
把電腦想象成一個網橋或交換機。所以把這個電腦配置成網橋或者交換機便可實現通信。
這個電腦配地址的原因:是為了方便我們進行管理,並不是為了實現A和B的通信需要配地址。(傻瓜交換機,插電即用)
把某台電腦配置為網橋的方法:
#通過命令配置的網橋是臨時生效
#1. 安裝對應工具包
yum install bridge-utils (只用centos6、7上面有,8上面已經淘汰了)
#2. 添加網橋
brctl addbr br0
#3.把對應的網卡加入到網橋裡面去
#3. 添加網橋中網卡
brctl addif br0 eth0(物理網卡)
brctl addif br0 eth1(物理網卡)
#4. 啟動這個網橋
ifconfig br0 up 或 ip link set br0 up #預設br0 是down,必須啟用
#刪除橋接
brctl a delbr br0
nmcli命令創建軟體網橋
#1創建網橋
nmcli con add type bridge con-name br0 ifname br0
#給網橋加地址可以不加,不過為了方便管理加上了地址
nmcli connection modify br0 ipv4.addresses 10.0.0.100/24 ipv4.method manual
#啟用這個網橋
nmcli con up br0
#2加入物理網卡到網橋裡面
nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0
nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0
nmcli con up br0-port0 #啟動物理網卡
nmcli con up br0-port1 #啟動物理網卡
#3 會自動在網卡配置文件裡面生成若幹個配置
cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0
STP=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.0.100
PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0 TYPE=Ethernet
NAME=br0-port0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d
#啟用STP
brctl stp br0 on
網路測試診斷工具
#測試網路連通性
ping
#顯示正確的路由表
ip route
route
#跟蹤路由
traceroute
tracepath
mtr
#確定名稱伺服器使用
nslookup
host
dig
#抓包工具
tcpdump
wireshark
#安全掃描工具
nmap
netcat :網路界的瑞士軍刀,即nc
fping:測試網路通暢的一個工具。ping命令的增強版。
tcpdump:抓包工具。
支持針對網路層、協議、主機、網路或埠的過濾。並提供and、or、not等邏輯語句幫助去除無用的信息。
選項:
-
-i<網路介面> 表示對哪個網卡進行抓包
-
-n 以數字方式顯示,不把ip地址轉換成名字(顯示ip而不是主機名)
-
-nn 不把協議和埠號轉化成名字(比如22埠,不屑nn顯示的就是ssh)
-
-t 不顯示每個數據包前面的時間戳
-
-c 指定一共要抓幾個數據包
關鍵字:
-
dst IP:表示要抓取目標地址是xxx的包
-
src IP:抓取源地址是xx的數據包
-
host ip:抓取指定主機發送或者接收的數據包
-
port xx:抓取指定埠的數據包
-
udp:抓取協議類型是udp的包
-
tcp:抓取協議類型是tcp的包
-
icmp:抓取協議類型是icmp的包
tcpdump使用範例
#查看網卡的信息:
tcpdump -D
#如果不加任何參數,則檢測的是第一塊網卡上流經的數據包
tcpdump
#監聽指定的網卡
ecpdump -i 網卡名
#監聽指定主機的數據包
#例如:監聽主機10.0.0.100 的通信包,註意:出、入的包都會被監聽
tcpdump host 10.0.0.100
#特定來源地址的通信
tcpdump src host hostname
#特定目標地址的通信
tcpdump dst host hostname
#如果不指定src跟dst,那麼來源或者目標是hostname的通信都會被監聽
tcpdump host hostname
#監聽特定埠
tcpdump port 3000
#監聽TCP/UDP的數據包
tcpdump tcp或 tcpdump udp
#監聽特定主機之間的通信
tcpdump ip host 10.0.0.101 and 10.0.0.102
nmap:探測網路的連通性
#查看主機當前開放的埠
nmap localhost
#探測目標主機開放的埠
nmap -PS 10.0.0.1