Home linux网络专题 Linux服务器 第 10 章 - 网络设置
第 10 章 - 网络设置

这一章重点在于 Debian 的网络管理。请阅读 来了解一般 GNU/Linux 的网络设置。

为了让 Debian 主机能够访问 Internet,它的网络接口需要被正确的设置。

首先要确认内核支持这个设备,例如以太网卡、无线网卡(Wi-Fi)和调制解调器。为了获得这些支持,你可能需要重新编译内核或者给内核增加模块,如 中描述的。

下面说明如何设置网络设备。这些信息都已经针对 Sarge 做了更新,大多数的内容都不适用于早期的发行版本。

10.1 IP 网络设置基础

一个 Debian 主机可能有很多有不同 Internet 协议(IP)地址的网络接口。接口可能有很多种,如:

  • Loopback:lo

  • Ethernet:eth0eth1 ……

  • Wi-Fi:wlan0wlan1wifi0 …… []

  • Token Ring:tr0tr1 ……

  • PPP:ppp0ppp1 ……

其他可用的网络设备还有很多,包括 SLIP、PLIP(串行和并行 IP)、控制某种网络接口流量的“shaper”设备、帧中继、AX.25、X.25、ARCnet 和 LocalTalk。

每个直接连接到 Internet(或任何基于 IP 的网络)的网络接口都用唯一的 32 位的 IP 地址来识别。 [] IP 地址可分为网络地址和主机地址两个部分。如果你拿到一个 IP 地址,把网络地址部分全部设为 1,而主机地址部分全部设为 0,则你将得到这个网络的子网掩码。

传统意义上,IP 网络按照网络地址的长度分为 8、16、24 位三个组别。这个系统缺乏灵活性,浪费了很多 IP 地址,所以现在的 IPv4 网络是由可变长度的网络号来分配的。

               IP addresses                   net mask      length
     Class A   1.0.0.0     - 126.255.255.255  255.0.0.0     =  /8
     Class B   128.0.0.0   - 191.255.255.255  255.255.0.0   = /16
     Class C   192.0.0.0   - 223.255.255.255  255.255.255.0 = /24

IP 地址不在这个范围内的被用作特殊目的。

每一个组别中都有保留给本地网络(LANs)使用的地址范围。这些地址不会和 Internet 上的发生冲突。(同理,如果主机被分配到这类地址的话,这些主机就不能直接访问 Internet,需要通过一个作为代理的网关或网络地址转换服务(NAT)才能访问 Internet。)这些地址范围在下表中列出,包含每个组别中这些地址范围的数目。

               network addresses            length  how many
     Class A   10.x.x.x                     /8      1
     Class B   172.16.x.x -  172.31.x.x     /16     16
     Class C   192.168.0.x - 192.168.255.x  /24     256

IP 网络中 IP 地址的第一个值就是网络本身,最后一个值是该网络的广播地址。 [] 其余所有的 IP 地址都可以分配给网络中的主机。通常 IP 地址的第一个和最后一个都会留给该网络的 Internet 网关。

路由表包含了关于内核如何把 IP 包发送到它们目的地的信息。这儿有一个位于本地网络(LAN),IP 地址为 192.168.50.x/24 的 Debian 主机的路由表。另一台主机 192.168.50.1(也在 LAN 中)是公司网络 172.20.x.x/16 的路由器,主机 192.168.50.254(也在 LAN 中)是负责访问 Internet 的路由器。

     # route
     Kernel IP routing table
     Destination   Gateway        Genmask       Flags Metric Ref Use Iface
     127.0.0.0     *              255.0.0.0     U     0      0     2 lo
     192.168.50.0  *              255.255.255.0 U     0      0   137 eth0
     172.20.0.0    192.168.50.1   255.255.0.0   UG    1      0     7 eth0
     default       192.168.50.254 0.0.0.0       UG    1      0    36 eth0
  • 第一行说明传送目的地是 127.x.x.x 的话,则会通过 lo 回环网络接口来路由。

  • 第二行说明传送目的地是 LAN 的话,则会通过 eth0 来路由。

  • 第三行说明传送目的地是公司网络的话,则会通过 eth0 来路由,最后发送到网关 192.168.50.1

  • 第四行说明传送目的地是 Internet 的话,则会通过 etho 来路由,最后发送到网关 192.168.50.254

路由表中的 IP 地址也可以用名称表示,这些名称从 /etc/networks 或通过 resolver(C Library)来获得。

除了路由之外,内核能实现网络地址转换(NAT)、流量控制和包过滤。

参阅 和 来了解背后运行的原理。

10.2 底层网络设置

GNU/Linux 上传统的底层网络设置工具是 ifconfig 和 route,它们在 net-tools 这个软件包中。目前这些工具被软将包 iproute 中的 ip 代替。ip 可以在 Linux 2.2 或更新的内核上运行,有着比老的工具更好的兼容性。然而,这些传统的设置工具还是能用的而且大家也更加熟悉。

10.2.1 底层网络设置 – ifconfig 和 route

下面演示如何把网络接口 eth0 的 IP 地址从 192.168.0.3 改为 192.168.0.111;设置 eth0 的路由,通过 192.168.0.1 访问 10.0.0.0 这个网络。 执行 ifconfi 和 route 时不带网络接口参数,则显示所有网络接口和路由的现状。

     # ifconfig
     eth0 Link encap:Ethernet  HWaddr 08:00:46:7A:02:B0
          inet addr:192.168.0.3  Bcast:192.168.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:23363 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21798 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:13479541 (12.8 MiB)  TX bytes:20262643 (19.3 MiB)
          Interrupt:9
     
     lo   Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:230172 errors:0 dropped:0 overruns:0 frame:0
          TX packets:230172 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:22685256 (21.6 MiB)  TX bytes:22685256 (21.6 MiB)
     # route
     Kernel IP routing table
     Destination  Gateway      Genmask          Flags Metric Ref Use Iface
     192.168.0.0  *            255.255.0.0      U     0      0     0 eth0
     default      192.168.0.1  255.255.255.255  UG    0      0     0 eth0

首先我们关闭网络接口。

     # ifconfig eth0 inet down
     # ifconfig
     lo   Link encap:Local Loopback
       ... (没有 eth0 这个条目了)
     # route
       ... (没有路由表了)

接下来我们启动 eth0 并给予其新的 IP 地址和路由。

     # ifconfig eth0 inet up 192.168.0.111 
                netmask 255.255.255.0 broadcast 192.168.0.255
     # route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.1 dev eth0

结果是:

     # ifconfig
     eth0 Link encap:Ethernet  HWaddr 08:00:46:7A:02:B0
          inet addr:192.168.0.111  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          ...
     
     lo   Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          ...
     # route
     Kernel IP routing table
     Destination  Gateway      Genmask        Flags Metric Ref Use Iface
     192.168.0.0  *            255.255.255.0  U     0      0     0 eth0
     10.0.0.0     192.168.0.1  255.0.0.0      UG    0      0     0 eth0

更多信息请参阅 ifconfig(8) 和 route(8).

10.2.2 底层网络设置 – ip

ip 和先前的 ifconfig 和 route 有相同功能的命令如下:

  • ip link show

  • ip route list

  • ip link set eth0 down

  • ip addr del dev eth0 local 192.168.0.3

  • ip addr add dev eth0 local 192.168.0.111/24 broadcast 192.168.0.255

  • ip link set eth0 up

  • ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1

运行的时候使用 help 参数,能让 ip 打印出命令的语法�

Tags: 10  网络  设置  



Shares:Google书签Yahoo书签雅虎收藏夹365Key网摘新浪ViVi百度收藏天极网摘diglog和讯网摘POCO网摘YouNote网摘博拉网天下图摘 spurl blogmarksBlinkListredditdiggDel.icio.us

linux