顯示具有 Network 標籤的文章。 顯示所有文章
顯示具有 Network 標籤的文章。 顯示所有文章

2024年4月20日 星期六

192.168.1.0 subnet

Source: Understanding the Host Addresses in the 192.168.1.0 Subnet : Call +1-800-413-3531 | Medium

The 192.168.1.0 Subnet
The 192.168.1.0 subnet is part of a private IP address range defined by RFC 1918. It falls within the Class C IP address space, which is commonly used for smaller networks like home networks or small businesses. The subnet mask associated with this range is typically 255.255.255.0, which means the first three octets (192.168.1) represent the network address, and the fourth octet (0) is used for host addresses.
  1. Network Address (192.168.1.0): This address is used to identify the entire subnet. It cannot be assigned to any specific device on the network.
  2. Host Addresses (192.168.1.1 to 192.168.1.254): These are the IP addresses that can be assigned to individual devices within the subnet. Each device on the network must have a unique host address within this range.
  3. Broadcast Address (192.168.1.255): This address is used to broadcast messages to all devices within the subnet simultaneously. When a device sends data to the broadcast address, every device on the subnet receives it.

2021年9月15日 星期三

BPDU - When Windows Ethernet and WiFi are configured in "Bridge" mode.

Source https://www.itsfun.com.tw/BPDU/wiki-8372865-1834445

BPDU

BPDU是運行STP的交換機之間交換的訊息幀。BPDU內包含了STP所需的路徑和優先權信息,STP便利用這些信息來確定根橋以及到根橋的路徑。

  • 中文名稱
    BPDU
  • 版本號
    STP的版本(為IEEE 802.1d時值為0
  • 協定ID
    該值總為0。
  • 報文類型
    BPDU類型

概念

網橋協定資料單元(Bridge Protocol Data Unit)。是一種生成樹協定問候封包,它以可配置的間隔發出,用來在網路的網橋間進行信息交換。

當一個網橋開始變為活動時,它的每個連線埠都是每2s(使用缺省定時值時)傳送一個BPDU。然而,如果一個連線埠收到另外一個網橋傳送過來的BPDU,而這個BPDU比它正在傳送的BPDU更優,則在地連線埠會停止傳送BPDU。如果在一段時間(缺省為20s)後它不再接收到鄰居的更優的BPDU,則在地連線埠會再次傳送BPDU。

BPDU是網橋協定資料單元(Bridge Protocol Data Unit)的英文首字母縮寫。

BPDU報文主要欄位

協定ID:該值總為0。

版本號:STP的版本(為IEEE 802.1d時值為0)。

報文類型:BPDU類型(配置BPDU=0,TCN BPDU=80)。

標記域:LSB(最低有效位)=TCN標志;MSB(最高有效位)=TCA標志。

根網橋ID:根信息由2位元組優先權和6位元組ID組成。這個信息組合標明已經被選定為根網橋的設備標識。

根路徑成本:路徑成本為到達根網橋交換機的STP開銷。表明這個BPDU從根網橋傳輸了多遠,成本是多少。這個欄位的值用來決定哪些連線埠將進行轉發,哪些連線埠將被阻斷。

傳送網路橋ID:傳送該BPDU的網橋信息。由網橋的優先權和網橋ID組成。

連線埠ID:傳送該BPDU的網橋連線埠ID。

計時器:計時器用于說明生成樹用多長時間完成它的每項功能。這些功能包括報文老化時間、最大老化時間、訪問時間和轉發延遲。

最大老化時間:根網橋傳送BPDU後的秒數,每經過一個網橋都會增加1,所以它的本質是到達根網橋的跳計數。

訪問時間:根網橋連續傳送BPDU的時間間隔。

轉發延遲:網橋在監聽學習狀態所停留的時間。

網橋的三種典型方式

BPDU究竟是如何工作的呢?

這得從網橋說起。網橋有三種典型的方式:透明橋、源路由橋與源路由透明橋。

網橋典型地連線兩個用同樣介質存取控製方法的網段,IEEE 802.1d規範(此規範是為所有的802介質存取方法開發的)定義了透明橋。源路由橋是由IBM公司為它的令牌環網路開發的;而源路由透明橋則是透明橋和源路由橋的組合。橋兩邊的網段分屬于不同的沖突域,但卻屬于同一個廣播域

路徑連線原理

在一個橋接的區域網路裏,為了增強可靠性,必然要建立一個冗餘的路徑,網段會用冗餘的網橋連線。但是,在一個透明橋橋接的網路裏,存在冗餘的路徑就能建立一個橋回路,橋回路對于一個區域網路是致命的。

生成樹協定是一種橋嵌套協定,在IEEE 802.1d規範裏定義,可以用來消除橋回路。它的工作原理是這樣的:生成樹協定定義了一個封包,叫做橋協定資料單元BPDU(Bridge Protocol Data Unit)。網橋用BPDU來相互通信,並用BPDU的相關機能來動態選擇根橋和備份橋。但是因為從中心橋到任何網段隻有一個路徑存在,所以橋回路被消除。

在一個生成樹環境裏,橋不會立即開始轉發功能,它們必須首先選擇一個橋為根橋,然後建立一個指定路徑。在一個網路裏邊擁有最低橋ID的將變成一個根橋,全部的生成樹網路裏面隻有一個根橋。根橋的主要職責是定期傳送配置信息,然後這種配置信息將會被所有的指定橋傳送。這在生成樹網路裏面是一種機製,一旦網路結構發生變化,網路狀態將會重新配置。

當選定根橋之後,在轉發封包之前,它們必須決定每一個網段的指定橋,運用生成樹的這種演算法,根橋每隔2秒鍾從它所有的連線埠傳送BPDU包,BPDU包被所有的橋從它們的根連線埠復製過來,根連線埠是接根橋的那些橋連線埠。BPDU包括的信息叫做連線埠的COST,網路管理員分配連線埠的COST到所有的橋連線埠,當根橋傳送BPDU的時候,根橋設定它的連線埠值為零。然後沿著這條路徑,下一個橋增加它的配置連線埠COST為一個值,這個值是它接收和轉發封包到下一個網段的值。這樣每一個橋都增加它的連線埠的COST值為它所接收的BPDU的包的COST值,所有的橋都檢測它們的連線埠的COST值,擁有最低連線埠的COST值的橋就變為了指定的橋。擁有比較高連線埠COST值的橋置它的連線埠進入阻塞狀態,變為了備份橋。在阻塞狀態,一個橋停止了轉發,但是它會繼續接收和處理BPDU封包


Source http://smalleaf.blogspot.com/2011/10/switch-bpdu-guard.html

防止私接Switch的利器 - BPDU GUARD

今天客戶問我一個問題:

為什麼設定了Spanning-tree portfast還有spanning-tree bpduguard enable那個port不能接switch!?

回答這個問題之前,有三個名詞要先了解:
1.spanning-tree: 中文好像翻成生成樹,管它什麼翻譯,這個東西是Switch上的設定,設定上去後,Switch與Switch之間會相互溝通,避免網路迴圈(loop)狀況產生,缺點是剛接上switch的設備會需要30~50秒的時間…溝通…之後網路才會通。

2.portfast: 這是spanning-tree的進階設定,目的就是當確定網路port所連接的設備確定是終端設備,如印表機、PC、Server等時,不需要switch之間的spanning-tree那30~50秒的溝通,可以利用portfast跳過這個溝通時間。

3.BPDU:全面為bridge protocol data unit,為switch之間spanning-tree溝通的協定資料,只要有spanning-tree的環境就會有BPDU存在。

了解這三個名詞之後,再來看spanning-tree的進階設定"BPDUGUARD",我們知道bpdu是switch之間溝通spanning-tree的協定資料,那來防止bpdu的bpduguard就是防止switch之間溝通spanning-tree的保彪,問題是…為什麼要禁止spanning-tree呀??這不是防止loop發生的好機制嗎??

原因是spanning-tree是cisco switch預設的功能,只要開機就有啦!!所以只要把一台switch接到另一個swich就會發生spanning-tree的溝通。這時....BPDU GUARD的功就用產生了,可以用來避免人把swich接到自已的網路環境,因為只要一接上就會有bpdu協定資料出現,這時bpdu guard就會將該port error disable,來避免有人私接swich進網路環境。

聰明的您應該有發現,這有個前提,整個bpdu guard的保護只能保護會發送bpdu的switch,如果對方把spanning-tree關掉,或是非cisco swich,這個安全機制就破功啦@@

雖然如此,這還是一個很好的功能,比如說某天自已忘了,接了一台swich上去,更動了原本的STP架構,這不就糗了!!透過BPDU GUARD就是在避免STP被更動的危險狀況!!

最後…回到原將問題:
為什麼設定了Spanning-tree portfast還有spanning-tree bpduguard enable那個port不能接switch!?


因為spanning-tree bpduguard enable之後,會開啟spanning-tree的bpdu防護機制,避免swich之間有spanning-tree的溝通資料(bpdu),或者說,避免有人私接switch進來,因為當對方一接進來,該port會偵測到bpdu資料,此時已啟用bpdu guard的switch會自動將該port Error Disable。所以更正確一點的說法是,不能接會發送bpdu的switch進來,如果非cisco swich或是已關掉spanning-tree的swich還是可以接進來的。


Source https://a46087.pixnet.net/blog/post/32217254

======================================================================

網孔底

Hub

NB / Win10 /

WiFi/Ethernet network bridge by following https://superuser.com/questions/1319833/use-wifi-and-ethernet-simultaneously-on-windows-10

PC / Linux / Ethernet


WNC MIS : 網孔底下的設備串到loop or 私接的switch被偵測到導致網孔被鎖住。WNC MIS : 網孔偵測到BPDU這種封包就會被鎖住

2018年8月24日 星期五

SOCAT 簡介


http://brieflyx.me/2015/linux-tools/socat-introduction/
概述
socat,是linux下的一個工具,其功能與有瑞士軍刀之稱的netcat類似,不過據說可以看做netcat的加強版。的確如此,它有一些netcat所不具備卻又很有需求的功能,例如ssl連接這種。nc可能是因為比較久沒有維護,確實顯得有些陳舊了。
安裝
Ubuntu上可以直接sudo apt-get install socat,其他發行版本沒試過。
也可以去官網下載源碼包socat
基本語法
1
socat [options] <address> <address>
其中這2address就是關鍵了,如果要解釋的話,address就類似於一個檔描述符,socat所做的工作就是在2address指定的描述符間建立一個pipe用於發送和接收資料。
那麼address的描述就是socat的精髓所在了,幾個常用的描述方式如下:
·         -,STDIN,STDOUT :表示標準輸入輸出,可以就用一個橫杠代替,這個就不用多說了吧….
·         /var/log/syslog : 也可以是任意路徑,如果是相對路徑要使用./,打開一個檔作為資料流程。
·         TCP:: : 建立一個TCP連接作為資料流程,TCP也可以替換為UDP
·         TCP-LISTEN: : 建立TCP監聽埠,TCP也可以替換為UDP
·         EXEC: : 執行一個程式作為資料流程。
以上規則中前面的TCP等都可以小寫。
在這些描述後可以附加一些選項,用逗號隔開,如forkreuseaddrstdinstdoutctty等。
socatcat
直接回顯
1
socat - -
cat文件
1
socat - /home/user/chuck
寫文件
1
echo "hello" | socat - /home/user/chuck
socatnetcat
連接遠端埠
1
2
nc localhost 80
socat - TCP:localhost:80
監聽埠
1
2
nc -lp localhost 700
socat TCP-LISTEN:700 -
正向shell
1
2
nc -lp localhost 700 -e /bin/bash
socat TCP-LISTEN:700 EXEC:/bin/bash
反彈shell
1
2
nc localhost 700 -e /bin/bash
socat tcp-connect:localhost:700 exec:'bash -li',pty,stderr,setsid,sigint,sane
代理與轉發
將本地80埠轉發到遠端的80
1
socat TCP-LISTEN:80,fork TCP:www.domain.org:80
其他
其實從這裡才是重點
SSL連接
SSL伺服器
1
socat OPENSSL-LISTEN:443,cert=/cert.pem -
需要首先生成證書檔
SSL用戶端
1
socat - OPENSSL:localhost:443
fork伺服器
接下來這個例子,就是我認識socat的原因,可以將一個使用標準輸入輸出的單進程程式變為一個使用fork方法的多進程服務,非常方便。
1
socat TCP-LISTEN:1234,reuseaddr,fork EXEC:./helloworld
不同設備的通信
U盤進行網路共用
1
socat -d -d /dev/ttyUSB1,raw,nonblock,ignoreeof,cr,echo=0 TCP4-LISTEN:5555,reuseaddr
-d -d 指的是調試信息的級別
將終端轉發到COM1
1
socat READLINE,history=$HOME/.cmd_history /dev/ttyS0,raw,echo=0,crnl
socat還有個readbyteoption,這樣就可以當dd用了。
小結
因為在Linux/UNIX中,一切都是檔,無論是socket還是其他設備。所以從理論上來說,一切能夠在檔層級訪問的內容都可以成為socat的資料流程的來源,2address可以任意發揮,能夠做到的事情還有很多。特別是其fork的功能,確實是netcat所不能比的。
參考文獻
借鑒的幾篇博文:
其他內容,可以參考socat man page