支持vxlan的服务器网卡,3台服务器互通vxlan

开机启动执行脚本

开机启动脚本有很多种方法我选择在/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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值