美文网首页
3台服务器互通vxlan

3台服务器互通vxlan

作者: 魔童转世 | 来源:发表于2019-12-19 14:41 被阅读0次

    开机启动执行脚本

    开机启动脚本有很多种方法我选择在/etc/profile.d/下面建立aa.sh脚本,因为centeros、unbantu通用
    注意,此方法开机启动默认的跟路径是/root 建议aa.sh脚本里的文件全部带上全路径

    /etc/profile.d/aa.sh
    chmod -R 777 aa.sh
    

    通用代码

    修改网卡MTU 
    ifconfig eth0 mtu 1500   (确保统一MTU值  不影响上网等)
    设置Vlan标记  (不设置的话 就只能写数字 不能写vx224这个格式) 每个机器都需要设置 每个机器都需要设置 每个机器都需要设置 
    echo '224 vx224' >> /etc/iproute2/rt_tables
    开启路由转发  (三台机器都需要开启路由转发) 
    echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf  
    sysctl -p
    

    A 机器

    ip link add vxlan224 type vxlan id 224 remote 180.xx.xx.73 dstport xx dev eth0  创建对接B机器的vxlan
    ip link set vxlan224 up        启用vxlan网卡
    ip addr add 10.11.224.1/24 dev vxlan224     配置vxlan IP
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 设置IP伪装跟ROS的一样 来实现NAT的上网
    注释 224可以批量替换为账户的id 180.xx.xx.73(B机器中转服务器) 4001(B机器端口可以设置为4加账户)上面信息就可以理解为
    用户224通过中转服务器180.xx.xx.73的远程端口4001通讯实现转发
    

    B机器

    B机器第一步 互联A机器
    ip link add vxlan224 type vxlan id 224 remote xx.xx.xx.xx dstport xx dev eth0  创建对接A机器的vxlan
    ip link set vxlan224 up 启用vxlan网卡
    ip addr add 10.11.224.254/24 dev vxlan224  配置vxlan IP
    sudo iptables -t nat -A POSTROUTING -o vxlan224 -j MASQUERADE 设置IP伪装
    sudo ip rule add from 10.11.224.254 table vx224  设置路由规则
    sudo ip route add default via 10.11.224.1 dev vxlan224 src 10.11.224.254 table vx224  在规则中设置默认路由表
    ip rule add from 172.0.1.161 table vx224 设置路由规则
    注释:224同A机器可以批量替换 xx.xx.xx.xx 4001 是A机器地址和端口  172.0.1.161 是账户分配的IP
    

    C机器

    B机器第二部  互联C机器(设置一次即可 一次即可 一次即可 后续再加A机器无需设置)
    ip link add vxlan1 type vxlan id 1 remote xx.xx.x.x dstport xx dev eth0创建对接C机器的vxlan
    ip link set vxlan1 up 启用vxlan网卡 配置vxlan IP
    ip addr add 11.11.111.1/24 dev vxlan1 设置路由规则 (IP网段和C机器通讯 建议 111可修改 一组机器b.c机器一个网段)
    ip route add 172.0.0.0/16 via 11.11.111.2 设置静态路由 设置静态路由 设置静态路由 
    

    删除所有vxlan 脚本

    TYPES=(vxlan)
    
    iface="$1"
    
    for type in "${TYPES[@]}"; do
      ip link show type "${type}" | grep -E '^[0-9]+:' | cut -d ':' -f 2 | sed 's|^[[:space:]]*||' | while read _if; do
        echo "${_if}:${type}"
        ip link del ${_if}
      done | grep "^${iface}"
    done
    

    删除所有iptables

    iptables -t nat -F
    

    删除未指定的vxlan

    TYPES=(vxlan)
    iface="$1"
    allvxlans=""
    for type in "${TYPES[@]}"; do
      ip link show type "${type}" | grep -E '^[0-9]+:' | cut -d ':' -f 2 | sed 's|^[[:space:]]*||' | while read _if; 
      do
        echo "${_if}:${type}"
        result=$(echo $allvxlans | grep "${_if}")
        if [[ "$result" == "" ]];then
            ip link del ${_if}
             sudo iptables -t nat -D POSTROUTING -o ${_if} -j MASQUERADE
             ip rule del table ${_if}
             ip rule del table ${_if} 
        fi
      done | grep "^${iface}"
    done
    

    相关文章

      网友评论

          本文标题:3台服务器互通vxlan

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