网卡基本信息查看与配置 路由转发

网卡基本信息查看与配置

lspci | grep -i eth			查看主板上连接的网卡
# 02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
# 02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

mii-tool eth0				查看网卡上连接的网线是否正常
# eth0: negotiated 1000baseT-FD flow-control, link ok
  • ifconfig常用的选项
- 查看网卡的信息
ifconfig						查看正在启用的网卡信息
ifconfig -a						查看全部网卡信息(没有启用的网卡信息也会显示)
ifconfig eth0					只查看eth0的网卡信息

- 网卡的开启与关闭
1. 不重新加载配置文件
ifconfig eth0 down				关闭eth0网卡
ifconfig eth0 up				开启eth0网卡
2. 重新加载配置文件
ifdown eth1				关闭eth1网卡
# Device 'eth1' successfully disconnected.
ifup eth1				开启eth1网卡
# Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)

- 网卡的配置
ifconfig eth1 192.168.80.126			将eth1的IP地址修改成192.168.80.126(临时修改)
ifconfig eth0:0 172.168.50.125/24			设置子端口,同一个网卡配置多个IP地址(临时添加)
ifconfig eth0:0 down					关闭eth0子端口
ifconfig eth1 mtu 2000					设置网卡eth1的最大传输单元为2000(临时修改)
# mtu一般都是搭配交换机使用
  • ifconfig的详细信息
ifconfig eth0
# eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500			
#         inet 192.168.80.100  netmask 255.255.255.0  broadcast 192.168.80.255
#         inet6 fe80::1af5:8729:4b78:31f1  prefixlen 64  scopeid 0x20<link>
#         ether 00:0c:29:ca:a8:27  txqueuelen 1000  (Ethernet)
#         RX packets 1087  bytes 85710 (83.7 KiB)
#         RX errors 0  dropped 0  overruns 0  frame 0
#         TX packets 596  bytes 72847 (71.1 KiB)
#         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
UP(激活状态)	 BROADCAST(支持广播)  RUNNING(正在运行)  MULTICAST(支持多播)
ether 00:0c:29:ca:a8:27(网卡的mac地址)  txqueuelen 1000(网卡的传输队列为1000个包)
RX packets 1087(开机之后累积收了多少个包)  bytes 85710 (83.7 KiB)(收的包总共多少个字节和大小)
errors 0(错误的包)
dropped 0(丢弃的包(crc校验))
overruns 0(溢出的包(缓冲区))
  • ;与&& 的差别
ls;aaaaaa;pwd						;多个命令一起运行,一个命令执行完成不管会不会报错,都会运行下一个命令
# anaconda-ks.cfg
# -bash: aaaaaa: command not found
# /root
ls && aaaaaa && pwd					&&多个命令一起运行,前面一个命令运行完,如果没有报错,继续运行下一个命令,报错即停止
# anaconda-ks.cfg
# -bash: aaaaaa: command not found
  • 网卡配置文件信息
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet				类型=以太网协议
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none			网卡获取IP地址的方式:static(手动配置指定IP) dhcp(动态获取IP) none(根据其他选项决定是动态还是静态)
NM_CONTROLLED=no			如果NetworkManager服务启用,该网卡配置文件也不受该服务管理。通常我们会直接关闭
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=86ad5d60-7c01-4ee5-a7aa-1957e64335a1
DEVICE=eth0
ONBOOT=yes						网络服务启动的时候,网卡是否被激活
IPADDR=192.168.80.100			IP地址
PREFIX=24						子网掩码
GATEWAY=192.168.80.2			网关IP地址
PEERDNS=yes						网卡配置文件的DNS信息是否同步到/etc/resolv.conf
DNS1=114.114.114.114			指定DNS服务器IP
	
NM_CONTROLLED=no			如果NetworkManager服务启用,该网卡配置文件也不受该服务管理。通常我们会直接关闭
systemctl stop NetworkMangaer				关闭NetworkMangaer服务
systemctl disable NetworkMangaer			设置NetworkMangaer服务为开机不启动

企业级部署项目的三套环境

  1. 测试环境 (写好脚本)
  2. staging环境==》与线上一比一的环境 (验证脚本有没有bug)
  3. 线上环境 (直接部署)

路由转发

  • Linux内核处理数据包过程如下

  • 网卡接收到数据后,会产生软硬件中断,把数据读入操作系统内核空间后,对其做路由决策(对比路由策略)。路由决策分为两种情况:

    1. 将数据流入本机用户空间
      在这里插入图片描述
    2. 不进入用户内存空间,直接在内核空间进行转发(路由转发)
      在这里插入图片描述
  • 查看路由表

route -n      			查看当前路由表信息

在这里插入图片描述

Gateway 显示0.0.0.0(默认子网掩码为/24),表示没有下一跳,在交换机内部进行广播。
标志位的三种状态:	  U(正在生效)	  	G(指定的网关)		H(主机路由)
  • 开启Linux主机路由转发功能
- 临时开启
方式1:
echo 1 > /proc/sys/net/ipv4/ip_forward		
方式2:			
sysctl -w net.ipv4.ip_forward=1
# net.ipv4.ip_forward = 1

- 永久开启
vim /etc/sysctl.conf	
	net.ipv4.ip_forward = 1
	
sysctl -p				立即生效	
# net.ipv4.ip_forward = 1
  • 一台Linux主机能够当成路由器使用的三大前提

    1. 必须开启路由转发功能
    2. 对方必须把自己当成网关
    3. 该Linux主机必须有对应的路由转发条目
  • Linux分为3种路由 :

  1. 主机路由 : 子网掩码为32位,直接把范围缩小到最小,就一个IP地址
	添加主机路由  route add -host ip地址/32 dev 网卡名
  1. 网络路由 : 子网掩码小于32位,所包含的地址是一个范围,子网掩码越大所容纳的范围越小
	添加网络路由  route add -net 网段/24 dev 网卡名
  1. 默认路由 : 目标地址为0.0.0.0/0,所包含的范围最大
	添加默认路由  方式一 : route add -net 0.0.0.0/0 dev 网卡名
			     方式二 : route add default dev 网卡名
  • 添加路由指定网关
    指定网关,让网关帮我们做后续的转发,不指定网关则在局域网内进行广播
1. 主机路由
route add -host 192.168.4.7/32 gw 1.1.1.1/24 dev eth0		去往192.168.4.7的包由1.1.1.1/24这个网关通过eth0网卡进行转发		
2. 网络路由
route add -net 192.168.4.0/24 gw 1.1.1.1/24 dev eth0	去往192.168.4.0这个网段的包由1.1.1.1/24这个网关通过eth0网卡进行转发
3. 默认路由
route add default gw 1.1.1.1/24 dev eth0			去往所有IP地址的包(0.0.0.0/0)由1.1.1.1/24这个网关通过eth0网卡进行转发
  • 删除路由命令
	route del -host ip地址/32			删除主机路由
	route del -net ip地址/24				删除网络路由
	route del default					删除默认路由
  • 路由的优先级
    1. 越精确路由优先级越高;子网掩码越大越精确
    2. 主机路由>网络路由>默认路由

实验

  • 网络拓扑图
    在这里插入图片描述
  • 实验环境
  1. 关闭防火墙和selinux
  2. 添加4块网络适配器,模拟4个交换机
  3. 创建4个仅主机模式的虚拟机(无需设置网关),要求连接在同一个交换机之间同一个网段的IP地址可以互相ping通
    第一台虚拟机网卡的IP地址为:1.1.1.8(eth0)
    第二台虚拟机网卡的IP地址为:1.1.1.2(eth0),2.2.2.2(eth1)
    第三台虚拟机的网卡IP地址为:2.2.2.3(eth0),3.3.3.3(eth1)
    第四台虚拟机的网卡IP地址为:3.3.3.4(eth0),4.4.4.3(eth1)
  • 实验要求:所有的虚拟机之间都可以ping通

  • 实验分析:

一台Linux主机能够当成路由器使用的三大前提:
1. 必须开启路由转发功能
2. 对方必须把自己当成网关
3. 该Linux主机必须有对应的路由转发条目

- 添加路由条目可以设置为增加网络路由
  • 实验结果
  • 虚拟机1
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.1.1.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
2.2.2.0         1.1.1.2         255.255.255.0   UG    0      0        0 eth0
3.3.3.0         1.1.1.2         255.255.255.0   UG    0      0        0 eth0
4.4.4.0         1.1.1.2         255.255.255.0   UG    0      0        0 eth0
  • 虚拟机2
echo 1 > /proc/sys/net/ipv4/ip_forward			开启路由转发功能
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.1.1.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
2.2.2.0         0.0.0.0         255.255.255.0   U     101    0        0 eth1
3.3.3.0         2.2.2.3         255.255.255.0   UG    0      0        0 eth1
4.4.4.0         2.2.2.3         255.255.255.0   UG    0      0        0 eth1
  • 虚拟机3
echo 1 > /proc/sys/net/ipv4/ip_forward			开启路由转发功能
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.1.1.0         2.2.2.2         255.255.255.0   UG    0      0        0 eth0
2.2.2.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
3.3.3.0         0.0.0.0         255.255.255.0   U     101    0        0 eth1
4.4.4.0         3.3.3.4         255.255.255.0   UG    0      0        0 eth1
  • 虚拟机4
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.1.1.0         3.3.3.3         255.255.255.0   UG    0      0        0 eth0
2.2.2.0         3.3.3.3         255.255.255.0   UG    0      0        0 eth0
3.3.3.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
4.4.4.0         0.0.0.0         255.255.255.0   U     101    0        0 eth1

路由条目优化

  • 虚拟机1
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         1.1.1.2         0.0.0.0         UG    0      0        0 eth0
1.1.1.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
  • 虚拟机2
 route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         2.2.2.3         0.0.0.0         UG    0      0        0 eth1
1.1.1.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
2.2.2.0         0.0.0.0         255.255.255.0   U     0      0        0 eth1
  • 虚拟机3
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
1.1.1.0         2.2.2.2         255.255.255.0   UG    0      0        0 eth0
2.2.2.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
3.3.3.0         0.0.0.0         255.255.255.0   U     101    0        0 eth1
4.4.4.0         3.3.3.4         255.255.255.0   UG    0      0        0 eth1
  • 虚拟机4
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         3.3.3.3         0.0.0.0         UG    0      0        0 eth0
3.3.3.0         0.0.0.0         255.255.255.0   U     100    0        0 eth0
4.4.4.0         0.0.0.0         255.255.255.0   U     101    0        0 eth1

注意 : 我们做路由条目优化的时候,设置万能IP地址0.0.0.0/0(默认子网掩码为0),千万不要设置成0.0.0.0/24 ! ! !

实验结论

  1. 每台Linux主机一旦配置好网卡的IP地址,系统会默认配置一条路由,路由的Destination(去往什么目标)会设置成网卡(IP)同网段的地址,下一跳会设置成0.0.0.0,也就是说跟本机同网段的IP地址是通过交换机在广播域通过mac地址进行通信的。
  2. 我们可以把Destination(去往什么目标)的地址设置成0.0.0.0。(这就是默认路由,优先级最低!)
    那么我们送往其他所有的IP地址的数据包都由1.1.1.2这个IP地址进行转发。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows上实现网卡IP的路由转发,可以通过以下步骤进行设置: 1. 首先确保计算机上安装了两个以上的网卡,并且它们都已正确连接到相应的网络。 2. 打控制面板,选择“网络和共享中心”。 3. 在网络和共享中心中,选择“更改适配器设置”。 4. 右键单击要进行配置的第一个网卡,选择“属性”。 5. 在属性窗口中,找到并选择“Internet 协议版本 4 (TCP/IPv4)”。 6. 点击“属性”按钮,进入IPv4属性设置。 7. 在IPv4属性设置中,选择“高级”选项。 8. 在高级选项中,取消选择“自动度量”,并手动输入一个较低的度量值。这个度量值将决定路由选择的优先级。 9. 确定并关闭当前窗口。 10. 重复步骤4到步骤9,为第二个网卡进行同样的设置,但在度量值上设置一个更高的值以确保优先级低于第一个网卡。 11. 打命令提示符,运行以下命令以启用IP转发功能: ``` netsh interface ipv4 set interface <第一个网卡的名称> forwarding=enabled netsh interface ipv4 set interface <第二个网卡的名称> forwarding=enabled ``` 12. 完成以上设置后,两个网卡上的IP地址将能够进行路由转发功能。 请注意,以上步骤适用于Windows操作系统,在其他操作系统上的设置可能会有所不同。如果在执行过程中遇到任何问题,建议参考Windows操作系统的相关文档或咨询网络专业人士的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值