searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

网桥模式实现命名空间连通

2024-06-25 09:47:20
5
0
### 创建网桥: 
 
brctl addbr br0
ip link set br0 up
ip addr add 192.168.1.254/24 dev br0
ip addr add 2000::2001:0:0:0/64 dev br0
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -o br0 -j MASQUERADE
iptables -A FORWARD -i ens33 -o br0 -j ACCEPT
iptables -A FORWARD -o ens33 -i br0 -j ACCEPT
 
### 创建网络命名空间:
 
#! /bin/sh
if [ $# -ne 1 ]; then
    echo "Usage: $0 <num>"
    exit 1
fi
 
 
if [[ $i -gt 99 ]]; then
    echo "Usage: $0 <num>, num <= 99"
    exit 1
fi
 
 
ip netns | grep pe |awk '{print $1}'|xargs -I {} ip netns delete {}
sleep 1
echo "create $1 pe...."
for ((i=1; i<=$1; i++))
do
    ip netns add pe$i
    ip netns exec pe$i sysctl -w net.ipv4.ip_forward=1
    ip netns exec pe$i sysctl -w net.ipv4.conf.all.rp_filter=0
    ip netns exec pe$i sysctl -w net.ipv6.conf.all.forwarding=1
    ip netns exec pe$i sysctl -w net.ipv6.conf.all.seg6_enabled=1
    ip netns exec pe$i sysctl -w net.ipv4.conf.default.rp_filter=0
    ip netns exec pe$i sysctl -w net.ipv6.conf.default.forwarding=1
    ip netns exec pe$i sysctl -w net.ipv6.conf.default.seg6_enabled=1
    ip netns exec pe$i sysctl -w net.ipv4.conf.lo.rp_filter=0
    ip netns exec pe$i sysctl -w net.ipv6.conf.lo.forwarding=1
    ip netns exec pe$i sysctl -w net.ipv6.conf.lo.seg6_enabled=1
    ip netns exec pe$i sysctl -w net.vrf.strict_mode=1
    ip link add veth-pe$i type veth peer name eth0 netns pe$i
    ip netns exec pe$i ip addr add 192.168.1.$i/24 dev eth0
    fmt_ipv6=$(printf "2000::20%02d:1:1:1/64" $i)
    ip netns exec pe$i ip addr add $fmt_ipv6 dev eth0
    ip netns exec pe$i ip link set eth0 up
    ip netns exec pe$i ip link set lo up
    ip netns exec pe$i ip route add default via 192.168.1.254
    brctl addif br0 veth-pe$i
    ip link set veth-pe$i up
done
0条评论
作者已关闭评论
y****n
4文章数
0粉丝数
y****n
4 文章 | 0 粉丝
y****n
4文章数
0粉丝数
y****n
4 文章 | 0 粉丝
原创

网桥模式实现命名空间连通

2024-06-25 09:47:20
5
0
### 创建网桥: 
 
brctl addbr br0
ip link set br0 up
ip addr add 192.168.1.254/24 dev br0
ip addr add 2000::2001:0:0:0/64 dev br0
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -o br0 -j MASQUERADE
iptables -A FORWARD -i ens33 -o br0 -j ACCEPT
iptables -A FORWARD -o ens33 -i br0 -j ACCEPT
 
### 创建网络命名空间:
 
#! /bin/sh
if [ $# -ne 1 ]; then
    echo "Usage: $0 <num>"
    exit 1
fi
 
 
if [[ $i -gt 99 ]]; then
    echo "Usage: $0 <num>, num <= 99"
    exit 1
fi
 
 
ip netns | grep pe |awk '{print $1}'|xargs -I {} ip netns delete {}
sleep 1
echo "create $1 pe...."
for ((i=1; i<=$1; i++))
do
    ip netns add pe$i
    ip netns exec pe$i sysctl -w net.ipv4.ip_forward=1
    ip netns exec pe$i sysctl -w net.ipv4.conf.all.rp_filter=0
    ip netns exec pe$i sysctl -w net.ipv6.conf.all.forwarding=1
    ip netns exec pe$i sysctl -w net.ipv6.conf.all.seg6_enabled=1
    ip netns exec pe$i sysctl -w net.ipv4.conf.default.rp_filter=0
    ip netns exec pe$i sysctl -w net.ipv6.conf.default.forwarding=1
    ip netns exec pe$i sysctl -w net.ipv6.conf.default.seg6_enabled=1
    ip netns exec pe$i sysctl -w net.ipv4.conf.lo.rp_filter=0
    ip netns exec pe$i sysctl -w net.ipv6.conf.lo.forwarding=1
    ip netns exec pe$i sysctl -w net.ipv6.conf.lo.seg6_enabled=1
    ip netns exec pe$i sysctl -w net.vrf.strict_mode=1
    ip link add veth-pe$i type veth peer name eth0 netns pe$i
    ip netns exec pe$i ip addr add 192.168.1.$i/24 dev eth0
    fmt_ipv6=$(printf "2000::20%02d:1:1:1/64" $i)
    ip netns exec pe$i ip addr add $fmt_ipv6 dev eth0
    ip netns exec pe$i ip link set eth0 up
    ip netns exec pe$i ip link set lo up
    ip netns exec pe$i ip route add default via 192.168.1.254
    brctl addif br0 veth-pe$i
    ip link set veth-pe$i up
done
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0