為什麼要給網橋分配IP地址
[問題1] 為什麼要給網橋分配MAC和IP地址?
https://unix.stackexchange.com/questions/319979/why-assign-mac-and-ip-addresses-on-bridge-interface
我在Linux上建立了一個網橋介面br0
, 然後給它新增了一些介面eth0
,tap0
等等. 我的理解是網橋介面就像帶著介面(埠)的虛擬交換機.
給網橋介面分配MAC和IP地址是什麼意思? 該介面是否充當交換機/網橋上的附加埠, 允許其他埠訪問主機?
我已經看了一些頁面在討論將IP地址分配給網橋, MAC地址的分配是自動的?
[答案1]
由於網橋是乙太網裝置, 因此需要MAC地址. Linux網橋能發起一些東西, 例如STP(生成樹協議)幀, 類似的流量需要源MAC.
網橋的IP地址不是必須的, 有許多情況下都不需要. 但是在某些情況下需要IP, 例如:
- 網橋用作一組容器或虛擬機器的預設閘道器(因為路由發生在IP層)
- 主網路卡是網橋的一個成員. 此時網橋是使用者與外界的連線, 此時無需將IP分配給主網路卡
eth0
, 而是分配給橋接裝置
如果網橋不需要IP路由, 那就不需要IP地址. 例如以下情況:
- 網橋用來建立一個私有網路, 不與外界連線, 或通過網橋以外的裝置提供外部連線
[答案2]
網橋是軟體交換機, 每個從裝置和橋接器本身都是交換機的埠.
[答案3]
與其他網路裝置一起列出來的不代表虛擬網橋, 代表的是連線到網橋的虛擬網路卡. 如果你有一個物理裝置連線的物理網橋, 你也不會在網路裝置中看到物理網橋——但是你會看到連線到該網橋的網路卡, 既然是網路卡自然就有自己的IP地址.
為網橋裝置分配IP地址(實際上是連線到網橋的網路卡), 可以使你的主機上的裝置將網路包路由給網橋建立的子網和網橋連線的所有裝置.
儘管有iproute2
之類的工具可以讓您看到網橋的虛擬網路卡, 但你也可以通過自帶的brctl
程式檢視. brctl show
命令會列出所有的網橋和網橋上面的介面. 下面是用iproute
和brctl
檢視Linux網橋和tun tap裝置的例子:
$ ip link add br0 type bridge
$ ip tuntap add dev tap0 mode tap
$ ip tuntap add dev tap1 mode tap
$ ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev br0
$ ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev tap0
$ ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev tap1
$ brctl addif br0 tap0
$ brctl addif br0 tap1
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.2e22e593fe8c no tap0
tap1
$ ip addr show to 10.0.0.0/24
11: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
inet 10.0.0.1/24 brd 10.0.0.255 scope global br0
valid_lft forever preferred_lft forever
12: tap0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
inet 10.0.0.2/24 brd 10.0.0.255 scope global tap0
valid_lft forever preferred_lft forever
13: tap1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
inet 10.0.0.3/24 brd 10.0.0.255 scope global tap1
valid_lft forever preferred_lft forever
請注意, brctl show
輸出的"interfaces"是依附於網橋的其它網路裝置, 介面br0
在網橋建立的時候就加上去了. (答主)猜測可能是Linux系統不允許建立不連線裝置的虛擬網橋, 無裝置的網橋會被自動刪除.
[問題2] 為什麼網橋需要IP地址?
https://askubuntu.com/questions/407828/why-do-we-need-an-ip-address-for-a-bridge
網橋是第二層的網路裝置, 在物理網橋上只有用於操作和維護的IP地址. 我有點困惑, 為什麼在KVM中需要給網橋新增IP地址. 我知道VM的網路卡得到IP地址, 附加在網橋上的物理網路卡沒有IP地址. 這樣可以確保虛擬機器的IP地址對外可見. 在伺服器環境下, 我只會給虛擬機器分配靜態IP.
假設給虛擬機器分配靜態IP, 那為什麼網橋也需要IP地址呢?
[答案1]
你不需要給網橋配置IP, 同樣你也不需要給任何乙太網裝置配置IP, 無論實在虛擬機器還是物理機.
但是, 如果你的裝置/網橋沒有IP地址, 則你可能無法使用這個裝置.
例如, 如果安裝了KVM的主機有一個網橋叫做 br_vm
作為所有虛擬機器的網路介面(guest很有可能把這個介面叫做eth0
), 如果br_vm
在主機上沒有配置, 則虛擬機器無法通過eth0
和宿主機通訊.
你問的是為什麼網橋需要IP地址, 答案是不需要. 但是, 你可能想知道哪些情況下宿主機上的網橋必須有IP, 我能想到一些例子:
- 你想讓虛擬機器和主機通訊, 即使只是為了DHCP或者DNS
- 你想關掉VM之前的通訊. 如果你的VM共享網橋, 那就需要仔細考慮了
- 你想擁有主機級別的防火牆. 把所有防火牆規則聚集到主機上是明智的選擇.
順便說一下, 如果VM需要動態IP, 那就與主機是否有IP無關了(除非主機是DHCP伺服器)
[答案2]
我假設你的主機使用/etc/network/interfaces
進行網路配置.
如果在網橋介面(本例是br0
)中將地址指定為0.0.0.0, 你就知道答案了: 連線到網橋的VM仍然有自己的IP, 並且網路沒有中斷.
但是, 你隨後將丟失到網橋到主機的埠. 如果你在interfaces
檔案中指定了IP地址, 則該地址就成為網橋上主機的IP, 正如傳統交換機的管理介面.
請記住, 網橋就像一個獨立的交換機, 但主機仍然在"管理"它, 因此新增IP只會新增一個定址的管理介面.
如果你的主機有兩個網路卡, 你可以為VM的網橋設定0.0.0.0, 然後用另一個網路卡進行管理.
相關文章
- 為什麼要並用域名和IP地址?域名和IP地址並用的理由
- 爬蟲為什麼要用IP代理更換IP地址爬蟲
- 電腦ip地址在哪看 電腦本地ip地址和網際網路ip地址有什麼區別
- 什麼是IP地址?
- 什麼是IP地址
- 為什麼爬蟲需要大量的IP地址?爬蟲
- 什麼是IP地址、IP協議?協議
- 帶你瞭解地址分配DHCP,IP地址管理方式及分配原則
- IP是什麼?怎麼才可以查到IP地址!
- 為什麼要給應用程式簽名?
- mac地址和ip地址有什麼區別Mac
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- 為什麼IP地址可以查詢物理所在地,而不是mac地址?Mac
- Kubernetes EKS 叢集中的 IP 地址分配問題
- 什麼是自動獲取IP地址
- IPIDEA乾貨|什麼是IP地址與DNSIdeaDNS
- 簡談為什麼遊戲公司要打造自己旗下的IP遊戲
- 為什麼用CDN給你網站加速?網站
- 我為什麼反對公開網路IP?
- 為什麼要選擇F5的BIG-IP Cloud Edition?Cloud
- 什麼是IP地址盜用?又要如何預防?
- 以高位元組地址為字地址是什麼
- 獲取IP地址的途徑有哪些?要如何保護IP地址不被竊取?
- 為什麼要code reviewView
- 為什麼要寫作
- 為什麼你的下一餐要交給機器人?機器人
- 左值有地址,為社麼還要std::move()?
- 為什麼區塊鏈橋很重要?區塊鏈
- Python是什麼?為什麼要掌握python?Python
- 域名和伺服器IP地址有什麼關係伺服器
- 為什麼企業要更加關注網路安全
- Linux的ip地址變為127.0.0.1Linux127.0.0.1
- 什麼是SSL證書?網站為什麼要安裝SSL證書?網站
- 為什麼要學習 Julia
- 為什麼要指令重排序?排序
- 為什麼要財務自由
- 為什麼要學習 RustRust
- 為什麼要學習 Vim?