---
title: Lab Meeting Minutes 2023/07/14
tags: lab_meeting
---
> Outline
> [TOC]
---
# PERAL Lab Meeting
- 時間:112 年 07 月 14 日 9:00
- 地點:線上
- 線上會議連結 : [Online](https://meet.google.com/zfi-zmnc-qfw)
- 出席者:Solomon、劉怡君、田蕙瑜、紀見如、劉冠伶、林大智、繆亭霄、蘇翊荃、陳嘉璐、陳姿綾、陳姿澖、謝萬霖
- 會議主題:[SIP ALG](https://docs.google.com/presentation/d/1aX0ZT04_eFXnJtm8iQ0-F3BlZWnR0RzDTwr7YPLPW3I/edit?usp=sharing)
- 主講者: 陳嘉璐
- 主記: 蘇翊荃
## 會議內容
* Why we need ALG?

ALG 可以幫忙解決
* What is ALG?
* 全名為 Application Layer Gateway
* 可以檢查經過他的 packet,確保格式有符合要求
* What can ALG do?
* address 與 port 的轉換
* 可以解析特定 application layer 的 protocol
* packet 的檢查與修改,以符合特定規定與增加安全性
* 動態打開的 port
* ALG
* Pinhole
* ALG 打開的暫時通道
* 在一定的時間開啟讓 packet 可以傳送出去
* The Role of SIP ALG in Opening Signal Pinholes for SIP Headers:
* VIA
* CONTACT
* ROUTE
* RECORD-ROUTE
* Key SDP Fields for SIP ALG:
* c= for connection information
* m= for media announcement
* Before create a pinhole, need to know
* protocol
* Destination IP
* Destination port
* Lifetime
* Process

* How SIP and ALG Interact?
* 有可能會導致丟包
* Why Should ALG be Disabled?
* ALG 修改數據時可能會出問題
* 因為 ALG 是不規律的修改數據,因此有時反而會使通話品質下降
* Configuring Static NAT for Incoming SIP Calls




---
### 建議&問題
1. [name=Yukino] P.4 為甚麼防火牆要開啟大量的 port
Ans: [name=嘉璐] 規則有很多,因此需要開很多 port
2. [name=Yukino] P.10 destination 是指哪一邊
Ans: [name=嘉璐] 出去的封包
3. [name=萬霖] P.13 建議:用詞不太正確/不一致。e.g. 圖片上寫 internal vs external,但說明卻是 private or public network
4. [name=萬霖] P.16 NAT vs. ALG. 它們的關係是什麼,為什麼會互相干擾?
Ans: [name=嘉璐] ALG 可以修改 packet 相關的內容,可能會造成數據的遺失,ALG 還可以判斷要讓那些訊息進來,建立一個專用的通道,就不需要打開大量的通道。
Ans: [name=Solomon] 我覺得「建議關掉 ALG 的文章」不是寫給技術人員看的,甚至不像是技術人員寫的。裡頭甚少技術細節,只提到了一堆專有名詞,然後叫你「把它關掉就對了!」
Ans: [name=Solomon] 問別人三次問題內容不太禮貌,可以先描述看看自己對問題的理解
5. [name=萬霖] P.10 這四點是建立 pinehole 需要的參數嗎?因為資訊來自SDP中的c和m, 這些欄位都很容易竄改,有沒有機會因此被 DoS 攻擊 (flood attack).
Ans: [name=嘉璐] 1. 沒錯
Ans: [name=嘉璐] 2. 目前沒有想法,要再查查看
6. [name=大智] ALG 與其他 NAT 穿越技術哪一種是最常使用的,如果 ALG 有那麼多缺點為甚麼還會繼續存在
Ans: [name=嘉璐] 不太確定現在使用的比例
Ans: [name=Angela] 穿越 NAT 的方法有三類:1. 從中間人來解決 2. STUN 是從 user 端來做 NAT 穿越的方法 3. ICE 是從 server 端來做 NAT 穿越的方法
Ans: [name=Solomon] NAT 的解決方法分為 client,中間 gateway, server 端,也有同時搭配兩端以上的 NAT 穿越技術,UPNP 便是 client 端以及 gateway 的穿越技術。如果有中間 gateway 的穿越方法,應該盡量運用。NAT 穿越技術的比例不是最重要的,最重要的是看甚麼情況的使用適合的穿越技術
7. [name=怡君] 我的理解是每一次建立通話時都會產生兩個 pinhole 對嗎?
Ans: [name=嘉璐] 沒錯
8. [name=怡君] 關於實際操作的問題,好奇問一下:在 Router enable ALG 後,有辦法查看現在有哪些已經建立的 pinhole 嗎?(包含它們的 Role 等資訊 eg. VIA, CONTACT...)
Ans: [name=嘉璐]
9. [name=見如] pinhole 的建立有數量限制嗎,如果同時建立了 100 個 pinehole 會造成甚麼影響嗎
Ans: [name=嘉璐] 沒有數量限制,因為 pinehole 有 live time,因此應該不會造成甚麼影響
10. [name=亭霄] P.12 圖片的敘述怪怪的
Ans: [name=Solomon] 應該是右邊文字敘述不太正確
11. [name=亭霄] P.16 ALG 怎麼影響通話品質?
Ans: [name=嘉璐] packet lose 會產生靜電音
Ans: [name=Solomon] ALG 應該只會造成通與不通或是失去連線的狀況,不會有靜電音
12. [name=亭霄] P.25 甚麼情況下會產生 failed sessions
Ans: [name=嘉璐]
Ans: [name=Solomon] 要聽清楚提問者的敘述,針對問題去分析及回答,避免讓對方覺得你「顧左右而言他」。這需要一點練習。
Ans: [name=Solomon] 會失敗的原因是因為 roles 不合,規則上有的會放行,不合的就會擋住
13. [name=冠伶] 
P.12 似有錯。Via 應如 P.13 是 port 1234
14. [name=冠伶] /24 另一邊也是 /24 嗎?還是可以不同大小?
Ans: 我用的是 static NAT, 所以兩邊要一樣大。其他 (e.g., dynamic NAT)可以不一樣大。
Ans: [name=Solomon] 文章沒有敘述的部分可以試著猜看看
15. [name=Angela] 建議:在大家比較有問題的這幾頁是因為在簡報中跳得比較快,且簡報內容與想講述的內容有點差異,下次可以試著改進
16. [name=怡君] P.14 ALG 修改了什麼訊息?改錯通常是什麼情況可以舉個具體的例子嗎?或許展示一下修改前後的 packet 長什麼樣子?
Ans: [name=Solomon] 這個問題前面討論非常多了,可以會後研究看看。
17. [name=怡君] 妳介紹了 ALG ,但又說它應該被 disable,我知道後來除了 ALG 還有其他解決 SIP 穿越 NAT 的方式(像是 STUN) ,那這樣的話 ALG 是完全沒有用處了嗎?有沒有其他用途?
Ans: 同上,前面也有討論過。
18. [name=姿綾] P.8 ROUTE 和 RECORD-ROUTE 的差異是甚麼?
Ans: [name=嘉璐] wireshark 裡可能會有有這個欄位的封包,我來找找看。
Ans: [name=嘉璐] 我發現我抓到的訊息只有 VIA。
Ans: [name=亭霄] RECORD-ROUTE 是 request 傳送出去時 proxy 加上去的路徑,未來其他封包便可以透過相同路徑傳送出去。
Ans: [name=Solomon] ROUTE 是指發送方直接指定 request 需要經過哪些地方。
19. [name=Solomon] 原則上問問題是由資淺的新生先問問題。為了避免問題都被學長姐問光,可以事先條列出想問的問題。
20. [name=Solomon] 建議亭霄可以先提醒學弟妹 meeting 相關的事宜,並找學長姐幫忙學弟妹們進行 rehearsal。
## 待追蹤事項
無
## 臨時動議
1. [name=姿綾] 希望之後的 meeting 可以改到 10:00~12:00
* 全員都同意,因次從下次 meeting 開始時間都是 10:00~12:00
* [name=Solomon] 蕙瑜表決的程序應該兩方意見都詢問,只請不同意的舉手有失公平性。也可以採用無異議通過的方式。
---
散會結束時間: 12:02