路由实验及网络设置相关命令

路由设置实验

在我们的现实生活中, 我们处于不同网段的计算机要实现通讯通常要通过路由器进行转接,比如处于10.1.0.0网络的主机要与处于10.4.0.0网络的主机进行通信,我们就要用到路由器并在路由器中设置路由表来实现通信。其实很简单,就是A机器发出的信息要找到对应的出口,经过一个个路由器的转发到达主机B的过程。下面我们就来简单介绍一下

由于我们是在虚拟机上进行试验,没有真正的路由器,那么我们可以把虚拟机模拟成路由器,

过程图如下:

 

准备过程:

准备5个虚拟机,2个作为主机,3个假设为路由器。在虚拟机中添加虚拟网卡 与5个虚拟机相对应。

 

 

这样虚拟机上的准备就完成了,下面对主机IP以及路由器进行配置。

 

相关命令以及配置文件

设置IP的配置文件:/etc/sysconfig/network-scripty/ifcfg-eth0[1]

路由表的设置命令:

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 

举例:route add  -net 10.1.0.0/16 gw 10.2.0.200

route add default gw 10.2.0.201 添加默认路由

也可以写到配置文件中,这样下次开机可有效(不过不建议)/etc/sysconfig/network-scripts/route-IFACE

Centos6】中关闭NetworkManager协议serice NetworkManager stop开机禁止chkconfig NetworkManager off

centos6】中关闭防火墙    servcie iptables stop    chkconfig iptables off

【centos7】中关闭防火墙    systemctl stop firewalld   systemctl stop firewalld

路由器中要开启路由转发   echo 1 > /proc/sys/net/ipv4/ip_forward

抓包命令:tcpdump -i 网卡名 icmp(协议)

 

IP设置:

主机A的地址设置为10.1.0.100/16

路由器R1eth0网卡接口设置为10.1.0.200  eth1网卡接口设置为10.2.0.200

路由器R2eth0网卡接口设置为10.2.0.201  eth1网卡接口设置为10.3.0.200

路由器R3eth0网卡接口设置为10.3.0.201  eth1网卡接口设置为10.4.0.200

主机B的地址设置为10.4.0.100/16


我们先来配置主机AIP vim /etc/sysconfig/network-scripty/ifcfg-eth0

IPADDR=10.1.0.100

PREFIX=16

GATEWAY=10.1.0.200

这里我们只需要一个网卡,可以把其他网卡down掉 或者在虚拟机右下角把不用的网卡断开连接

配置R1

eth0:vmnet11

eth1:vmnet12

关闭NetworkManager协议serice NetworkManager stop开机禁止chkconfig NetworkManager off

关闭防火墙 centos6     chkconfig iptables off    servcie iptables stop

                     centos7   systemctl disable firewalld   systemctl stop firewalld

配置IP vim /etc/sysconfig/network-scripty/ifcfg-eth0[1]

IPADDR=10.1.0.200[10.2.0.200]

PREFIX=16

添加路由表

route add default gw 10.2.0.201

开启路由转发

echo 1 > /proc/sys/net/ipv4/ip_forward

配置R2

eth0:vmnet12(虚拟网卡对应端口)

eth1:vmnet13

关闭NetworkManager协议 关闭防火墙

配置IP vim /etc/sysconfig/network-scripty/ifcfg-eth0[1]

IPADDR=10.2.0.201[10.3.0.200]

PREFIX=16

添加路由表

route add  -net 10.1.0.0/16 gw 10.2.0.200

route add  -net 10.4.0.0/16 gw 10.3.0.201

开启路由转发

echo 1 > /proc/sys/net/ipv4/ip_forward

配置R3

eth0:vmnet13(虚拟网卡对应端口)

eth1:vmnet14

关闭NetworkManager协议 关闭防火墙

配置IP vim /etc/sysconfig/network-scripty/ifcfg-eth0[1]

IPADDR=10.3.0.201[10.4.0.200]

PREFIX=16

添加路由表

route add default gw 10.3.0.200

开启路由转发

echo 1 > /proc/sys/net/ipv4/ip_forward

配置主机B

网卡对应:vmnet14

配置IP vim /etc/sysconfig/network-scripty/ifcfg-eth0

IPADDR=10.4.0.100

PREFIX=16

GATEWAY=10.4.0.200

这里我们只需要一个网卡,可以把其他网卡down掉 或者在虚拟机右下角把不用的网卡断开连接

这里我们的主机IP和路由器的路由表已经设置完成,当然就可以实现通信了


 同时我们在主机B上进行抓包,看有没有收到主机A发的包


这个实验只是简单的模拟了一下不同网络的主机进行通讯的工作机制现实网络中的路由器数量很多,每个路由表上不可能记录每一个路由表的信息,所以现实网络中采用的是路由协议(RIP,IGRP,EIGRP等等 ),采取互相帮助来实现不同网络的通讯。


这一周结束了网络基础设置的学习,补充一下所学的命令和补充的小知识

路由命令:

route -n

route add -net[-host] 192.168.0.100/16 gw 192.168.0.1 dev eth0 增加路由

route add default gw 192.168.0.1 增加默认路由

route del -net 192.168.0.100/16 删除路由

ip route add 192.168.0.100/16 via 192.168.0.1

ip route add default via 192.168.0.1

ip route del 192.168.0.100/16

ip route fiush dev eth0 清空路由表

ip route show|list

写入到文件中 /etc/sysconfig/network-scripts/route-eth0

格式示例:10.0.0.0/8 via 172.16.0.1

 

netstat命令  显示网络连接:

-t tcp协议相关

-u udp协议相关

-a 所有状态

-l 处于监听状态

-n 以数字显示IP和端口

-w raw socket相关

-e 扩展格式

-p 显示相关进程及PID

常用组合:-tan -uan -tnl -unl

显示路由表:netstat -nr

显示接口统计数据:

netstat -i

netstat -Ieth0 单独显示

ifconfig -s eth0 作用相同

 

ss命令 netstat的更新版

netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息

-t: tcp协议相关

-u: udp协议相关

-w: 裸套接字相关

-x:unix sock相关

-l: listen状态的连接

-a: 所有

-n: 数字格式

-p: 相关的程序及PID

-e: 扩展的信息

-m:内存用量

-o:计时器信息

常用组合: -tan, -tanl, -tanlp, -uan

ss -l 显示本地打开的所有端口

ss -pl 显示每个进程具体打开的socket

ss -t -a 显示所有tcp socket

ss -u -a 显示所有的UDP Socekt

ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接

ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接

ss -s 列出当前socket详细信息

 

ip命令  可作用于3个对象 link addr route

ip addr { add | del } IFADDR dev STRING[label LABEL]:添加地址时指明网卡别名[scope {global|link|host}]:指明作用域 [broadcast ADDRESS]:指明广播地址

网卡别名:

ip addr add 172.16.100.100/16 dev eth0 label eth0:0 添加地址并制定网卡别名

ip addr del 172.16.100.100/16 dev eth0 label eth0:0 删除地址

ip addr flush dev eth0 label eth0:0 清楚网卡别名eth0:0中的地址

ifconfig命令:ifconfig eth0:0 192.168.0.100/24 up[down]

设备别名中必须使用 静态联网(即手动制定IP地址) linux上可以把物理网卡设定为DHCP 结合使用一个自动获取 一个手动指令的地址

 

主机名:

cat /etc/centos-release 或者在 /eyc/sysconfig/network 下设置主机名 然后 hostname centos6.9生效【centos6】

cat /etc/hostname 创建并修改文件并生效 hostnamectl set-hostname centos7.3  hostnamectl status显示主机名信息【centos7】

 

bonding工作模式:

实现两个网卡公用一个IP地址 增加吞吐性能 共有7中模式 其中 mode0(balance-rr) mode1(active-backup) mode3(broadcast)比较常用

公用一个MAC地址

创建bonding设备的配置文件

 vim  /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none  

BONDING_OPTS= “miimon=100 mode=0”【centos6】

然后配置ifcfg-eth0[1] MASTER=bond0 SLAVE=yes 重启网络服务

查看bond0状态:/proc/net/bonding/bond0

删除bond0   ifconfig bond0 down    rmmod bonding

 

 

网卡工作在内核上,bond物理网卡虽然没加到bond下,但是也能ping通

ip route add 2.2.2.2/16 via 2.2.0.1

 

网卡名变更

CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化

更改配置文件  vim /etc/udev/rules.d/70-persistent-net.rules

ethtool -i eth# 查看网卡驱动

rmmod e1000 卸载网卡驱动

modprobe e1000 装载网卡驱动

CentOS 7使用基于硬件,设备拓扑和设置类型命名:

使用传统命名方式:

编辑   /etc/default/grub配置文件 GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"

或:修改/boot/grub2/grub.cfg 为grub2生成其配置文件

     grub2-mkconfig -o /etc/grub2.cfg  

      重启系统

 

nmcli命令:可以工作层 device connection 【centos7】

 

修改IP地址等属性:nmcli connection modify eth0 +|-iPv4.addresses [ipv4.method manual|auto][ipv4.gateway]……

nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0

修改连接配置后,需要重新加载配置   

nmcli con reload  禁用网卡,访止被自动激活 nmcli dev dis eth0

显示网络接口属性

 

nmcli device eth0

创建新连接default,IP自动通过dhcp获取 nmcli con add con-name default type Ethernet ifname eth0

删除连接  nmcli con del default

 

nmcli实现bonding:

添加bonding接口: nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup

添加从属接口: nmcli con add type bond-slave ifname eth0 master mybond0

要启动绑定,则必须首先启动从属接口 nmcli con up bond-slave-eth0  

启动绑定 nmcli con up mybond0

 

 

DNS设置,存放在/etc/resolv.conf文件中 host dig nslookup  host解析的优先级要高于DNS

PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取。等价于下面命令:nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

 

 

网络组Network Teaming

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量

网络组由内核驱动和teamd守护进程实现

多种方式runner broadcast(广播)roundrobin(轮循)activebackup(主备)loadbalance(平衡)

创建网络组接口:nmcli con add type team con-name 连接名 ifname 接口名 [config JSON]

JSON 指定runner方式 格式:'{"runner": {"name": "METHOD"}} 举例 '{"runner":{"name":"broadcast"}}'

创建port接口

nmcli con add type team-slave con-name 连接名 ifname 网络接口名 master 网络组接口名

nmcli con add con-name team0-eth1 type teamslave ifname eth1 master team0

使用nmcli命令一步建立网络组:

nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'ipv4.method manual iPv4.addresses '172.17.0.150/16'

nmcli con up team0

nmcli con up team0-eth1

nmcli con up team0-eth2

teamdctl team0 state

配置文件为/etc/sysconfig/network-scripts/ifcfg-team0

DEVICE=team0

DEVICETYPE=Team

TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"

BOOTPROTO=none

IPADDR0=172.25.5.100

PREFIX0=24

NAME=team0

删除网络组

nmcli connection down team0

nmcli connectioni delete team0-eth0

nmcli connectioni delete team0-eth1

或者直接删除配置文件

 

网桥的设置:

使用nmcli命令一步设置网桥:

nmcli con add type bridge con-name br0 ifname br0 ipv4.method manual ipv4.addresses 172.16.0.6/16

nmcli con add type bridge-slave con-name br0-port0  ifname eth0 master br0

删除网桥 brctl delbr br0

删除网桥中网卡 brctl delif eth0


 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值