---
# System prepended metadata

title: 0516094 SDN-NFV Project 2

---

# 0516094 SDN-NFV Project 2

## Part 1

### 1.
2個
![](https://i.imgur.com/3yY1ty9.png)

### 2.
#### a.
第一個封包：
![](https://i.imgur.com/D36dqKP.png)

![](https://i.imgur.com/gXULQ3j.png)

第二個封包：
![](https://i.imgur.com/Rj1pKeB.png)

![](https://i.imgur.com/3nIiOFT.png)

#### b.
priority為10

![](https://i.imgur.com/xASKv2V.png)

## Part 2

### 1.

`flows_s1-1_0516094.json`為當s1接收到來自port為1且是ARP封包時，會將封包從port 2送出去。
`flows_s1-2_0516094.json`為當s1接收到來自port為2且是ARP封包時，會將封包從port 1送出去。
因此安裝完這兩條flow rules後，h1即可成功arping到h2。
![](https://i.imgur.com/tAwGamt.png)

`flows_s1-3_0516094.json`為當s1接收到來自port為2且是IPv4封包時，會將封包從port 1送出去。
`flows_s1-4_0516094.json`為當s1接收到來自port為1且是IPv4封包時，會將封包從port 2送出去。
因此安裝完這兩條flow rules後，h1即可成功ping到h2。
![](https://i.imgur.com/120DlZJ.png)

## Part 3

![](https://i.imgur.com/aGrMUyg.png)

我先創造出上面的topology，接著安裝附檔裡的flow rules，並在mininet中執行`h1 arping h2`，可以發現CPU使用率為100%。

![](https://i.imgur.com/piZ1qhT.png)

broadcast storm：因為h1會先送出一個arp broadcast封包，switch A收到從h1來的封包後會broadcast到switch B與switch C，switch B收到從switch A來的封包會broadcast到switch C與h2，而switch C收到封包後會在broadcast到switch A 與 switch B，switch A 與 switch B收到封包後又會在broadcast，一直持續broadcast下去，最終就會導致broadcast storm。