练习 25:网络:配置文件,/etc/network/interfaces

原文:Exercise 25. Networking: configuration files, /etc/network/interfaces

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

从命令行配置网络接口是很好的,但现在是时候学习如何让vm1自动配置网络接口。为此,你将了解/etc/network/interfaces配置文件:

  1. user1@vm1:~$ cat /etc/network/interfaces
  2. # This file describes the network interfaces available on your system
  3. # and how to activate them. For more information, see interfaces(5).
  4. # The loopback network interface
  5. #(1) (2)
  6. auto lo
  7. #(3) (4)(5) (6)
  8. iface lo inet loopback
  9. # The primary network interface
  10. #(7) (8)
  11. allow-hotplug eth0
  12. #(9) (10) (11) (12)
  13. iface eth0 inet dhcp

像往常一样,字段及其描述:

字段 描述
(1) 自动配置界面。
(2) 接口名称。
(3) 接口配置的开始
(4) 要配置的接口名称
(5) 此接口使用 TCP/IP 网络,IPv4。
(6) 它是回送接口。默认回送地址将自动分配给它。
(7) 在可用时自动配置接口(请在这里考虑 usb-modem)。
(8) 接口名称。
(9) 接口配置的开始
(10) 要配置的接口名称
(11) 此接口使用 TCP/IP 网络,IPv4。
(12) 此接口通过 DHCP 自动获取其参数。

其他包含网络配置的重要文件,但我们在这里不会碰到他们:

  • /etc/hosts - 操作系统中使用的计算机文件,用于将主机名映射到 IP 地址。hosts文件是一个纯文本文件,通常按照惯例命名为hosts
  • /etc/hostname - 分配给连接到计算机网络的设备的标签,并用于识别各种形式的电子通信设备。
  • /etc/resolv.conf - 各种操作系统中的计算机文件,用于配置域名系统( DNS)解析器库。该文件是纯文本文件,通常由网络管理员或管理系统配置任务的应用创建。resolvconf程序是 linux 机器上的这样的程序,它管理resolv.conf文件。

让我们回忆之前练习的tap0。如果你重新启动vm1, 它就会消失。当然,你可以通过重新输入相关命令来启用它,但是让我们想象一下,你需要在重新启动后自动使用该命令。

现在,你将学习如何使用/etc/network/interfaces文件来配置接口。

这样做

  1. 1: ip a s
  2. 2: sudo vim /etc/network/interfaces

现在将这些东西添加到配置文件末尾:

  1. 3: auto tap0
  2. 4: iface tap0 inet static
  3. 5: address 10.1.1.2
  4. 6: netmask 255.255.255.0
  5. 7: tunctl_user uml-net
  6. 8:
  7. 9: allow-hotplug tap1
  8. 10: iface tap1 inet static
  9. 11: address 10.1.1.3
  10. 12: netmask 255.255.255.0

现在键入:wq<ENTER>并继续:

  1. 13: sudo /etc/init.d/networking start
  2. 14: ip a s
  3. 15: sudo tunctl -t tap1 -u uml-net
  4. 16: ip a s

你会看到什么

  1. user1@vm1:~$ ip a s
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8. link/ether 08:00:27:d4:45:68 brd ff:ff:ff:ff:ff:ff
  9. inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
  10. inet6 fe80::a00:27ff:fed4:4568/64 scope link
  11. valid_lft forever preferred_lft forever
  12. user1@vm1:~$ sudo vim /etc/network/interfaces
  13. # and how to activate them. For more information, see interfaces(5).
  14. # The loopback network interface
  15. auto lo
  16. iface lo inet loopback
  17. # The primary network interface
  18. allow-hotplug eth0
  19. iface eth0 inet dhcp
  20. auto tap0
  21. iface tap0 inet static
  22. address 10.2.2.2
  23. netmask 255.255.255.0
  24. tunctl_user uml-net
  25. allow-hotplug tap1
  26. iface tap1 inet static
  27. address 10.3.3.3
  28. netmask 255.255.255.0
  29. ~
  30. "/etc/network/interfaces" 21L, 457C written 21,1-8 Bot
  31. user1@vm1:~$ sudo /etc/init.d/networking start
  32. Configuring network interfaces...Set 'tap0' persistent and owned by uid 104 done.
  33. user1@vm1:~$ ip a s
  34. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
  35. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  36. inet 127.0.0.1/8 scope host lo
  37. inet6 ::1/128 scope host
  38. valid_lft forever preferred_lft forever
  39. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  40. link/ether 08:00:27:d4:45:68 brd ff:ff:ff:ff:ff:ff
  41. inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
  42. inet6 fe80::a00:27ff:fed4:4568/64 scope link
  43. valid_lft forever preferred_lft forever
  44. 3: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
  45. link/ether 46:63:30:70:b5:21 brd ff:ff:ff:ff:ff:ff
  46. inet 10.2.2.2/24 brd 10.2.2.255 scope global tap0
  47. inet6 fe80::4463:30ff:fe70:b521/64 scope link
  48. valid_lft forever preferred_lft forever
  49. user1@vm1:~$ sudo tunctl -t tap1 -u uml-net
  50. Set 'tap1' persistent and owned by uid 104
  51. user1@vm1:~$ ip a s
  52. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
  53. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  54. inet 127.0.0.1/8 scope host lo
  55. inet6 ::1/128 scope host
  56. valid_lft forever preferred_lft forever
  57. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  58. link/ether 08:00:27:d4:45:68 brd ff:ff:ff:ff:ff:ff
  59. inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
  60. inet6 fe80::a00:27ff:fed4:4568/64 scope link
  61. valid_lft forever preferred_lft forever
  62. 3: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
  63. link/ether 46:63:30:70:b5:21 brd ff:ff:ff:ff:ff:ff
  64. inet 10.2.2.2/24 brd 10.2.2.255 scope global tap0
  65. inet6 fe80::4463:30ff:fe70:b521/64 scope link
  66. valid_lft forever preferred_lft forever
  67. 4: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
  68. link/ether 8a:ed:90:33:93:55 brd ff:ff:ff:ff:ff:ff
  69. inet 10.3.3.3/24 brd 10.3.3.255 scope global tap1
  70. inet6 fe80::88ed:90ff:fe33:9355/64 scope link
  71. valid_lft forever preferred_lft forever
  72. user1@vm1:~$

解释

  1. 打印当前接口配置。
  2. 编辑/etc/network/interfaces
  3. 自动配置tap0
  4. tap0设置以下 IPv4 静态参数。
  5. 将 IP 地址10.2.2.2添加给tap0
  6. 为此 IP 地址指定网络掩码、参数“广播”和“网络”自动 从这个网络掩码导出。
  7. 指定拥有tap0接口的用户。
  8. 由于可读性的空行。
  9. tap1接口出现在系统中时,添加以下参数。
  10. tap1设置以下 IPv4 静态参数。
  11. 将 IP 地址10.3.3.3添加给tap1。
  12. 为此 IP 地址指定网络掩码。
  13. 应用网络配置更改。
  14. 打印当前接口配置。你可以看到tap0被添加到接口列表中。
  15. 添加tap1伪接口。
  16. 打印当前接口配置。你可以看到`/etc/network/interfaces中指定的参数自动应用于它。

附加题

  • 说明如何导出“网络”和“广播”参数。
  • 尝试这个:ping kitty。预期会失败。现在添加一个条目到/etc/hosts,以便你能够成功执行ping