# 計網實驗 Lab 1 縮短網址:https://reurl.cc/OGN5mg ## 進度 - [ 〇 ] 電腦 B 能夠透過 DHCP 伺服器 (A) 取得 IP 位址 - [ 〇 ] 電腦 B 能夠透過 NAT 連結外部網路 - [   ] 用 Wireshark 抓封包(不確定要怎麼抓/抓甚麼) - 正常運作指定程式: 1. [ 〇 ] DNS 2. [ 〇 ] HTTP 3. [ 〇 ] FTP 4. [   ] Telnet(理應可以,但還沒測試) 5. [ 〇 ] ICMP 6. [   ] SSH(理應可以,但還沒測試) <!-- 6. [ ] Skype(還不確定具體要開放的 port 的範圍) - 主要是 443 埠 HTTPS 也在用,不確定開了會不會有問題 --> ## 檔案 - [Ubuntu VMs](https://drive.google.com/drive/folders/1tWPvZQxwVu_yQVFi9ClicGEaC4BzCZsD) - [Shell Script](https://gist.github.com/kinoras/e2e7ae5dfe3b113e733fc08066b25ab7)(不確定可否work) ## 指定程式測試 |程式|Protocol|Port|測試工具| |-|-|-|-| |DNS|TCP/UDP|53|`nslookup`| |HTTP|TCP|80, 8080|`wget`| |FTP|TCP|20:21|Filezilla ([範例伺服器](https://www.sftp.net/public-online-ftp-servers))| |Telnet|TCP|23, 2323|在工作站開一個然後連上去?| |ICMP|ICMP|N/A|`ping`| |SSH|ICMP|22|`ssh`| <!-- |Skype|TCP/UDP|[官方說明](https://support.skype.com/en/faq/FA148/which-ports-need-to-be-open-to-use-skype-on-desktop)|Skype ([安裝方法](https://www.dell.com/support/kbdoc/en-us/000131644/how-do-i-install-the-latest-version-of-skype-on-my-ubuntu-system))| --> ## DHCP/NAT 設定步驟 1. 更改 grub 設定(VM A) - `sudo vim /etc/default/grub` - `GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"` - `sudo update-grub` - 重新開機 2. 安裝並設定 DHCP(VM A) - `sudo apt-get install isc-dhcp-server` - 可能需要 `sudo apt-get update` - `sudo vim /etc/default/isc-dhcp-server` - `INTERFACES="eth1"` - `sudo vim /etc/dhcp/dhcpd.conf` - ``` option domain-name "d98922029.stu"; option domain-name-servers 140.112.254.4, 140.112.17.1; default-lease-time 6000; max-lease-time 72000; subnet 192.168.100.0 netmask 255.255.255.0{ range 192.168.100.20 192.168.100.100; option routers 192.168.100.254; option broadcast-address 192.168.100.255; } ``` 3. 按投影片第 27 至 29 頁變更 VM A 及 VM B 網卡設定。 設定 VM 時,注意兩張網路卡的分別(可用 MAC 位址分辨): |網卡|VirtualBox 設定|Ubuntu 網路設定|方向| |-|-|-|-| |eth0|NAT|DHCP|對外| |eth1|內部網路+允許VM |Manual|對內| 4. 設定 NAT(VM A) - `sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE` - `sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10:80` - `echo "1" > /proc/sys/net/ipv4/ip_forward` - 遇權限問題可改用 `sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"` 5. 啟動 DHCP Server(VM A) - 啟動:`sudo /etc/init.d/isc-dhcp-server start` - 每次開機都要手動啟動 - 停止:`sudo /etc/init.d/isc-dhcp-server stop` - 查看狀態:`sudo /etc/init.d/isc-dhcp-server status`