您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 系统/运维 > 正文

Linux网路管理路由和team网络组

发表于:2017-08-08 作者:yaobinbin 来源:

  如何实现把 linux 当路由器来使用,实现不同网段之间的通信访问,这就是今天所要实现的 路由配置
  环境准备: 4 台虚拟机,两台中间两台作为路由器来使用(每天主机两块网卡),其他两台作为终端主机,目的是让不同网段的两台主机之间互相访问 ( 这里在 vmware 里面做的实验,所以网卡的类型都设置为桥接 )
  拓扑图:

  步骤一:将 A 、 D 两台主机配置网关(主机路由),使其两台主机能够与 B 、 C 路由器中的主机互相通信
  A 主机地址配置
  [root@xiao ~]# ip addr add 10.0.0.1/8 dev eth0
  D 主机地址配置
  [root@xiao ~]# ip addr add 192.168.0.1/24 dev eth0
  至此 A 、 D 两台主机的地址就配置完成了,但是此时主机 A 和主机 D 之间是不能通信的,因为从主机 A 到主机 D 不在同一个网段中, A 访问 D 需要经过 C 路由器,而在 B 路由器上没有添加路由能够到达 C 路由器的网络中去,这时候要在 B 主机加条路由使得 B 网络中的主机能够到达 C 网络,站在 B 路由器的角度,路由就应该是经过 B 路由器的 1 接口指向 C 主机的 1 接口地址(临近路由器的近端接口地址)使其 A 和 D 能够通信,书写路由规则, B 路由器要想访问 D 网络, B 路由器当中的主机想要到达 C 网络,就必须,为了避免外界因素的影响,需要将主机 A 、 D 的防火墙关掉
  iptables  -F
  B 路由器路由配置
  [root@xiao ~]#route add  -net 192.168.0.0/24  gw  172.48.0.2 dev eth1
  C  主机地址配置
  [root@xiao ~]#route add  -net 10.0.0.0/8 gw 172.48.0.1 dev eth1
  启用路由功能
  最后两台路由器需要开启转发的功能,才能实现 A 主机与 D 主机的通信,所以需要开始 ip 转发的功能,这里我们临时打开转发功能
  [root@xiao ~]#echo “1” > /proc/sys/net/ipv4/ipv4_forward=1
  测试是否主机间能够通信
  使用 A 主机来 ping A 主机的网关,是否能通,如果能通,在去 C 主机的 1 接口的地址,如果能通,最后 pingD 主机,相反由 D 主机来 ping 向 A 主机,如果当中某个地方不通,就需要排错了,如果 A 主机 ping 它的网关不通,那么就应该是路由条目写错了,检查重新写一个路由条目,如果 A 到 B 是通的,但 A 主机 ping C 主机的 1 口的地址不通,那么就是 B 路由器和 C 路由器的路由条目有问题,依次这样排错,知道网络通为止。
  总结:在网络中,各个路由器的路由条目应该是出去的接口指向临近端路由器接口的 ip 地址,其次,路由器之间应该是一去一回的,你能访问其他的网络,那其他的网络也能访问你
  网络组的实现
  网络组介绍

  网络组:是将多个网卡组合在一起的方法,从而实现容错和提高吞吐量,网络组不同于旧版 bonding 技术,提供了更好的性能和扩展性,网络组由内核驱动和 teamd 守护进程实现
  工作模式
  broadcast                   广播
  roundrobin        轮巡
  active-backup  主备模式
  loadbalance   负载均衡
  lacp ( implemments the 802.3ad Link Aggregatin Control )动态链路聚合
  注意:除了主备模式外,其他几种模式需要在交换机当中设置相关的属性功能,才能启用网络的几种工作模式。
  环境准备:一台 CentOS7 主机,需要两块网卡,这里我给大家配置的是主备模式 , 保证系统当中装了 nmcli 这个网络管理工具,和 teamdctl 这个工具,如果没有安装使用 yum 安装 team 这个包,即可
  创建网络组接口
  [root@xiao ~]# nmcli  connection  add con-name  team0  type team ifname team0  config    ‘{ “runner”: {“name”: “activebackup”}}’
  如果觉得书写 “runner”: {“name”: “activebackup”} 这段有困难时,可以 man teamd.conf 然后这段复制即可
  为网络组接口配置 ip 和设置为静态属性
  [root@xiao ~]# nmcli  connection  modify team0  ipv4.addresses  10.1.252.150
  [root@xiao ~]# nmcli  connection  modify  team0  ipv4.method  manual
  将两个网卡加进网络组当中去
  [root@xiao ~]# nmcli  connection  add con-name  team0-1 type  team-slave  ifname   eno16777736 master team0
  [root@xiao ~]# nmcli  connection  add con-name  team0-1 type team-slave  ifname   eno33554984 master team0
  启用网络组
  [root@xiao ~]# nmcli  connection  up team0
  [root@xiao ~]# nmcli  connection  up team0-1
  [root@xiao ~]# nmcli  connection  up team0-2
  重启网络服务
  systemctl restart network

  查看状态
setup:
runner: activebackup
ports:
eno16777736
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
eno33554984
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port:  eno16777736
  当我 down 掉一块网卡的时候,备用的网卡就会顶上去继续工作
setup:
runner: activebackup
ports:
eno16777736
link watches:
link summary: down
instance[link_watch_0]:
name: ethtool
link: down
down count: 2
eno33554984
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 2
runner:
active port:  eno33554984
  测试
  用其他主机来 ping 网络组的 IP 地址 down 掉其中一块网卡,看查看网路组的状态,是否网卡已经切换,看是否还能继续 ping 网络组