2019/07/05

[Ubuntu] 讓Ubuntu 16.04變成一個Router by IP Forwarding

有時候因為實驗需要,會把Ubuntu當作一個中間站來測試整個網路的Topology,因此就會需要把Ubuntu變成一個轉送的Router。從圖中可以看到原來的網路下,Ping到8.8.8.8的TTL是49。




整體的架構是,本機端透過有線網路與Ubuntu對接,或者中間放一個Router (我是這個case),然後透過打開Ubuntu IP Forwarding的功能,來達到把本機端電腦的封包,透過Ubuntu來傳送與接收。先把Ubuntu的enp1s0透過靜態IP (Static IP)設定後,接著還要做以下兩個步驟:

1. 打開IPv4的forwarding功能
$ echo 1 > /proc/sys/net/ipv4/ip_forward

2. 設定防火牆Forwarding rule
$ sudo iptables -t nat -A POSTROUTING -o wlo1 -j MASQUERADE
$ sudo iptables -A FORWARD -i wlo1 -o enp1s0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A FORWARD -i enp1s0 -o wlo1 -j ACCEPT

最後應該就可以看到從本機端Ping 8.8.8.8的TTL為47 (因為我在Ubuntu 16.04與本機端多放了一個Router,因此TTL是-2)。

參考
[1] https://help.ubuntu.com/community/Router
[2] https://askubuntu.com/questions/95199/two-network-cards-and-ip-forwarding

沒有留言:

張貼留言