首页 > 技术文章 > 网桥实现及网络配置命令

weilanxuesre 2022-02-28 22:17 原文

一.网桥

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

1.方法一:

创建一个网桥(CentOS7)

root@centos7 ~]# brctl addbr br0

查看网桥信息

[root@centos7 ~]# brctl show

添加网桥中网卡

brctl addif br0 eth0
brctl addif br0 eth1

因为系统默认创建的br0是关闭的所以要打开:

ifconfig br0 up

2.方法二nmcli实现网桥:

创建一个网桥:

nmcli connection add type bridge con-name br0 ifname br0

配置网桥

nmcli connection modify br0 ipv4.addresses 192.168.0.7/24 ipv4.method manual

将网卡加入网桥

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

启用网桥并查看状态

nmcli connection up br0
nmcli connection up br0-eth0
[root@centos7 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c295df21e       yes             eth0

 

二。网络配置相关命令

1.ip命令

ip命令可以用于网络信息显示和管理相关的操作,将来会替代掉ifconfig。

1)ip命令的基本介绍

ip命令有很多子命令:

[root@localhost ~]# ip --help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filename
where  OBJECT := { address | addrlabel | fou | help | ila | l2tp | link |
                   macsec | maddress | monitor | mptcp | mroute | mrule |
                   neighbor | neighbour | netconf | netns | nexthop | ntable |
                   ntbl | route | rule | sr | tap | tcpmetrics |
                   token | tunnel | tuntap | vrf | xfrm }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -h[uman-readable] | -iec | -j[son] | -p[retty] |
                    -f[amily] { inet | inet6 | mpls | bridge | link } |
                    -4 | -6 | -I | -D | -M | -B | -0 |
                    -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                    -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                    -rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
                    -c[olor]}

OBJECT所列出的即是它所支持的子命令,我们一般只用link、route、、addr。

link:和接口相关的管理操作,主要是操作链路层信息

addr:和ip地址相关的管理操作

route:和路由相关的管理操作

使用ip OBJECT help可以获取到该object的语法帮助,例如:

[root@localhost ~]# ip addr help
Usage: ip address {add|change|replace} IFADDR dev IFNAME [ LIFETIME ]
                                                      [ CONFFLAG-LIST ]
       ip address del IFADDR dev IFNAME [mngtmpaddr]
       ip address {save|flush} [ dev IFNAME ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label LABEL ] [up]
       ip address [ show [ dev IFNAME ] [ scope SCOPE-ID ] [ master DEVICE ]
                         [ type TYPE ] [ to PREFIX ] [ FLAG-LIST ]
                         [ label LABEL ] [up] [ vrf NAME ] ]
       ip address {showdump|restore}
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label IFNAME ] [ scope SCOPE-ID ] [ metric METRIC ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           [-]tentative | [-]deprecated | [-]dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad | mngtmpaddr | noprefixroute | autojoin ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS
TYPE := { bareudp | bond | bond_slave | bridge | bridge_slave |
          dummy | erspan | geneve | gre | gretap | ifb |
          ip6erspan | ip6gre | ip6gretap | ip6tnl |
          ipip | ipoib | ipvlan | ipvtap |
          macsec | macvlan | macvtap |
          netdevsim | nlmon | rmnet | sit | team | team_slave |
          vcan | veth | vlan | vrf | vti | vxcan | vxlan | xfrm }

在ip命令行下,任何object都可以写全名,也可以写其缩写名,例如address可以简写为addr,也可以简写为一个字母a。

2)ip addr

ip addr用于管理网卡的IP地址。

查看ip地址,语法:

ip addr show

 

 配置添加或删除接口ip地址,语法格式:

ip addr add|del IP/NETMASK dev IFACE [lable LABEL]

说明:

  add:添加地址

  del:删除地址

  IP/NETMASK:为设定的ip地址和子网掩码

  IFACE:指定接口设备名称

  LABEL:添加地址时指明网卡别名

范例:查看所有接口IP地址(两种以上)。

ip addr show
ip addr s
ip a
ip a s

范例:查看指定接口ip地址

ip a s eth0

配置eth0接口地址为9.9.9.9/24

ip addr add 9.9.9.9/24 dev eth0

添加eth0的别名为eth0:0地址为6.6.6.6/24

ip addr add 6.6.6.6/24 dev eth0 label eth0:0

3)ip route

ip route用于管理路由,支持查看路由、添加路由、删除路由、备份和恢复路由等。

添加和删除路由,语法:

ip route {add|del} TARGET via GW

说明:

  add:添加路由

  del:删除路由

  TARGET:路由目标:可以是主机路由的ip,也可以是网络路由NETWORK/MASK

  GW:网关

添加默认路由,语法:

ip route add default via GW dev IFACE

查看路由命令,语法:

ip route show|list

清空路由表,语法格式如下:

ip route flush [dev IFACE]

备份和恢复路由表,语法格式如下:

ip route save > file
ip route restore < file

以下是ip route 的一些用法示例:

范例:添加网络路由192.168.0.0/24,下一跳是172.16.0.1

ip route add 192.168.0.0/24 via 172.16.0.1

范例:添加主机路由193.168.244.128,下一跳是172.16.0.1

ip route add 193.168.244.128 via 172.16.0.1

或显示指定掩码(主机路由的掩码是32位)

ip route add 193.168.244.128/32 via 172.16.0.1

范例:显示路由信息

ip route show

范例:添加网关为172.16.0.1

ip route add default via 172.16.0.1

范例:删除路由192.168.1.13

ip route del 192.168.1.13

范例:清空eth0接口的路由

ip route flush dev eth0

注意:如果不指定清空的哪个接口,则清空所有路由表记录。

范例:删除下一跳为192.168.1.70的路由。

ip route flush via 192.168.1.70

范例:删除目标为172.168.16.0/16网段的路由

ip route flush 172.168.16.0/16

4)ip link

ip link用于查看网卡的链路层信息。

查看网络接口信息,语法:

ip link show [DEVICE]

禁用或启用接口,语法:

ip link set DEVICE up | down

范例:激活eth0接口

ip link set eth0 up

范例:查看网络接口信息:

ip link show

 

2.ifconfig命令管理网络接口

配置网络接口,语法如下:

ifconfig [-a][-s][interface]
ifconfig interface option | address ...

说明:

仅执行ifconfig命令,不带任何参数时,表示显示当前激活的接口;

-a:表示显示所有接口配置信息包括状态为down的接口;

-s:显示接口的简短列表,和netstat -i一样;

interface:指定的接口名称,例如eth0;

options:

  up:激活接口

  down:禁用接口

address:

  IP/NETMAST[up]:设定ip地址和掩码(使用掩码前缀格式),up表示激活

  IP  netmask NETMASK:设定ip地址和掩码

范例:配置eth0网卡地址为192.168.93.128/24

ifconfig eth1 192.168.93.128/24 up
ifconfig eth1 192.168.93.128 network 255.255.255.0 up

范例:激活eth0接口

ifconfig eth0 up

范例:临时down掉eth0接口

ifconfig eth0 down

范例:配置eth0网卡别名为eth0:0,ip为192.168.93.255

ifconfig eth0:0 192.168.93.255/24 up

 

 注意:ifconfig命令均是临时的,并没有写到文件中。

 

3.route命令

查看路由表,语法格式:

route -n

添加主机路由或网段路由,语法格式:

route add [-net | -host] target [netmask] gw GW

说明:

  -net:表示添加网络路由

  -host:表示添加主机路由

  target:网络地址或主机地址

  netmask:子网掩码

  GW:下一眺,即网关,必须为能到达

添加默认路由,语法格式如下两种:

route add default gw GW
route add -net 0.0.0.0 netmask NETMASK gw GW

删除路由,格式如下:

route del [-net | host] target [network] gw GW

范例:添加主机路由192.168.93.128,经过网关为192.168.244.128

route add -host 192.168.93.128 gw 192.168.244.128 dev eth0

范例:添加网络路由192.168.0.0,经过网关为192.168.244.128

route add -net 192.168.0.0 gw 192.168.244.128 dev eth0

范例:添加默认路由为192.168.244.128

route add default gw 192.168.244.128

范例:删除主机路由192.168.93.133

route del -host 192.168.93.133

范例:删除网络路由192.168.0.0/24

route del -net 192.168.0.0 netmask 255.255.255.0

 

4.nmcli命令

nmcli是NetworkMAnage提供的网络管理工具。在nmcli中的connection代表一个网络接口,说白了就是网卡,connection需要指定类型,一般为ethernet,即以太网接口,除此还有wife、vlan、bond等类型。

每新增一个connection,都可以称之为connection的配置文件。事实上,,新增connection的是时候,NetworkManage会自动创建一个/etc/sysconfig/network-scripts/ifcfg-NAME的文件。

nmcli命令的用法是:1、查看接口信息;2、查看连接信息;3、启动或停止接口;4、创建连接;5、修改IP地址;6、修改连接是否为自启;7、删除连接;8、配置连接的dns

nmcli用法和示例

启用或禁用指定网卡接口,语法格式为:

nmcli device [disconnect | connect] IFACE

新建和删除connection,语法格式为:

nmcli connection add type ethernet con-name NAME ifname IFACE
nmcli con delete NAME

查看connection配置,语法格式为:

nmcli connection show NAME

激活或down掉connection,语法格式为:

nmcli connection up NAME

范例:启用eth0接口

nmcli device con eth0

范例:新增加一个connection,指定其con-name为eth2-weilan

nmcli con add type bond con-name bond0 ifname bond0

范例:修改eth0-ifcfg后激活它:

nmcli con up eth0-ifcfg

范例:使用reload生效其配置文件

nmcli con reload

范例:删除eth0-a1配置文件

nmcli con delete eth0-a1

 

5.ping命令

ping命令是最基本的网络连通性测试工具之一。它通过发送ICMP协议来探测目标主机是否可达。

语法格式如下:

ping [OPTION] destination

选项和参数说明:

-c #:发送ping包的个数,#表示一个数值;

w #:限定ping命令超时时长,#表示一个数字;

-W #:一次ping操作中,等待对方响应的超时时长,#表示一个数值;

-s #:指明ping包报文大小(默认64字节),#表示一个数值;

destination:表示目标地址,可是ip地址,也可以是主机名

推荐阅读