--- 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? ![](https://hackmd.io/_uploads/SJTYa7RKh.png) 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 ![](https://hackmd.io/_uploads/Bk0peNAtn.png) * How SIP and ALG Interact? * 有可能會導致丟包 * Why Should ALG be Disabled? * ALG 修改數據時可能會出問題 * 因為 ALG 是不規律的修改數據,因此有時反而會使通話品質下降 * Configuring Static NAT for Incoming SIP Calls ![](https://hackmd.io/_uploads/rJJH7V0t3.png) ![](https://hackmd.io/_uploads/H1sBXEAtn.png) ![](https://hackmd.io/_uploads/B1V8mEAF2.png) ![](https://hackmd.io/_uploads/r1CImNRYh.png) --- ### 建議&問題 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=冠伶] ![](https://hackmd.io/_uploads/rJH7br0Fh.png) 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