當前位置:首頁 » 幣種行情 » 篡改eth報文

篡改eth報文

發布時間: 2023-04-24 14:09:46

A. 單host下Docker的默認網路配置

本文用到的環境如下:
host: centos7
docker: 通過 yum install -y docker 安裝,版本號為1.10.3
docker鏡像:
# Version: 0.0.1 FROM ubuntu:latest MAINTAINER paul liu "[email protected]" RUN apt-get update RUN apt-get install -y net-tools RUN apt-get install -y iputils-ping CMD /bin/bash

場景圖:

我的host主機接有無線路由器,通過ADSL撥號上網,網卡eth0固定IP為192.168.0.200,網關為路由器的IP 192.168.0.1。
在host上安裝docker,並運行容器。

通過以下命令安裝docker,
yum install -y docker
啟用docker,
systemctl start docker
然後在host主機運行 ifconfig 或 ip a 命令,可以看到除去host原有的網卡eth0和回環lo外,多了個docker0。

docker0 IP為172.17.0.1,所在的網段默認為B類私網地址172.17.0.0/16。可以將docker0看做是host主機的一塊虛擬網卡。這樣host主機就等同於配置了雙網卡,兩塊網卡之間可以通信,但前提是啟用ip_forward。
這是docker0的第一個身份。

運行兩個容器docker1,docker2,然後在host主機上運行 brctl show 查看,

這里可以看出docker0的第二個身份,一個虛擬交換機。每運行一個容器,就會產生一對veth,其中一端連接到docker0上,另一端連接到容器的eth0上。這樣,所有連接到docker0的容器組成了一個區域網。如下圖:

在host主機上運行 ifconfig ,也會發現多了兩個veth這樣的網路介面。

在host主機上運行 ip addr show veth6d9a691 ,可以查看到該veth具有mac地址,這也正說明了docker0的虛擬交換機的身份,交換機是通過mac地址通信的,連接到交換機的設備必須具有mac地址。

由於docker0自身也具有mac地址,這個與純二層交換機是不同的,並且綁定了IP 172.17.0.1,容器默認把docker0作為了網關。也就是docker0還兼具路由的功能,因此可以把docker0看做是一個三層交換機,可以做二層數據包轉發,也可以做三層路由轉發。

在容器中運行 route -n 查看路由如下:

在host主機上運行 route -n 查看路由如下:

在host中,訪問本網段192.168.0.0是通過eth0轉發數據包的,訪問172.17.0.0網段是通過docker0轉發數據包的,而對於其他如公網是通過eth0將數據包轉發給網關192.168.0.1,再由該網關進行數據包轉發的,比如上網。

在容器中運行 ping sohu.com 或 ping 192.168.0.200 都可以ping通。

默認情況下,不需要再額外做任何配置,在一台host主機上,通過docker0,各容器之間可以互通,並且可以通過host的eth0連接外網。
通俗的講,通過docker0組成了一個網段為172.17.0.0/16的乙太網,docker容器發起請求時,如果是相同網段則經由docker0轉發到目標機器,如果是不同網段,則經由docker0,轉發到host的另一塊網卡eth0上,由eth0負責下一步的數據包轉發,比如公網地址。

下面進一步分析一下報文是怎麼發送到外面的。

容器內部發送一條公網請求報文,通過eth0,在veth被接收。此時報文已經來到了主機上,通過查詢主機的路由表( route -n ),如果發現報文應該通過主機的eth0,從默認網關發送出去,那麼報文就被從docker0轉發給主機的eth0,但前提是首先啟用ip_forward功能,才能在host主機的docker0和eth0兩個網卡間傳遞數據包。

由於目標地址並不屬於host主機所在網段,那麼會匹配機器上的 iptables中的nat表POSTROUTING鏈中的規則。
在host主機運行命令 iptables -L -n -t nat --line-numbers ,查看nat表,這里只看POSTROUTING鏈:

第一行中說明,對於源地址為172.17.0.0/16網段的數據包,發出去之前通過MQSQUERADE偽裝。linux內核會修改數據包源地址為host主機eth0的地址(也就是192.168.0.200),然後把報文轉發出去。對於外部來說,報文是從主機eth0發送出去的。

區域網內的機器由於都是私有IP,是無法直接訪問互聯網的(數據包可以發出去,但回不來。)如果要上網,除了可以通過硬體路由器,也可以通過軟體路由,在iptables的nat表中的POSTROUTING鏈中添加SNAT規則。

測試一下,在host主機運行命令 iptables -t nat -D POSTROUTING 1 將第一條規則刪掉,那麼在容器中就運行命令 ping sohu.com 就ping不通了。但仍然可以ping通host主機。

在host主機運行命令以下命令恢復:
iptables -t nat -I POSTROUTING -s 172.17.0.0/16 -o eth0 -j SNAT --to-source 192.168.0.200
或者
iptables -t nat -I POSTROUTING -s 172.17.0.0/16 -j MASQUERADE

關於SNAT和MASQUERADE,這篇文章已經有過描述,可以參考: Docker前傳之linux iptables

新建一Dockerfile,用以運行nginx容器:
# Version: 0.0.1 FROM paulliu/ubuntu_ip RUN apt-get install -y nginx EXPOSE 80

在host主機運行構建命令構建鏡像 docker build -t paulliu/nginx .
在host主機運行容器啟動命令 docker run -d -p 80 --name nginx1 paulliu/nginx nginx -g "daemon off;"
在host主機查看容器的埠映射 docker port nginx1 80

在host主機運行命令 iptables -nat -L -n 可以看到在PREROUTING鏈中多了以下DNAT規則:

也就是在容器啟動時通過 -p 80 將host主機192.168.0.200:32773映射為容器172.17.0.4:80。
注意:docker容器每次啟動時獲取的IP地址未必是一樣的,而且 -p 80 是在host主機上隨機選擇一個埠號進行映射,每次啟動的埠號也未必是一樣的。但iptables中相關的規則是自動變更的。

在host主機運行 curl localhost:32773 或者在其他主機運行 curl 192.168.0.200:32773 結果如下:

B. 華為s1730鏈路聚合負載分擔方式

數據流是指一組具有某個或某些相同屬性的數據包。這些屬性有源MAC地址、目的MAC地址、源IP地址、目的IP地址、TCP/UDP的源埠號、TCP/UDP的目的埠號等。

對於負載分擔,可以分為逐包的負載分擔和逐流的負載分擔。

逐包的負載分擔
在使用Eth-Trunk轉發數據時,由於聚合組兩端設備之間有多條物理鏈路,就會產生同一數據流的第一個數據幀在一條物理鏈路上傳輸,而第二個數據幀在另外一條物理鏈路上傳輸的情況。這樣一來同一數據流的第二個數據幀就有可能比第一個數據幀先到達對端設備,從而產生接收數據包亂序的情況。

逐流的負載分擔
這種機制把數據幀中的地址通過HASH演算法生成HASH-KEY值,然後根據這個數值在Eth-Trunk轉發表中尋找對應的出介面,不同的MAC或IP地址HASH得出的HASH-KEY值不同,從而出介面也就不同,這樣既保證了同一數據流的幀在同一條物理鏈路轉發,又實現了流量在聚合組內各物理鏈路上的負載分擔。逐流負載分擔能保證包的順序,但不能保證帶寬利用率。


目前交換機僅支持逐流的負載分擔。

轉發原理
如圖4-9所示,Eth-Trunk位於MAC與LLC子層之間,屬於數據鏈路層。

圖4-9 Eth-Trunk介面在乙太網協議棧的位置

Eth-Trunk模塊內部維護一張轉發表,這張表由以下兩項組成。

HASH-KEY值

HASH-KEY值是根據數據包的MAC地址或IP地址等,經HASH演算法計算得出。

介面號

Eth-Trunk轉發表表項分布和設備每個Eth-Trunk支持加入的成員介面數量相關,不同的HASH-KEY值對應不同的出介面。

例如,某設備每Eth-Trunk支持最大加入介面數為8個,將介面1、2、3、4捆綁為一個Eth-Trunk介面,此時生成的轉發表如圖4-10所示。其中HASH-KEY值為0、1、2、3、4、5、6、7,對應的出介面號分別為1、2、3、4、1、2、3、4。

圖4-10 Eth-Trunk轉發表示例

Eth-Trunk模塊根據轉發表轉發數據幀的過程如下:

Eth-Trunk模塊從MAC子層接收到一個數據幀後,根據負載分擔方式提取數據幀的源MAC地址/IP地址或目的MAC地址/IP地址。

根據HASH演算法進行計算,得到HASH-KEY值。

Eth-Trunk模塊根據HASH-KEY值在轉發表中查找對應的介面,把數據幀從該介面發送出去。

負載分擔方式
為了避蔽局高免數據包亂序情況的發生,Eth-Trunk採用逐流負載分擔的機制,其中如何轉發數據則由於選擇不同的負載分擔方式而有所差別。

負載分擔的方式主要包括以下幾種,用戶可以根據具體應用選擇不同的負載分擔方式。

根據報文的源MAC地址進行負載分擔
根據報文的目的MAC地址進行負載分擔
根據報文的源IP地址進行負載分擔
根據報文的目的IP地址進行宏尺負載分擔
根據報文的源MAC地址和目的MAC地址進行負載分擔
根據報文的源IP地址和目的IP地址進行負載分擔
根據報文的VLAN、源物理埠等對L2、IPv4、IPv6和MPLS報文進行增強型負載分擔。
配置負載分擔方式時,請注意:

負載分擔方式只在流量的出介面上生效,如果發現各入介面的流量不均衡,請修改上行出介面的負載分擔方式。
盡量將數據流通過負載分擔在所有活動鏈路上傳輸,避免數據流僅在一條鏈路上傳輸,造成流量擁堵,影響業務正常運行。
例如,數據報文的目的MAC和IP地址只有一個,則應選擇根據報文的源MAC和IP地址進行負載分擔,如果選擇根據報文的目的MAC和IP地址進行負載分擔則會造成流量只在一條鏈路上傳輸,造成流量擁堵。

如果您想了解如何判斷設備是否存在Eth-Trunk負載分臘輪擔不均,和當出現Eth-Trunk負載分擔不均時,如何調整Eth-Trunk相關配置,請訪問華為公司企業技術支持網站搜索《S系列交換機Eth-Trunk負載分擔不均配置調整方法》。

C. wan1eth關閉

wan1eth關閉是指關閉外網乙太網介面,以防止外網服務被未經授權的枝粗用戶訪問、攻擊或篡慧姿改。關閉wan1eth介面猛碧鎮的步驟如下:
1、登錄路由器的管理頁面;
2、找到「網路服務/埠轉發」;
3、點擊「wan1eth」介面,將其狀態設置為「關閉」;
4、設置完成後保存配置,以使設置立即生效。

D. 容器網路 - 與外網訪問

在 容器間通信 一節中,由於兩個 Network Namespace 與主機之間隔離,是無法訪問外網的,那麼如何訪問外網呢。可以想到這樣一種網路方案,因為 veth1 和 veth2 是連通的,所以 veth1 的數據是可以傳遞到 veth2 的,那麼此時如果 veth2 的數據能傳遞給 eth0,藉助 eth0 的外網訪問能力,就能實現 veth1 的外網訪問。

省略容器創建和鏈接命名空間,分別為容器中的網卡 veth1 和主機網卡 veth2 配置ip

可以看到這兩塊網卡能

可以看到,當我們直接 ping 時,不會有 ICMP 報文發出,提示網路不可達。這是因為 10.130.0.34和veth1不在同一網段,在沒有配置網關的情況下,也不知道應該如何發出去。

正常情況下,為了讓 veth1 ping 通 eth0,可以給 veth1 配置默認的路由規則,告訴它如果找不到合適的規則,就把數據包從 veth1 扔給 veth2。

配置好路由規則後,就能夠 ping 通 10.130.0.34 了。

ping 通10.130.0.34 並不代表數據到達了 eth0 網卡 ,因為 linux 內部網路交換和外部不一樣。梳理一下數據流程。

至此,整個 ICMP 通信完成。自始至終網卡 eth0 未參與。

上一部配置好路由,我們測試了 veth1 能夠和主機升備行任意一個 IP 地址通信。本節將藉助 eth0 訪問到網關。

其中的關鍵點在於,如何把 veth2 的數據包傳遞給 eth0

先嘗試 ping 一下網關,然後抓取 veth2 的數據包,發現只有請求報文,沒有響應報文。

再抓取物理網卡(我這里是物理網卡名稱是 enp0s3f0,也就是圖式的 eth0,統一用 eth0 代表物理網卡)上的數據包。發現沒有任何數據包。

為了讓數據包從虛擬網卡 veht2 發到 eth0,需要用到 ip_forward ,也就是啟用內核的數據包轉發功能。數據轉發功能能夠讓內核接收到不屬於本機的數據包時,根據 數據包的目的 ip 地址將數據包通過合適的網卡轉發出去。

sysctl -w net.ipv4.ip_forward=1
ping 網關測試,可以連通,抓取物理網卡信息,同時存在請求和響應報文。

既然 ping 通了網關,就意味著數據包已經轉發出去了,那麼可以訪問區域網其滾培他主機或者公網嗎。

首先測試一下區域網訪問,ping 不通,我們在區域網的 179 這台主機上抓包。可以看到 179 收到了 ICMP 請求包,也將應答包發給了網關。

再抓取一下本機網卡,可以看見本機確實沒有收到 ICMP 應答包。

這個問題就比較有意思,前一節,網關收到了 ICMP 請求,能夠封裝 ICMP 應答包回復給主機,而如果網關收到其他主機的 ICMP 回程報文,則由於網關不能正確傳遞。

其實不傳遞才是正常的,當網關收到 179 發來的 ICMP 應吵嘩答報文時,需要投遞給 192.168.0.101,但是網關上沒有這樣一個匹配的規則,只能走默認路由或者丟棄。
當我們 ping 網關時,猜測應答有一些特殊操作,能夠正確將應答包原路返回 這個問題我暫時也不清楚 。

為了讓數據包能正確的被路由,需要使用到 SNAT 技術。

SNAT 功能比較簡單,就是將源地址在 192.168.0.0/24 這個網段的數據包,將其源地址轉換以後,發送出去,用 iptables 規則就可以實現。
root@merore ~$ iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

此時再 ping 一下其他主機和公網。均能正常訪問。

抓取本機網卡數據包,可以看到發出去的數據包源ip地址都被替換為了實際的物理網卡地址 10.130.0.34

至此,就手動完成了單主機下容器與外網通信的整個流程。

容器網路與外網通信用到的技術

其實這里還遺留了一個問題,在配置 SNAT 之後, 我們能夠理解數據包能正確的發出去,eth0 網卡也能正確的收到回程報文,但此時回程報文的源地址是 10.130.0.179,目的地址是 10.130.0.34 。這樣一個數據包又是如何正確的回傳給 虛擬網卡veth2,然後傳遞 veth1 的呢。可以參考以下鏈接。
https://blog.csdn.net/sinat_33822516/article/details/81088724

E. 追蹤和管理數字資產新姿勢,教你學會查看區塊鏈賬單

賬單記錄價值流通和狀態,是金融服務的基礎功能。

我們常用的銀行、支付寶、微信支付等都會為普通用戶和商家記錄一筆交易,提供不同維度的查詢、統計和分析服務。

比如大家愛曬的支付寶年度賬單,會統計用戶全年的總收支、消費種類、余額寶和其他理財收益、點外賣的次數等。通過大數據技術,展示各個地域,不同年齡段的消費興趣和趨勢,讓消費者更了解自己周邊的消費環境,商家能夠及時把握市場需求。

去中心化的區塊鏈網路里,交易被永久的記錄在鏈上,公開透明,人人可查。

但是由於區塊鏈的設計更傾向於保證不可篡改和數據壓縮需求,導致業務層面的過濾查詢功能缺失。 加上不同鏈的規則不同,追蹤和管理加密資產變的異常困難。這也是為什麼數字資產投資者常常感嘆「總覺得帳沒算明白「的原因所在。

SixPencer推出全新區塊鏈記賬神器,目前已支持比特幣(Bitcoin)和以太坊(Ethereum)底層的資產追蹤和管理,免費使用,無需注冊。

一經推出,受到了包括礦工、資管機構、OTC商戶、加密創業公司、數字資產投資者的喜愛。



作為專業的資管工具,不僅能夠查詢所有鏈上交易記錄,實時查看賬戶余額和持有資產,而且 提供每日各幣種收支情況、支持單或多地址聚合收支統計、地址畫像分析和圖表、大額交易記錄排行、聯系人管理等。

進入網站後, 在首頁搜索框,輸入比特幣或以太坊地址 點擊搜索即可進入該地址的總覽頁面。

我們以目前ETH持有量全網排名第一的地址: (標簽:bitfinex 1) 賬戶作為demo賬戶進行演示,所有數據均為真實鏈上數據。


這里簡單介紹下區塊鏈上的地址和銀行賬戶的區別。 在區塊鏈上,地址就類似於銀行卡號,知道地址就等於知道銀行卡號一樣,可以向其轉賬。


但不同的是, 區塊鏈是不可篡改的分布式公開賬本,通常具有匿名性,任何人可以對任何地址進行公開查詢。 銀行賬戶只能查詢本人的賬戶信息,無法通過銀行卡號得知其他人的賬戶信息。

如果用戶有多個地址,或者想追蹤其他地址,均可以通過搜索, 所有搜索過的地址信息會在資產組合頁面進行匯總,點擊下拉框即可切換或者刪除賬戶。

SixPencer除包含區塊鏈瀏覽器提供的基礎信息外,添加展示了一些個性化的指標,幫助用戶了解自己的鏈上畫像,也可以追蹤其他賬戶的鏈上軌跡。在下面總覽頁面可以查看地址的資產概覽、歷史指標、收支統計、持有資產信息。

地址概覽

創建時間:第一次收到ETH的日期

凈資產:所有資產,包含ERC20 token資產的合計美元價值

ETH排行:持有ETH數量在所有以太坊地址中的排名

ETH余額和估值:持有的ETH數量和其對應的美元價值

歷史指標

歷史指標展示交易量、交易次數、代幣分析和聯系人分析四大維度。 通過統計,算不清的糊塗賬終於能算清了,比如最簡單的會計計算,ETH總收入=ETH余額+ETH總支出+ETH總手續費。 再比如總交易次數=轉入交易次數+轉出交易次數。

由於以太坊網路的特殊性,所有轉賬的手續費都是以ETH支付。因此我們將手續費單獨羅列出來,在交易明細中也支持手續費單獨篩選,幫助用戶統計手續費支出。


一些有趣的數據,demo賬戶手續費支出為1.1556ETH,ETH單筆大額轉賬達90萬個ETH,持有代幣數量有350種,交易次數最多的代幣是USDT,與其交易過的地址僅37個。

一般持有上百種不同資產的地址通常都是交易所地址,加上交易次數和聯系人並不多,可以排除是對外地址,基本可以判斷是bitfinex交易所內部使用地址。


收支情況

統計了本月全部資產合計收入和支出,支出包含手續費支出。

持有資產情況

展示持有的資產數量、價值、資產價格和24h漲跌幅。demo賬戶這類交易所的地址,持有資產通常10頁都放不下。

SixPencer除了提供地址的交易流水外,還支持全歷史交易記錄查詢和篩選、余額信息、日收支統計等。

交易明細

從下面頁面可以清晰得知ETH資產的本月收支情況 ,用戶還可以根據日期,資金流向、交易分類和標簽系統進行篩選,根據自身需求進行更細致的統計,後面會介紹如何進行指定地址的交易篩選。

點擊上圖中的ETH下拉框,可以切換到其他幣種的交易詳情頁面 ,比如切換到USDT的交易詳情查看USDT的明細狀況。

除月賬單外,SixPencer展示每筆交易的交易明細,提供交易方向、交易對手方、交易金額、賬戶余額、交易時間、每日收支情況等信息。 下圖可以看到近6筆ETH交易均為從bitfinex 3 賬戶轉入bitfinex 1的交易。

交易詳情

點擊任意一筆交易明細,即可進入該筆交易的交易詳情頁。 交易哈希是每筆鏈上轉賬都有的唯一不可篡改的交易ID,類似於訂單號的概念。

通過交易哈希就可以查詢到一筆交易的具體信息。

下面所展示的交易數量、交易狀態、交易時間、發送和接受方、手續費等都是這筆交易的具體信息,在這里不再贅述。 值得注意的是,SixPencer提供個人標簽和備注系統,用戶可以對單筆交易,進行個性化分類和備注, 幫助記憶,不遺忘每一筆交易。

如何快速找到和指定地址的交易信息?

時間變久,交易變多後,查詢鏈上指定交易信息就變得異常復雜和困難,SixPencer將交易信息按照業務需求進行細化,並提供標簽系統輔助用戶進行自定義交易查詢和統計。

比如想要查詢2020年6月地址(標簽:bitfinex 3)一共向demo賬戶轉入了多少ETH。通過我們的賬單系統,僅需兩步操作即可查詢。

1、打標簽: 為了演示,我們將「bitfinex 3「這個標簽重命名為「測試test」。

2、篩選: 將日期篩選為6月1日-6月30日,在篩選欄 選中「轉入」,並在最下面的標簽欄選中「測試test」,點擊保存。

保存後即可搜索出所有6月「測試test」轉入到demo賬戶的交易信息,從下圖可以看出6月份,demo賬戶共從標簽為「測試test「的地址收到58,440.2489個ETH。

如果用戶想查詢和多個指定地址的交易,選中多個標簽後,調整日期、資金流向等信息即可進行資產的自動統計。

在分析一欄,用戶可以查詢地址不同維度的圖表分析信息,包含余額、交易、分類和排行四大維度。 分別點擊各維度還能夠查看更多詳細數據和圖表。

余額:余額展示資產的余額數量和價值走勢

交易:交易展示全部交易、轉入和轉出的交易數量、交易數量價值和交易次數走勢

分類:分類根據平台地址標簽系統對交易類型進行統計,反應地址的交易偏好

排行:排行按照交易次數展示活躍聯系人,按照交易金額展示大額交易

比如排行分析,能夠很快查看與某個地址的具體交易金額和大額轉賬情況。如下圖,demo賬戶與標簽為「測試test」 的地址在本月一共交易了177次,其他與demo賬戶交易較多的都是ERC20 Token合約調用交易。

從下圖看,大額排行也都是與標簽為「測試test」的地址交易信息,表格展示交易對象、交易時間、交易方向、交易數量和價值。 對交易所大戶感興趣的,可以查詢交易所地址的大額轉賬信息,看看哪些地址都是充提大戶。

通訊錄展示所有和demo賬戶有過交易記錄的地址,除平台自帶的標簽體系外,用戶可以對地址添加標簽或者重命名標簽。

標簽:展示平台標簽系統已知標簽和用戶自行添加的標簽

最近聯系人:展示最近30天有過交易記錄的地址/標簽

全部聯系人:展示所有有過交易記錄的聯系人地址/標簽,交易數量超過1萬筆的地址,取最近1萬筆交易的聯系人展示

綜上,SixPencer的全新資產追蹤和管理工具能夠提供比區塊鏈瀏覽器或者錢包更綜合的查詢和分析功能, 作為一款工具產品意在輔助用戶進行數字資產管理,通過對鏈上用戶畫像的進一步解析,幫助大家更好的決策。

我們認為區塊鏈的公開透明機制應該讓數據查詢更簡單,但目前按照實際業務需求快速查詢區塊鏈數據仍然是難點痛點,並成為商業落地的一大阻礙。

數字資產交易僅僅是其中一小塊,未來還將有大量有價值的數據存儲在區塊鏈上,SixPencer將繼續推出更多實用工具,讓數據更好為業務服務。


F. 路由器冗餘故障的解決方法

一、組網環境

路由器A和路由器B上通過VLANIF介面或以太子介面與Switch相連,在路由器A和路由器B與Switch相連的鏈路上配置VRRP備份組,兩台路由器都是Master狀態,但由於傳輸沒有透傳vlan導致VRRP應用不成功。

二、冊嫌故障分析

1、兩台路由器狀態都是Master,說明兩台設備肆姿差都不能接收對方的VRRP廣播報文,初步判斷是Switch沒有轉發報文。

2、從路由器A的介面Eth2/1/1.1 Ping 路由器B的介面Eth2/1/1.1,不能相互Ping通。

裂皮3、將路由器A的介面Eth2/1/1.1和路由器B的介面Eth2/1/1.1恢復為普通3層以太介面,非VLANIF或以太子介面,配置IP地址,可以相互Ping通。

4、由此判斷,是Switch沒有透傳帶Vlan tag的報文。

三、故障處理

1、執行interface ethernet2/1命令,進入介面視圖。

2、執行port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } &<1-10>| all }命令,允許Vlan通過。

3、對交換機埠Eth2/2執行相同操作,過程略,配置完成後,VRRP備份組可正常運行。

使用以太子介面或VLANIF介面配置VRRP備份組時,由於發出的.報文攜帶Vlan標簽,此時一定要使能中間的交換機上透傳Vlan標簽的能力。

G. 區塊鏈中的硬分叉,以太經典ETC是什麼意思

以太經典(ETC)簡史

以太經典始於一個不幸的事件。

2016年5月,去中心化自治組織(DAO)舉行了一次代幣銷售,目標是建立一個基於區塊鏈的風險投資,以資助Ethereum生態系統內未來的去中心化應用(DApps)。

基本上,DAO是一個去中心化方式運作的復雜的智能合約–當條件滿足時自動在多方之間執行任務的計算機代碼。

盡管其有著雄心勃勃的目標以及成功的代幣銷售,DAO的代碼卻有一個重大漏洞,使得攻擊者可以從去中心化組織中竊取ETH。

攻擊者在2016年6月利用這一漏洞,引發了臭名昭著的DAO黑客事件,惡意竊取了大約價值5000萬美元的ETH。

毋庸置疑,DAO黑客事件曾震驚了Ethereum社區,也使得ETH價格從20美元跌至13美元。

在DAO黑客事件發生後,Ethereum社區不得不從三個選項中選擇。

  • 什麼都不做,努力承受攻擊帶來的後果;

  • 啟動軟分叉,收回資金;

  • 部署一個硬分叉來恢復丟失的ETH。

  • 軟分叉和硬分叉都是重大的網路升級。然而,軟分叉允許未升級的用戶和升級後的用戶相互交流,而硬分叉則不能向後兼容以前的版本。

    由於開發人員意識到部署軟分叉會使網路受到分布式拒絕服務(DDoS)攻擊,Ethereum社區決定發起硬分叉,以恢復在DAO黑客攻擊中損失的資金。

    雖然這一方案得到了大多數人的支持,但Ethereum社區中的一小部分人卻表示反對,他們認為 「代碼即律法」,區塊鏈網路應該是不可改變的。

    由於雙方未能在解決方案上達成一致,最終導致了Ethereum區塊鏈的分裂。

    那些試圖找回丟失的ETH的人選擇了硬分叉,開啟了我們今天所熟知的Ethereum(ETH)區塊鏈,而另一群人則留在了最初的Ethereum Classic(ETC)鏈上。

    以太經典解決了那些問題?

    以太經典(ETC)是一個允許開發者部署智能合約和DApps的區塊鏈平台。

    雖然這個功能與Ethereum(ETH)的功能相同,但ETC區塊鏈有兩個主要區別。

    首先,Ethereum Classic社區反對篡改分布式賬本,支持「區塊鏈網路不能也不該被修改」的觀點。

    其次,雖然ETH總供應量沒有硬性上限,但以太經典採用恆定供應的貨幣政策,最多允許創建2.3億個ETC。

    作為一個加分項,以太經典在去年啟動了Atlantis硬分叉,以增加與Ethereum的交互性,並通過zk-SNARKS提高交易的隱私保護程度。

    以太經典ETC推薦的交易平台:火幣、OKEX、AAX等。

H. 用python篡改icmp報文再發送給接收方

程序處理上有些問題,建議深入研究一下ICMP協議。下面是Python 3的一個ICMP的簡單實現,可以參考一下。


importsocket
importstruct
defchecksum(source_string):
sum=0
countTo=(len(source_string)/2)*2
count=0
碰中鉛whilecount<countTo:
thisVal=ord(source_string[count+1:count+2])*256+ord(source_string[count:count+1])
sum=sum+thisVal
sum=sum&0xffffffff
count=count+2
ifcountTo<len(source_string):
培擾sum=sum+ord(source_string[len(source_string)-1])
sum=sum&0xffffffff
sum=(sum>>16)+(sum&0xffff)
sum=sum+(sum>>16)
answer笑好=~sum
answer=answer&0xffff
answer=answer>>8|(answer<<8&0xff00)
returnanswer
defping(ip):
rawsocket1=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.getprotobyname('icmp'))
packet=struct.pack('!BBHHH8s',8,0,0,0,0,b'abcdefgh')
chksum=checksum(packet)
packet=struct.pack('!BBHHH8s',8,0,chksum,0,0,b'abcdefgh')
rawsocket1.sendto(packet,(ip,1))
ping('10.172.23.254')

I. Lvs ip-tun(ip隧道)的原理和實現

採用Nat技術時,由於請求和響應報文都必須經過調度器地址重寫,當客戶請求越來越多時,調度器的處理能力將成為瓶頸。為了解決這個問題,調度器把請求報文通過IP隧道轉發至真實伺服器,而真實伺服器將響應直接返回給客戶,所以調度器只處理請求報文。由於一般網路伺服器應答比請求報文大許多,採用VS/TUN技術後,集群系統的最大吞吐量可以提高10倍。

實驗規劃:

(1).將物理機上的VMnet1網卡的ip設置為200.168.10.4,子網掩碼設置為255.255.255.0

(2).為Lvs伺服器配置一塊網卡eth0,網路連接設置為VMnet1,設置IP地址:ifconfig eth0 200.168.10.1

(3).為兩台遲老真實伺服器配置一塊網卡,網路連接設置為VMnet1,設置IP地址:ifconfig eth1 200.168.10.2和ifconfig eth1 200.168.10.3

(4).為Lvs伺服器和兩台真實伺服器都配置一個tunl0網卡,配置為單獨的網段:ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up,route add -host 200.168.10.10 dev tunl0

(5).Lvs ip-tun伺服器腳本:

ipvsadm -C

ipvsadm -A -t 200.168.10.10:80 -s rr(-t:採用tcp協議;-s:模式參數;rr:採用輪叫演算法)

ipvsadm -a -t200.168.10.10:80 -r 200.168.10.2 -i(-r:真實伺服器賀胡ip;-i:ip-tun模式)

ipvsadm -a -t200.168.10.10:80 -r 200.168.10.3 -i

(6).真實伺服器腳本:

echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce

echo "1"禪旦攔 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

註:目前只有Unix/Linux版本的操作系統才具備ip-tun網卡

J. 我用ethereal軟體抓包,ping 10.22.99.1 -l 1 -t,發現eth網報文的長度是43位元組,按道理乙太網位元組最小是6

乙太網64位元組最小,這個64位元組是包括乙太網頭的(smac/damc/ tpid),你再check一下ethereal

熱點內容
區塊鏈幣圈今天的話題 發布:2025-07-05 15:22:06 瀏覽:796
玩區塊鏈的人群 發布:2025-07-05 15:06:06 瀏覽:123
VP幣是傳銷還是真正區塊鏈 發布:2025-07-05 15:01:21 瀏覽:453
個人還能挖比特幣嗎 發布:2025-07-05 14:46:43 瀏覽:680
幣圈財富自由論壇 發布:2025-07-05 14:12:52 瀏覽:844
挖比特幣有沒有風險 發布:2025-07-05 14:02:51 瀏覽:82
BE區塊鏈生態算網路傳銷嗎 發布:2025-07-05 13:34:31 瀏覽:657
幣圈是什麼控制漲跌 發布:2025-07-05 12:51:01 瀏覽:385
以太坊的運作過程 發布:2025-07-05 12:34:09 瀏覽:207
如何銷售區塊鏈會議 發布:2025-07-05 11:34:12 瀏覽:219