国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用 Linux 命令(199)—— arp 命令

這篇具有很好參考價(jià)值的文章主要介紹了virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用 Linux 命令(199)—— arp 命令。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第一種方法:
allen@jettech-WS-C621E-SAGE-Series:~$ sudo virsh domifaddr win10-01
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:b3:42:28    ipv4         192.168.122.118/24


第二種方式:
allen@jettech-WS-C621E-SAGE-Series:~$ sudo virsh dumpxml win10-01 | grep mac
    <partition>/machine</partition>
    <type arch='x86_64' machine='pc-i440fx-bionic'>hvm</type>
      <mac address='52:54:00:b3:42:28'/>
allen@jettech-WS-C621E-SAGE-Series:~$ arp -a | grep '52:54:00:b3:42:28'
? (192.168.122.118) 位于 52:54:00:b3:42:28 [ether] 在 virbr0



網(wǎng)卡arp清理:
arp緩存就是IP地址和MAC地址關(guān)系緩存列表。
在Windows下 arp -d [$ip] 不指定IP地址時(shí)清除所有arp緩存。
在Linux下 arp -d $ip 必須指定IP地址才能執(zhí)行這條命令的此參數(shù),所有在Linux系統(tǒng)下 arp -d $ip 命令只能清除一個(gè)IP地址的對(duì)應(yīng)MAC地址緩存,當(dāng)然可以使用組合命令操作,這也算是Linux的一個(gè)優(yōu)點(diǎn)吧。

組合命令清除所有arp緩存:

arp -n|awk '/^[1-9]/{system("arp -d "$1)}'
其實(shí)Linux也有內(nèi)部命令清除所有arp緩存,但是不太好記憶,用的人很少。以下命令清除eth0接口的所有arp緩存。

ip neigh flush  dev eth0
Linux 清除arp緩存是把列表標(biāo)記為(incomplete),在下一次系統(tǒng)清理垃圾是會(huì)清除。

Linux 命令(199)—— arp 命令

1.命令簡(jiǎn)介

arp(Address Resolution Protocol)操作主機(jī)的 ARP 緩存。

arp 可以顯示 arp 緩沖區(qū)中的所有條目、刪除指定的條目或者添加靜態(tài)的 IP 地址與 MAC 地址對(duì)應(yīng)關(guān)系。

2.命令格式

arp [-vn] [-H <type>] [-i <if>] [-ae] [<hostname>]

arp [-v] [-i <if>] -d <hostname> [pub]

arp [-v] [-H <type>] [-i <if>] -s <hostname> <hw_addr> [temp]

arp [-v] [-H <type>] [-i <if>] -s <hostname> <hw_addr> [netmask <nm>] pub

arp [-v] [-H <type>] [-i <if>] -Ds <hostname> <ifname> [netmask <nm>] pub

arp [-vnD] [-H <type>] [-i <if>] -f [<filename>]

3.選項(xiàng)說(shuō)明

-a
	使用備用 BSD 樣式輸出格式(沒(méi)有固定列)。
-H, --hw-type, -t <type>
	指定arp指令使用的地址類型。
-d <address>
	從 arp 緩存中刪除指定主機(jī)的 arp 條目。
-D, --use-device
	使用指定接口的硬件地址。
-e
	以 Linux 的顯示風(fēng)格顯示 arp 緩存中的條目。
-i, --device <if>
	指定要操作 arp 緩存的網(wǎng)絡(luò)接口。
-n, --numeric
	以數(shù)字方式顯示 arp 緩存中的條目。
-v, --verbose
	顯示詳細(xì)的arp緩存條目,包括緩存條目的統(tǒng)計(jì)信息。
-f, --file <filename>
	設(shè)置主機(jī)的IP地址與 MAC 地址的靜態(tài)映射。

4.常用示例

1)查看 arp 緩存表

arp
Address                  HWtype  HWaddress           Flags Mask            Iface
169.254.0.47             ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.4              ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.15             ether   fe:ee:7f:99:99:19   C                     eth0

(2)查看 arp 表,并且用 IP 顯示而不是主機(jī)名稱。

arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
169.254.0.47             ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.4              ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.15             ether   fe:ee:7f:99:99:19   C                     eth0
————————————————

(3)查看 arp 表,使用備用?BSD?樣式輸出格式(沒(méi)有固定列)。

arp -a
? (169.254.0.47) at fe:ee:7f:99:99:19 [ether] on eth0
? (169.254.0.4) at fe:ee:7f:99:99:19 [ether] on eth0
? (169.254.0.15) at fe:ee:7f:99:99:19 [ether] on eth0

4)IP 和 MAC 地址綁定。

arp -s 172.16.0.76 00:50:56:26:d8:87

(5)刪除 ARP 緩存表中指定項(xiàng)。

arp -d 169.254.0.47

(6)刪除指定網(wǎng)卡的 arp 表。

arp -i eth0 -d 169.254.0.4

7)使用 eth1 的 MAC 地址回答?eth0?上的 192.168.60.2 的 arp 請(qǐng)求。

arp -i eth0 -Ds 192.168.60.2 eth1 pub

(8)顯示詳細(xì)的 arp 緩存條目,包括緩存條目的統(tǒng)計(jì)信息

arp -v
Address                  HWtype  HWaddress           Flags Mask            Iface
169.254.0.47             ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.4              ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.15             ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.3              ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.2              ether   fe:ee:7f:99:99:19   C                     eth0
169.254.128.8            ether   fe:ee:7f:99:99:19   C                     eth0
169.254.128.12           ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.138            ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.55             ether   fe:ee:7f:99:99:19   C                     eth0
10.0.0.1                 ether   fe:ee:7f:99:99:19   C                     eth0
169.254.0.23             ether   fe:ee:7f:99:99:19   C                     eth0

示例:
添加靜態(tài)項(xiàng)。這個(gè)很有用,特別是局域網(wǎng)中中了arp病毒以后
# arp -s 192.168.100.81 00:15:C5:E1:D1:58
# arp -a ? .... 顯示 ARP 表。
但是arp -s設(shè)置的靜態(tài)項(xiàng)在用戶登出之后或重起之后會(huì)失效,如果想要任何時(shí)候都不失效,可以將ip和mac的對(duì)應(yīng)關(guān)系寫入arp命令默認(rèn)的配置文件/etc/ethers中?

例如:
root@ubuntu:/# vi /etc/ethers
192.168.100.81 00:15:C5:E1:D1:58
寫入之后執(zhí)行下面的命令就好了,引用:

arp -f /etc/ethers
為保證重起之后綁定仍然有效,需要把上述命令寫入/etc/ethers
?
ARP(Address Resolution Protocol),或稱地址解析協(xié)議。
本地機(jī)向"某個(gè)IP地址 -- 目標(biāo)機(jī)IP地址"發(fā)送數(shù)據(jù)時(shí),先查找本地的ARP表,如果在ARP表中找到"目標(biāo)機(jī)IP地址"的ARP表項(xiàng),(網(wǎng)絡(luò)協(xié)議)將把"目標(biāo)機(jī)IP地址"對(duì)應(yīng)的"MAC地址"放到MAC包的"目的MAC地址字段"直接發(fā)送出去;
如果在ARP表沒(méi)有找到"目標(biāo)機(jī)IP地址"的ARP表項(xiàng),則向局域網(wǎng)發(fā)送廣播ARP包("目的MAC地址字段" == FF:FF:FF:FF:FF:FF),目標(biāo)機(jī)將向本地機(jī)回復(fù)ARP包(包含目標(biāo)機(jī)的MAC地址)
############################################################################

[root@firewall bin]# arp -a
? (192.168.100.83) at 00:15:58:A2:13: D0 [ether] on eth0
? (192.168.100.81) at 00:15:C5:E1: D1:58 [ether] PERM on eth0

發(fā)現(xiàn)沒(méi)有?多了一個(gè)PERM!

或者
[root@firewall bin]# cat /proc/net/arp
IP address ?HWtype ?Flags ?HWaddress ?Mask ?Device
192.168.100.83 ?0x1 ?0x2 ?00:15:58:A2:13:D0 ?* ?eth0
192.168.100.81 ?0x1 ?0x6 ?00:15:C5:E1:D1:58 ?* ?eth0

[root@firewall bin]# arp -s 192.168.100.83 00:15:58:A2:13:D0

[root@firewall bin]# cat /proc/net/arp
IP address ?HW type ?Flags ?HW address ?Mask ?Device
192.168.100.83 ?0x1 ?0x6 ?00:15:58:A2:13:D0 ?* ?eth0
192.168.100.81 ?0x1 ?0x6 ?00:15:C5:E1: D1:58 ?* ?eth0

發(fā)現(xiàn)沒(méi)有?Flags改變了!

所以我們可以用兩種方法找到arp的靜態(tài)綁定地址:

#arp -a | grep PERM ? 或者

#cat /proc/net/arp | grep 0x6

但建議用后者比較快。

利用靜態(tài)ARP表進(jìn)行控制
我們知道,ARP(Address Resolution Protocol,地址轉(zhuǎn)換協(xié)議)被當(dāng)作底層協(xié)議,用于IP地址到物理地址的轉(zhuǎn)換。在以太網(wǎng)中,所有對(duì)IP的訪問(wèn)最終都轉(zhuǎn)化為對(duì)網(wǎng)卡MAC地址的訪問(wèn)。?

不妨設(shè)想一下,如果主機(jī)A的ARP列表中,到主機(jī)B的IP地址與MAC地址對(duì)應(yīng)不正確,由A發(fā)往B數(shù)據(jù)包就會(huì)發(fā)向錯(cuò)誤的MAC地址,當(dāng)然無(wú)法順利到達(dá)B,結(jié) 果是A與B根本不能進(jìn)行通信。Linux可以通過(guò)arp命令控制ARP轉(zhuǎn)換,即IP到MAC的轉(zhuǎn)換。因此,也能利用這一功能對(duì)用戶MAC地址進(jìn)行匹配。下面我們就來(lái)看看arp命令的用法。?
輸入arp將顯示當(dāng)前所有ARP轉(zhuǎn)換記錄,類似于這樣:?

Address ?HWtype ?HWaddress ?Flags ?Mask ?Iface?
www.baidu.com ether ?00:06:29:57:16:F5 ?C ?eth0?
218.200.80.177 ?ether ?00:01:30:F4:32:40 ?C ?eth1?
192.168.100.25 ?ether ?00:02:1E:F1:92:C2 ?C ?eth0?

由此可以看到,當(dāng)前系統(tǒng)保留的IP地址與MAC地址一一對(duì)應(yīng),并指明了硬件類型(Hwtype)和通信所使用的接口(Iface)。不過(guò)這些都是動(dòng)態(tài)生成的,無(wú)需手工干預(yù)。我們要做的恰恰是手工干預(yù)這一過(guò)程。?

我們需要用到arp命令的另一重要功能,就是手工更改這一對(duì)應(yīng)關(guān)系。此外,該命令還可以讀取文本文件中的ARP記錄,其默認(rèn)文件是/etc/ethers。也就是說(shuō),當(dāng)輸入ARP-f的時(shí)候,系統(tǒng)就會(huì)讀取/etc/ethers這個(gè)文件,并以其中的項(xiàng)目取代系統(tǒng)當(dāng)前的ARP記錄。假設(shè)/etc/ethers 文件內(nèi)容如下:?

192.168.100.25 00:02:01:50:BB:53

然后執(zhí)行命令arp –f

這時(shí),我們查看系統(tǒng)ARP表,會(huì)發(fā)現(xiàn)無(wú)論192.168.100.25原來(lái)對(duì)應(yīng)的MAC地址是什么,都會(huì)被新的所取代:?

www.baidu.com ether ?00:06:29:57:16:F5 ?C ?eth0?
218.200.80.177 ?ether ?00:01:30:F4:32:40 ?C ?eth1?
192.168.100.25 ?ether ?00:02:01:50:BB:53 ?C ?eth0

此時(shí),本機(jī)發(fā)往192.168.100.25的數(shù)據(jù)包目標(biāo)MAC地址將由原來(lái)的00:02:1E:F1:92:C2改為00:02:01:50:BB:53 顯然,如果192.168.100.25所在網(wǎng)卡的MAC地址并非00:02:01:50:BB:53,數(shù)據(jù)包就無(wú)法到達(dá)正確的目的地,那么它們也就無(wú)法通信了,這樣也達(dá)到了識(shí)別非法用戶的目的。?

當(dāng)然,控制MAC地址的方法還不止這些,例如可以利用交換機(jī)的端口管理功能識(shí)別用戶。根據(jù)交換機(jī)的原理,它是直接將數(shù)據(jù)發(fā)送到相應(yīng)端口,那么就必須保有一個(gè)數(shù)據(jù)庫(kù),包含所有端口所連網(wǎng)卡的MAC地址,由此可見,控制每個(gè)端口使用的MAC地址理論上是完全可行的。大部分中高端交換機(jī)如3Com SuperStack系列等,都具有這種功能。具體操作與交換機(jī)型號(hào)有關(guān),這里就不贅述。?

最后,提醒一下,MAC地址控制并非絕對(duì)保險(xiǎn)。正如這個(gè)世界上沒(méi)有絕對(duì)解不開的密碼一樣,所謂安全都是相對(duì)于特定的環(huán)境而言。現(xiàn)在,很多網(wǎng)卡都支持MAC地址的軟件修改,Linux和Windows本身也都有辦法修改這一物理地址。不過(guò)由于這種方式相對(duì)穩(wěn)定,摒棄了繁瑣的客戶端設(shè)置,對(duì)用戶完全透明,而且具備很強(qiáng)的可操作性,所以在某種程度上說(shuō)是安全的。

MAC記錄與端口掃描腳本

(1) 需求描述
● 編寫名為system.sh的腳本,記錄局域網(wǎng)中各主機(jī)的MAC地址,保存到/etc/ethers文件中;若此文件已存在,應(yīng)先轉(zhuǎn)移進(jìn)行備份;每行一條記錄,第1列為IP地址,第2列為對(duì)應(yīng)的MAC地址。

● 檢查有哪些主機(jī)開啟了匿名FTP服務(wù),掃描對(duì)象為/etc/ethers文件中的所有IP地址,掃描的端口為21.

(2) 實(shí)現(xiàn)步驟

[root@localhost ~]#vim system.sh
    #!/bin/bash
    #定義網(wǎng)段地址、mac列表文件
    NADD="192.168.4."
    FILE="/etc/ethers"
    #發(fā)送ARP請(qǐng)求,并記錄反饋信息
    [ -f $FILE ] && /bin/cp -f $FILE $FILE.old  #備份原有文件
    HADD=1        #定義起始掃描地址
    while [ $HADD -lt 254 ]
    do
        ping -c 2 -w 1 ${NADD}${HADD} &> /dev/null
        if [ $? -eq 0 ];then
            arp -n ${NADD}${HADD} | awk '{print $1,$3}' >> $FILE
        fi
        let HADD++
    done
    TARGET=$(awk '{print $1}' /etc/ethers)
    echo "以下主機(jī)已開放匿名FTP服務(wù):"
    for IP in $TARGET
    do
        wget [ftp://$IP/](ftp://$IP/) &> /dev/null
        if [ $? -eq 0 ];then
            echo $IP
            rm -rf index.html  #事先在ftp服務(wù)器上準(zhǔn)備下載文件,測(cè)試后刪除                
        fi
    done
# chmod +x system.sh
#./system.sh        #執(zhí)行檢測(cè)程序
#cat /etc/ethers  #確認(rèn)記錄結(jié)果
####/bin/cp相當(dāng)于\cp,即使用原生cp命令,-f表示強(qiáng)制覆蓋,不提示,不與用戶交互

linux下arp協(xié)議-CSDN博客?

arp(8) - Linux manual page

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-417383.html

========================?

單網(wǎng)口ubuntu主機(jī)配置virt-manager傳統(tǒng)橋接bridge網(wǎng)絡(luò)_enaftgm1i0_krokodil98的博客-CSDN博客

單網(wǎng)口ubuntu主機(jī)配置virt-manager傳統(tǒng)橋接bridge網(wǎng)絡(luò)
虛擬機(jī)的網(wǎng)絡(luò)橋接bridge模式往往需要物理宿主機(jī)有兩個(gè)網(wǎng)口,一個(gè)網(wǎng)口1連接外網(wǎng)配置ip,另一個(gè)網(wǎng)口2空閑不配置ip,在virt-manager里配置虛擬機(jī)的網(wǎng)卡綁定網(wǎng)口2,從而實(shí)現(xiàn)虛擬機(jī)橋接網(wǎng)絡(luò)模式。

由于辦公環(huán)境只有一臺(tái)單網(wǎng)口的主機(jī),通過(guò)手動(dòng)配置arp與路由的方式可實(shí)現(xiàn)下方的網(wǎng)絡(luò)拓?fù)潢P(guān)系。如果單網(wǎng)口主機(jī)有相同配置虛擬機(jī)傳統(tǒng)橋接網(wǎng)絡(luò)需求的話,可以參考本文。

先貼下網(wǎng)絡(luò)拓?fù)鋱D:
virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

?

主機(jī)A、B、C處于同一個(gè)內(nèi)網(wǎng)172.30.120.0/24里,其中虛擬機(jī)C的宿主物理機(jī)是B。
按本文操作最終可實(shí)現(xiàn)A<->B、A<->C、B<->C互通。

  1. 宿主物理機(jī)B為ubuntu14.04系統(tǒng),只有一個(gè)物理網(wǎng)口,網(wǎng)口信息如下:

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

? ? ?2. 在物理機(jī)B上通過(guò)nm-connection-editor創(chuàng)建橋接網(wǎng)絡(luò)

??virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

新建一項(xiàng),類型選擇網(wǎng)橋

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令?

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令?

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令?

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令?

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令?

3. 物理機(jī)B上,關(guān)閉nm-connection-editor后,再重新打開可見多了“bridge0 port1”和“網(wǎng)橋連接1”。ifconfig發(fā)現(xiàn)多了bridge0網(wǎng)口:?

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

krokodil@krokodil-SY-ZL-H110N-D3V:~$ ifconfig
bridge0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.30.120.127  netmask 255.255.255.0  broadcast 172.30.120.255
        ether de:91:be:83:e7:72  txqueuelen 1000  (以太網(wǎng))
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.30.120.125  netmask 255.255.255.0  broadcast 172.30.120.255
        inet6 fe80::10f4:3d60:14c5:c457  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:5a:03:01  txqueuelen 1000  (以太網(wǎng))
        RX packets 8250  bytes 7874949 (7.8 MB)
        RX errors 0  dropped 84  overruns 0  frame 0
        TX packets 6888  bytes 1845403 (1.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4.物理機(jī)B上通過(guò)virt-manager創(chuàng)建新虛擬機(jī),步驟略過(guò),網(wǎng)絡(luò)配置如下,配置成橋接模式,設(shè)備綁定到bridge0上:?virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

5.?虛擬機(jī)C安裝成功后,把虛擬機(jī)內(nèi)網(wǎng)卡配置好ip?

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

6.?首先需要確保虛擬機(jī)C網(wǎng)口與物理機(jī)B的bridge0和enp1s0這兩個(gè)網(wǎng)口互通,當(dāng)前狀態(tài)虛擬機(jī)C向物理機(jī)B ping包不通:virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令?

由于橋接原理,可知任意從虛擬機(jī)C eth0發(fā)出的包必會(huì)在物理機(jī)B bridge0網(wǎng)口抓到。配置好后,在虛擬機(jī)C內(nèi)部ping物理機(jī)B網(wǎng)橋bridge0,同時(shí)對(duì)物理機(jī)B的bridge0與enp1s0抓包?

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

?

  • 發(fā)現(xiàn)虛擬機(jī)C的icmp request發(fā)到了物理機(jī)B bridge0上,但由于物理機(jī)B不知道虛擬機(jī)C網(wǎng)口ip172.30.120.120的mac地址,所以reply包無(wú)法發(fā)出。
  • 查詢物理機(jī)B當(dāng)前的arp規(guī)則,發(fā)現(xiàn)缺失網(wǎng)口enp1s0的ip為172.30.120.120的規(guī)則:
krokodil@krokodil-SY-ZL-H110N-D3V:~$ arp -n
地址                     類型    硬件地址            標(biāo)志  Mask            接口
172.30.120.254                   (incomplete)                              bridge0
172.30.120.120                   (incomplete)                              enp1s0
172.30.120.120           ether   52:54:00:32:94:c2   C                     bridge0
172.30.120.254           ether   04:fe:8d:8e:31:e1   C                     enp1s0
  • 在物理機(jī)B配置一條arp規(guī)則,將虛擬機(jī)C內(nèi)eth0的mac地址52:54:00:32:94:c2與ip172.30.120.120關(guān)聯(lián)起來(lái)
@krokodil-SY-ZL-H110N-D3V:~$ sudo arp -s 172.30.120.120 52:54:00:32:94:c2 -i enp1s0
krokodil@krokodil-SY-ZL-H110N-D3V:~$ arp -n
地址                     類型    硬件地址            標(biāo)志  Mask            接口
172.30.120.254                   (incomplete)                              bridge0
172.30.120.120           ether   52:54:00:32:94:c2   CM                    enp1s0
172.30.120.120           ether   52:54:00:32:94:c2   C                     bridge0
172.30.120.254           ether   04:fe:8d:8e:31:e1   C                     enp1s0

再重復(fù)在虛擬機(jī)C內(nèi)向ping 172.30.120.127 -c 1,同時(shí)在物理機(jī)B抓包,發(fā)現(xiàn)虛擬機(jī)C仍然ping不通物理機(jī)B

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

?

  • 這次抓包沒(méi)有抓到arp,發(fā)現(xiàn)物理機(jī)B上reply包并沒(méi)有從enp1s0轉(zhuǎn)發(fā)到bridge0網(wǎng)口。
  • 查看物理機(jī)B路由:
    內(nèi)核 IP 路由表
    目標(biāo)            網(wǎng)關(guān)            子網(wǎng)掩碼        標(biāo)志  躍點(diǎn)   引用  使用 接口
    0.0.0.0         172.30.120.254  0.0.0.0         UG    100    0        0 enp1s0
    0.0.0.0         172.30.120.254  0.0.0.0         UG    20425  0        0 bridge0
    10.10.100.0     0.0.0.0         255.255.255.0   U     0      0        0 virbr0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 virbr0
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    172.30.120.0    0.0.0.0         255.255.255.0   U     100    0        0 enp1s0
    172.30.120.0    0.0.0.0         255.255.255.0   U     425    0        0 bridge0
    

關(guān)于172.30.120.0/24網(wǎng)段的包在物理機(jī)B上有兩條路由,但因?yàn)?00跳數(shù)小于425,所以默認(rèn)向172.30.120.0/24網(wǎng)段的包向enp1s0轉(zhuǎn)發(fā)。這就是為什么上面的reply包沒(méi)有被轉(zhuǎn)發(fā)到bridge0網(wǎng)口。
在物理機(jī)B添加一條關(guān)于172.30.120.120的路由規(guī)則,告知收到目的ip為172.30.120.120的包就直接轉(zhuǎn)發(fā)給bridge0網(wǎng)口:
?

krokodil@krokodil-SY-ZL-H110N-D3V:~$ sudo route add 172.30.120.120 dev bridge0
krokodil@krokodil-SY-ZL-H110N-D3V:~$ route -n
內(nèi)核 IP 路由表
目標(biāo)            網(wǎng)關(guān)            子網(wǎng)掩碼        標(biāo)志  躍點(diǎn)   引用  使用 接口
0.0.0.0         172.30.120.254  0.0.0.0         UG    100    0        0 enp1s0
0.0.0.0         172.30.120.254  0.0.0.0         UG    20425  0        0 bridge0
10.10.100.0     0.0.0.0         255.255.255.0   U     0      0        0 virbr0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 virbr0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.30.120.0    0.0.0.0         255.255.255.0   U     100    0        0 enp1s0
172.30.120.0    0.0.0.0         255.255.255.0   U     425    0        0 bridge0
172.30.120.120  0.0.0.0         255.255.255.255 UH    0      0        0 bridge0
  • 此時(shí),虛擬機(jī)C內(nèi)網(wǎng)口eth0可以和物理機(jī)B的bridge0網(wǎng)口、物理網(wǎng)口enp1s0互通。
  • 虛擬機(jī)C內(nèi)ping包結(jié)果:
  • virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

?7.

  1. 宿主機(jī)B與虛擬機(jī)C互通后,可以進(jìn)一步配置同網(wǎng)段內(nèi)(172.30.120.0/24)機(jī)器A與虛擬機(jī)C互通。此臺(tái)機(jī)器A的ip為172.30.120.121,已驗(yàn)證可ping通物理機(jī)B的兩個(gè)網(wǎng)口ip 172.30.120.125和172.30.120.127。
  • tcpdump: listening on enaftgm1i0, link-type EN10MB (Ethernet), capture size 262144 bytes
    15:09:54.554190 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.30.120.120 tell 172.30.120.121, length 28
    15:09:55.580834 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.30.120.120 tell 172.30.120.121, length 28
    15:09:56.600821 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.30.120.120 tell 172.30.120.121, length 28
    ^C
    3 packets captured
    3 packets received by filter
    0 packets dropped by kernel
    root@sujing-GW-001N1B-FTF:~#
    
    物理機(jī)A網(wǎng)口信息:
    enaftgm1i0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.30.120.121  netmask 255.255.255.0  broadcast 172.30.120.255
            inet6 fe80::54fe:45f6:974e:8db3  prefixlen 64  scopeid 0x20<link>
            ether 00:07:3e:9d:55:8f  txqueuelen 1000  (以太網(wǎng))
            RX packets 137322  bytes 43916437 (43.9 MB)
            RX errors 0  dropped 4476  overruns 0  frame 0
            TX packets 188258  bytes 22199429 (22.1 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            device interrupt 7  base 0xc000
    
  • 在當(dāng)前狀態(tài)下,在同網(wǎng)段機(jī)器A(172.30.120.121)上ping 172.30.120.120 -c 1,發(fā)包不通:
    PING 172.30.120.120 (172.30.120.120) 56(84) bytes of data.
    From 172.30.120.121 icmp_seq=1 Destination Host Unreachable
    
    --- 172.30.120.120 ping statistics ---
    1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
    
  • 在物理機(jī)A網(wǎng)口抓包,發(fā)現(xiàn)172.30.120.121不知道172.30.120.120的mac地址
    tcpdump: listening on enaftgm1i0, link-type EN10MB (Ethernet), capture size 262144 bytes
    15:09:54.554190 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.30.120.120 tell 172.30.120.121, length 28
    15:09:55.580834 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.30.120.120 tell 172.30.120.121, length 28
    15:09:56.600821 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.30.120.120 tell 172.30.120.121, length 28
    ^C
    3 packets captured
    3 packets received by filter
    0 packets dropped by kernel
    
  • 查詢物理機(jī)A(172.30.120.121)的arp表,看到這一條:
    地址                     類型    硬件地址            標(biāo)志  Mask            接口
    172.30.120.254           ether   04:fe:8d:8e:31:e1   C                     enaftgm1i0
    172.30.120.120                   (incomplete)                              enaftgm1i0
    ... ...
    
  • 在物理機(jī)A(172.30.120.121)上增加arp規(guī)則:注意!這里的mac地址要填寫enp1s0的mac地址00:e0:4c:5a:03:01
    @sujing-GW-001N1B-FTF:~# sudo arp -s 172.30.120.120 00:e0:4c:5a:03:01 -i enaftgm1i0
    root@sujing-GW-001N1B-FTF:~# arp -n
    地址                     類型    硬件地址            標(biāo)志  Mask            接口
    172.30.120.254           ether   04:fe:8d:8e:31:e1   C                     enaftgm1i0
    172.30.120.120           ether   00:e0:4c:5a:03:01   CM                    enaftgm1i0
    

    然后在物理機(jī)A上重新ping 172.30.120.120,同時(shí)對(duì)物理機(jī)B的兩個(gè)網(wǎng)口抓包

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

?

  • 這次icmp request成功到達(dá)了物理機(jī)B的enp1s0網(wǎng)口,但是在bridge0網(wǎng)口看到虛擬機(jī)C 172.30.120.120發(fā)出的arp查詢包。

  • 確認(rèn)虛擬機(jī)C內(nèi)arp表,確實(shí)缺少121的mac地址:

virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

?

  • 在虛擬機(jī)C內(nèi)部配置arp規(guī)則172.30.120.121 de:91:be:83:e7:72?(注意!!這里要配置bridge0 mac地址)

  • virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

    ?

  • 此時(shí)再在物理機(jī)A 172.30.120.121上ping包,就可通了。
root@sujing-GW-001N1B-FTF:~# ping 172.30.120.120 -c 1
PING 172.30.120.120 (172.30.120.120) 56(84) bytes of data.
64 bytes from 172.30.120.120: icmp_seq=1 ttl=63 time=0.731 ms

--- 172.30.120.120 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.731/0.731/0.731/0.000 ms

8.?

至此,總結(jié)下:
172.30.120.121物理機(jī)A需要添加一條arp規(guī)則:172.30.120.120 enp1s0的mac地址
172.30.120.125與172.30.120.127物理機(jī)B需要添加一條路由規(guī)則:172.30.120.120 dev bridge0,以及一條arp規(guī)則172.30.120.120 eth0的mac地址
172.30.120.120虛擬機(jī)C需要添加一條arp規(guī)則:172.30.120.121 bridge0的mac地址

  • 從物理機(jī)A 網(wǎng)口向 虛擬機(jī)C ping一個(gè)包,抓包看整個(gè)過(guò)程:

物理機(jī)A 172.30.120.121 enaftgm1i0(00:07:3e:9d:55:8f)向ip 172.30.120.120發(fā)request包,根據(jù)物理機(jī)A上的arp規(guī)則,向172.30.120.120發(fā)包的目的mac應(yīng)配為00:e0:4c:5a:03:01(00:e0:4c:5a:03:01為物理機(jī)B 172.30.120.125 enp1s0的mac地址)。所以最終在網(wǎng)口enaftgm1i0抓到的request包,源mac地址是enaftgm1i0,目的mac地址是enp1s0。在通過(guò)內(nèi)網(wǎng)的交換機(jī)與路由器時(shí),此request包會(huì)被轉(zhuǎn)發(fā)到00:e0:4c:5a:03:01所在的網(wǎng)口,即enp1s0網(wǎng)口。

root@sujing-GW-001N1B-FTF:~# tcpdump -i enaftgm1i0 -venn host 172.30.120.120
tcpdump: listening on enaftgm1i0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:14:10.131325 00:07:3e:9d:55:8f > 00:e0:4c:5a:03:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 51167, offset 0, flags [DF], proto ICMP (1), length 84)
    172.30.120.121 > 172.30.120.120: ICMP echo request, id 6552, seq 1, length 64
16:14:10.131851 00:e0:4c:5a:03:01 > 00:07:3e:9d:55:8f, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 54622, offset 0, flags [none], proto ICMP (1), length 84)
    172.30.120.120 > 172.30.120.121: ICMP echo reply, id 6552, seq 1, length 64
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel
  • 物理機(jī)B enp1s0(00:e0:4c:5a:03:01)抓包可看到request包(源mac地址是enaftgm1i0,目的mac地址是enp1s0)已到達(dá)物理機(jī)B。根據(jù)物理機(jī)B的路由規(guī)則,172.30.120.120的包應(yīng)轉(zhuǎn)發(fā)給bridge0網(wǎng)口:
    tcpdump: listening on enp1s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
    16:14:10.163279 00:07:3e:9d:55:8f > 00:e0:4c:5a:03:01, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 51167, offset 0, flags [DF], proto ICMP (1), length 84)
        172.30.120.121 > 172.30.120.120: ICMP echo request, id 6552, seq 1, length 64
    16:14:10.163690 00:e0:4c:5a:03:01 > 00:07:3e:9d:55:8f, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 54622, offset 0, flags [none], proto ICMP (1), length 84)
        172.30.120.120 > 172.30.120.121: ICMP echo reply, id 6552, seq 1, length 64
    ^C
    2 packets captured
    2 packets received by filter
    0 packets dropped by kernel
    
  • bridge0(de:91:be:83:e7:72)抓包看到,獲取到了request包(在enp1s0轉(zhuǎn)發(fā)時(shí),源mac地址替換成了bridge0,目的mac地址被替換成了eth0)。
cpdump: listening on bridge0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
16:14:10.163315 de:91:be:83:e7:72 > 52:54:00:32:94:c2, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 51167, offset 0, flags [DF], proto ICMP (1), length 84)
    172.30.120.121 > 172.30.120.120: ICMP echo request, id 6552, seq 1, length 64
16:14:10.163677 52:54:00:32:94:c2 > de:91:be:83:e7:72, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 54622, offset 0, flags [none], proto ICMP (1), length 84)
    172.30.120.120 > 172.30.120.121: ICMP echo reply, id 6552, seq 1, length 64
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel

172.30.120.120虛擬機(jī)C網(wǎng)口eth0抓包,抓到request和reply(源和目的mac分別是bridge0和eth0):virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用
Linux 命令(199)—— arp 命令

?

reply包發(fā)送和路由原理相同,略,看抓包即可明白

?

到了這里,關(guān)于virsh 獲取虛機(jī)IP,網(wǎng)橋ip,brctl,arp使用 Linux 命令(199)—— arp 命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java:獲取本機(jī)IP,Linux環(huán)境下使用InetAddress.getLocalHost()方法獲得127.0.0.1

    java:獲取本機(jī)IP,Linux環(huán)境下使用InetAddress.getLocalHost()方法獲得127.0.0.1

    知道InetAddress.getLocalHost()方法是可以獲取本地ip的,但是在mac電腦上執(zhí)行的時(shí)候,偶爾會(huì)得到127.0.0.1的輸出,這樣拿到本地ip很不穩(wěn)定,感覺就很不靠譜了 代碼 mac上輸出 在 windows環(huán)境 : 使用InetAddress.getLocalHost()方法看似正常能獲得本地ip,實(shí)際也有不確定性( 多網(wǎng)卡協(xié)同工作環(huán)

    2024年02月01日
    瀏覽(20)
  • VM安裝RedHat7虛機(jī)ens33網(wǎng)絡(luò)不顯示IP問(wèn)題解決

    VM安裝RedHat7虛機(jī)ens33網(wǎng)絡(luò)不顯示IP問(wèn)題解決

    1、今天在VMware中安裝RedHat7.4虛擬機(jī),網(wǎng)絡(luò)連接使用的是 NAT 連接方式,剛開始安裝成功之后輸入ifconfig 還能看到ens33自動(dòng)分配的IP地址,但是當(dāng)虛機(jī)關(guān)機(jī)重啟后,再查看IP發(fā)現(xiàn)原來(lái)的ens33網(wǎng)絡(luò)已經(jīng)沒(méi)有了,只變成了這兩個(gè): 然后輸入ip a 查看網(wǎng)卡信息發(fā)現(xiàn)出現(xiàn)了下面的信息:

    2024年02月09日
    瀏覽(27)
  • 計(jì)算機(jī)網(wǎng)絡(luò)——Wireshark軟件使用與協(xié)議分析(ARP協(xié)議、IP與ICMP分析)

    計(jì)算機(jī)網(wǎng)絡(luò)——Wireshark軟件使用與協(xié)議分析(ARP協(xié)議、IP與ICMP分析)

    ? ? ? ? 一、實(shí)驗(yàn)?zāi)康?? 學(xué)習(xí) Wireshark 的基本操作,抓取和分析有線局域網(wǎng)的數(shù)據(jù)包;掌握以太網(wǎng) MAC幀的基本結(jié)構(gòu),掌握 ARP 協(xié)議的特點(diǎn)及工作過(guò)程。? 二、實(shí)驗(yàn)內(nèi)容 使用 Wireshark 抓取局域網(wǎng)的數(shù)據(jù)包并進(jìn)行分析: 1. 學(xué)習(xí) Wireshark 基本操作:重點(diǎn)掌握捕獲過(guò)濾器和顯示過(guò)濾器

    2024年02月05日
    瀏覽(15)
  • linux的IP及虛IP(附加IP)獲取打印

    如下為C++代碼 如下為命令操作: 查看虛IP ip -f inet addr 刪除指定虛IP ip addr del 172.x.x.x dev ens33 新增虛IP: ifconfig ens33:1 172.x.x.x netmask 255.255.250.0 以上注意需要加:1這些來(lái)新增一個(gè)設(shè)備,添加完后在ifconfig?能看到新加的IP。 如下的命令給加到同一個(gè)設(shè)備上,導(dǎo)致ifconfig看不到,i

    2024年02月20日
    瀏覽(25)
  • Shell腳本中獲取本機(jī)ip地址,Linux獲取本地ip地址

    在 Shell 腳本中獲取本機(jī) IP 地址可以通過(guò)多種方式實(shí)現(xiàn),這里介紹三種常用的方法: 1. 使用 ifconfig 命令獲取本機(jī) IP 地址 ifconfig 命令可以獲取本機(jī)網(wǎng)卡的配置信息,包括 IP 地址。可以通過(guò) grep 命令過(guò)濾出 IP 地址信息,再使用 awk 命令提取出具體的 IP 地址。示例代碼如下:

    2024年02月11日
    瀏覽(31)
  • linux設(shè)置動(dòng)態(tài)獲取ip:如何在Linux中設(shè)置動(dòng)態(tài)IP

    Linux設(shè)置動(dòng)態(tài)獲取IP的方法如下:使用命令進(jìn)行設(shè)置: Linux設(shè)置動(dòng)態(tài)獲取IP的方法如下: 1. 使用ifconfig命令進(jìn)行設(shè)置: 2. 使用dhclient命令進(jìn)行設(shè)置: 3. 使用NetworkManager進(jìn)行設(shè)置:

    2024年04月26日
    瀏覽(19)
  • 10.網(wǎng)橋是什么?網(wǎng)橋和路由器及交換機(jī)的區(qū)別?以太網(wǎng)和令牌環(huán)網(wǎng),nat,查公網(wǎng)ip等

    10.網(wǎng)橋是什么?網(wǎng)橋和路由器及交換機(jī)的區(qū)別?以太網(wǎng)和令牌環(huán)網(wǎng),nat,查公網(wǎng)ip等

    網(wǎng)橋是什么?有什么作用? 網(wǎng)橋是一種網(wǎng)絡(luò)設(shè)備,它可以在數(shù)據(jù)鏈路層(第二層)上連接不同的局域網(wǎng)(LAN),并根據(jù)MAC地址轉(zhuǎn)發(fā)數(shù)據(jù)幀。網(wǎng)橋的作用是: 隔離碰撞域,提高網(wǎng)絡(luò)性能和穩(wěn)定性。 擴(kuò)展網(wǎng)絡(luò)范圍,連接不同的網(wǎng)段或拓?fù)浣Y(jié)構(gòu)。 進(jìn)行鏈路層的協(xié)議轉(zhuǎn)換,實(shí)現(xiàn)不同

    2024年02月15日
    瀏覽(24)
  • arping命令 ip地址沖突檢測(cè) 根據(jù)ip查mac地址

    arping命令 ip地址沖突檢測(cè) 根據(jù)ip查mac地址

    IPV4場(chǎng)景 1)系統(tǒng)自己是不會(huì)自動(dòng)檢測(cè)是否外面有IP地址與自己沖突了; 2) 通過(guò)ifcfg-ethX配置文件對(duì)網(wǎng)卡IP進(jìn)行靜態(tài)配置時(shí),重啟network服務(wù)會(huì)去檢測(cè)所配置的IP是否有沖突,但這種檢測(cè)只是在啟動(dòng)network服務(wù)時(shí)才進(jìn)行; 3)ifconfig命令配置IP是不會(huì)檢測(cè)IP是否有沖突的,所以這種方法存在

    2024年02月10日
    瀏覽(20)
  • qt-c++進(jìn)階1-window、linux下獲取本機(jī)所有網(wǎng)卡ip信息、根據(jù)網(wǎng)卡名獲取ip地址。

    qt-c++進(jìn)階1-window、linux下獲取本機(jī)所有網(wǎng)卡ip信息、根據(jù)網(wǎng)卡名獲取ip地址。

    例如:第一章 主要是通過(guò)qt-c++實(shí)現(xiàn)獲取本機(jī)電腦的網(wǎng)卡信息或者是IP信息 總結(jié)c++獲取本機(jī)網(wǎng)卡信息的方法 第一章:適用于windows操作系統(tǒng)、linux操作系統(tǒng) 用 QHostAddress 解析獲取本機(jī) IPV4地址 ; 用 QNetworkInterface 解析獲取所有網(wǎng)關(guān)信息( IP地址(IPV4和IPV6) 、 子網(wǎng)掩碼 、 廣播地

    2024年02月13日
    瀏覽(24)
  • TCP/IP詳解——ARP 協(xié)議

    TCP/IP詳解——ARP 協(xié)議

    ARP (Address Resolution Protocol)協(xié)議工作在 網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層之間 ,通常被認(rèn)為是一個(gè)跨兩層的協(xié)議。 當(dāng)網(wǎng)絡(luò)設(shè)備有數(shù)據(jù)要發(fā)送給另一臺(tái)網(wǎng)絡(luò)設(shè)備時(shí),必須要知道對(duì)方的網(wǎng)絡(luò)層地址(即IP地址)。IP地址由網(wǎng)絡(luò)層來(lái)提供,但是僅有IP地址是不夠的,IP數(shù)據(jù)報(bào)文必須封裝成幀才能

    2024年02月03日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包