美文网首页
TCP/IP 实验环境搭建三(搭建)

TCP/IP 实验环境搭建三(搭建)

作者: 指尖叹 | 来源:发表于2019-01-15 10:27 被阅读0次
  1. 启动网桥
    ip link set net1 up
    ip link set net2 up
    效果图


    image.png
  2. 创建容器
    docker run --privileged=true --net none --name aix -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name solaris -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name gemini -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name gateway -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name netb -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name sun -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name svr4 -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name bsdi -d hub.c.163.com/public/ubuntu:14.04
    docker run --privileged=true --net none --name slip -d hub.c.163.com/public/ubuntu:14.04
    效果图


    image.png
  3. 将节点加入网络
    ./pipework net1 aix 140.252.1.92/24
    ./pipework net1 solaris 140.252.1.32/24
    ./pipework net1 gemini 140.252.1.11/24
    ./pipework net1 gateway 140.252.1.4/24
    ./pipework net1 netb 140.252.1.183/24

./pipework net2 bsdi 140.252.13.35/27
./pipework net2 sun 140.252.13.33/27
./pipework net2 svr4 140.252.13.34/27

效果图


image.png
  1. bsdi 到 slip 建立P2P 网络
    4.1 创建一个peer 的两个网卡
    ip link add name slipside mtu 1500 type veth peer name bsdiside mtu 1500

效果图


image.png

4.2 把其中一个塞到slip的网络namespace里面
docker inspect '--format={{ .State.Pid }}' slip #获取pid
ln -s /proc/pid/ns/net /var/run/netns/pid
ip link set slipside netns pid

效果图


image.png

4.3 同理把另一个塞到bsdi的网络的namespace里面


image.png

4.4 给slip这面的网卡添加IP地址
docker exec -it slip ip addr add 140.252.13.65/27 dev slipside
docker exec -it slip ip link set slipside up
效果图


image.png

4.5 给bsdi这面的网卡添加IP地址
docker exec -it bsdi ip addr add 140.252.13.66/27 dev bsdiside
docker exec -it bsdi ip link set bsdiside up

效果图


image.png
  1. 添加网关
    5.1 对于slip来讲,对外访问的默认网关是13.66
    docker exec -it slip ip route add default via 140.252.13.66 dev slipside
    5.2 对于bsdi来讲,对外访问的默认网关13.33
    docker exec -it bsdi ip route add default via 140.252.13.33 dev eth1
    5.3 对于sun来讲,要想访问p2p网络,需要添加下面的路由表
    docker exec -it sun ip route add 140.252.13.64/27 via 140.252.13.35 dev eth1
    5.4 对于svr4来讲,对外访问的默认网关是13.33
    docker exec -it svr4 ip route add default via 140.252.13.33 dev eth1
    5.5 对于svr4来讲,要访问p2p网关,需要添加下面的路由表
    docker exec -it svr4 ip route add 140.252.13.64/27 via 140.252.13.35 dev eth1

这个时候,从slip是可以ping的通下面的所有的节点的
效果图


image.png
  1. 添加 从sun到netb的点对点网络 , 同 步骤4
    ip link add name sunside mtu 1500 type veth peer name netbside mtu 1500
    docker inspect '--format={{ .State.Pid }}' sun #获取 sun 的pid
    ln -s /proc/pid/ns/net /var/run/netns/pid
    ip link set sunside netns pid

docker inspect '--format={{ .State.Pid }}' netb #获取 netb 的pid
ln -s /proc/pid/ns/net /var/run/netns/pid
ip link set netbside netns pid

6.1 给sun里面的网卡添加地址
docker exec -it sun ip addr add 140.252.1.29/24 dev sunside
docker exec -it sun ip link set sunside up

6.2 在sun里面,对外访问的默认路由是1.4
docker exec -it sun ip route add default via 140.252.1.4 dev sunside
6.3 在netb里面,对外访问的默认路由是1.4
docker exec -it netb ip route add default via 140.252.1.4 dev eth1

效果图


image.png
image.png

6.3 在netb里面,p2p这面可以没有IP地址,但是需要配置路由规则,访问到下面的二层网络
docker exec -it netb ip link set netbside up
docker exec -it netb ip route add 140.252.1.29/32 dev netbside
docker exec -it netb ip route add 140.252.13.32/27 via 140.252.1.29 dev netbside
docker exec -it netb ip route add 140.252.13.64/27 via 140.252.1.29 dev netbside

效果图


image.png
image.png
  1. 对于netb,配置arp proxy
    7.1 配置proxy_arp为1
    docker exec -it netb bash -c "echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp"
    docker exec -it netb bash -c "echo 1 > /proc/sys/net/ipv4/conf/netbside/proxy_arp"

7.2 将配置文件添加到docker里面
docker cp proxy-arp.conf netb:/etc/proxy-arp.conf
docker cp proxy-arp netb:/root/proxy-arp
docker exec -it netb chmod +x /root/proxy-arp
docker exec -it netb /root/proxy-arp start

效果图


image.png
  1. 配置上面的二层网络里面所有机器的路由
    8.1 aix 默认外网访问路由是1.4,可以通过下面的路由访问下面的二层网络
    docker exec -it aix ip route add default via 140.252.1.4 dev eth1
    docker exec -it aix ip route add 140.252.13.32/27 via 140.252.1.29 dev eth1
    docker exec -it aix ip route add 140.252.13.64/27 via 140.252.1.29 dev eth1

8.2 solaris
docker exec -it solaris ip route add default via 140.252.1.4 dev eth1
docker exec -it solaris ip route add 140.252.13.32/27 via 140.252.1.29 dev eth1
docker exec -it solaris ip route add 140.252.13.64/27 via 140.252.1.29 dev eth1

8.3 gemini
docker exec -it gemini ip route add default via 140.252.1.4 dev eth1
docker exec -it gemini ip route add 140.252.13.32/27 via 140.252.1.29 dev eth1
docker exec -it gemini ip route add 140.252.13.64/27 via 140.252.1.29 dev eth1

8.4 gateway
docker exec -it gateway ip route add 140.252.13.32/27 via 140.252.1.29 dev eth1
docker exec -it gateway ip route add 140.252.13.64/27 via 140.252.1.29 dev eth1

效果图


image.png
  1. 配置外网访问
    9.1 创建一个peer的网卡对
    ip link add name gatewayin mtu 1500 type veth peer name gatewayout mtu 1500
    ip addr add 140.252.104.1/24 dev gatewayout
    ip link set gatewayout up

9.2 一面塞到gateway的网络的namespace里面
docker inspect '--format={{ .State.Pid }}' gateway #获取 gateway pid
ln -s /proc/pid/ns/net /var/run/netns/pid
ip link set gatewayin netns pid

9.3 给gateway里面的网卡添加地址
docker exec -it gateway ip addr add 140.252.104.2/24 dev gatewayin
docker exec -it gateway ip link set gatewayin up

9.4 在gateway里面,对外访问的默认路由是140.252.104.1/24
docker exec -it gateway ip route add default via 140.252.104.1 dev gatewayin

效果图


image.png

9.5 设置NAT 转换, (ens33 本地网卡)
iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
ip route add 140.252.13.32/27 via 140.252.104.2 dev gatewayout
ip route add 140.252.13.64/27 via 140.252.104.2 dev gatewayout
ip route add 140.252.1.0/24 via 140.252.104.2 dev gatewayout

终极效果, 节点所有网络都可以互相通, 并都可以访问外网(若果不能访问外网,请确认主机是否打开IP 转发功能)


image.png

相关文章

网友评论

      本文标题:TCP/IP 实验环境搭建三(搭建)

      本文链接:https://www.haomeiwen.com/subject/jzledqtx.html