手动搭建一个net转发

#!/bin/bash

ip netns delete ns1
ip netns add ns1  # 创建新 namespace ns1

ip link add veth0 type veth peer name veth1  # 创建一对veth pair
ip link set veth0 netns ns1  # 将端口 veth0 接入namespace ns1 中 

ip netns list
ip netns ns1 exec ifconfig -a

ip addr add 10.100.1.1/24 dev veth1  # 给 veth1 端口指定 IP、子网掩码、广播域
ip link set veth1 up  # veth1 启用
ip netns exec ns1 ip addr add
10.100.1.2/24 dev veth0 # 给命名空间 ns1 中的端口veth0指定IP、子网掩码、广播域 ip netns exec ns1 ip link set veth0 up # 启用命名空间ns1 中的端口veth0 ip netns exec ns1 ip addr show # 和ip ad一样列出网络接口 ip netns exec ns1 ip route add default via 10.100.1.1 # 给命名空间 ns1 中设置路由规则下一跳地址设为物理机上接的网口的IP ip netns exec ns1 ip route show # 展示 ns1 上的路由规则 ip netns exec ns1 ping 10.100.1.1 -c 4 # ping 物理机上的veth1的IPecho 1 > /proc/sys/net/ipv4/ip_forward # 开启物理机的 ip forwarding 功能 iptables -P FORWARD DROP iptables -F FORWARD iptables -t nat -F iptables -t nat -A POSTROUTING -s 10.100.1.0/255.255.255.0 -o ens160 -j MASQUERADE # ens160为物理机上的可通外网的网卡 #Allow forwarding iptables -A FORWARD -i ens160 -o veth1 -j ACCEPT iptables -A FORWARD -o ens160 -i veth1 -j ACCEPT iptables -L -n # show the iptables of filter iptables -t nat -L -n # show the iptables of nat

 

 

 

 


posted @ 2023-02-21 00:28  aaron_agu  阅读(107)  评论(0编辑  收藏  举报