- เริ่มกันเลยกับคำสั่งแรก คำสั่งเอาไว้ลบ default route
ip route del 0.0.0.0/1 via 10.144.15.100
ip route del default via 192.168.1.1
2. คำสั่งเพิ่ม default route ( แก้ add เป็น del ได้ )
route add default gw 192.168.3.4 dev eth0
route add -net default gw 192.168.3.4 netmask 0.0.0.0 dev eth0 metric 1
3. คำสั่งเพิ่ม static route แบบทั้ง class และ single host ( แก้ add เป็น del ได้ )
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.4.2
route add -host 192.168.2.10 gw 192.168.4.3
4. คำสั่งล้าง IP ออกจาก interface
ip addr flush dev eth0
5. คำสั่ง เพิ่ม/ลบ IP ออกจาก Interface กรณีไม่อยากล้างออกทั้งหมด
ip addr add 192.168.5.100/24 dev eth0
ip addr del 192.168.5.100/24 dev eth0
6. คำสั่งเพิ่ม macvlan ลิ้งเข้ากับ interface
ip link add mymacvlan1 link eth0 type macvlan mode bridge
7. คำสั่งสั่ง start interface
ip link set mymacvlan1 up
8. คำสั่ง iptables แก้ MTU กรณีใช้ VPN Share internet
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
9. คำสั่งเพิ่ม net namespace
ip netns add myns1
10. คำสั่งแสดงรายการ namespace
ip netns list
ip netns show
11. เข้าไปจัดการ namespace คล้าย ๆ docker
ip netns exec myns1 bash
ip netns exec myns1 ip a
12. คำสั่งสร้าง veth เป็นคำสั่งสร้าง interface ขึ้นมา 2 อันผูกกันไว้ เหมือนสายแลนในระบบ เอาไว้เชื่อม port ที่ต้องการ
ตัวอย่างคือ veth0 ผูกกับ veth1
ip link add veth0 type veth peer name veth1
13. คำสั่ง set interface เข้า namespace (กรณีต้องการเอาออกจาก namespace ให้ exec เข้าไป ระบุ netns 1)
ip link set veth1 netns myns1
ip netns exec myns1 ip link set veth1 netns 1
14. คำสั่ง set bridge master
ip link set dev eth1 master br0
ip link set dev eth2 master br0
15. คำสั่ง dhcp renew
dhclient -v -r eth0
dhclient -v eth0
เอกสารเพิ่มเติม
- อธิบาย virtual interface แบบต่าง ๆ
https://developers.redhat.com/blog/2018/10/22/introduction-to-linux-interfaces-for-virtual-networking#macvtap_ipvtap
2. เปรียบเทียบ ระหว่าง Macvlan and IPvlan
https://sreeninet.wordpress.com/2016/05/29/macvlan-and-ipvlan/
3. ทำความเข้าใจเกี่ยวกับ Linux routing (wg-quick)
https://ro-che.info/articles/2021-02-27-linux-routing
4. คอนเซ็ป wireguard client ที่ไม่ยิ่งกับ route table ของระบบ
https://www..com/netns/#the-new-namespace-solution
5. Network Namespace and iptables
http://fosshelp.blogspot.com/2014/07/create-network-namespace-iptables-rules.html
http://fosshelp.blogspot.com/2014/07/iptables-dnat-snat-masquerade-with.html
6. วิธีทำ rc-local service ไว้ใช้งาน
https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd