Изменения в /etc/network/interfaces игнорируются и восстанавливаются при перезагрузке

Изменения в /etc/network/interfaces игнорируются и восстанавливаются при перезагрузке

Я хотел настроить виртуальную машину по этой инструкции:http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-lenny-server

Я дошел до того, что мне нужно изменить файл интерфейсов, который выглядит вот так:

auto lo
iface lo inet loopback

auto  eth0
iface eth0 inet static
      address   176.9.XXX.XXX
      netmask   255.255.255.255
      pointopoint   176.9.XXX.XXX
      gateway   176.9.XXX.XXX

И изменил это на это:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
    address   176.9.XXX.XXX
    netmask   255.255.255.255
    pointopoint   176.9.XXX.XXX
    gateway   176.9.XXX.XXX
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

Затем я сделал: /etc/init.d/networking restart, но мой вывод ifconfig остался прежним, и когда я перезагрузил свой сервер, файл интерфейса выглядит так же, как и раньше. Почему это происходит?

ifconfig:

eth0      Link encap:Ethernet  HWaddr 00:18:51:XX:XX:XX
          inet addr:176.9.XXX.XXX  Bcast:176.9.XXX.XXX Mask:255.255.255.255
          inet6 addr: fe80::218:51ff:XXXX:XXXX/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4236 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4569 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:414559 (404.8 KiB)  TX bytes:501379 (489.6 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3406 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3406 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:319219 (311.7 KiB)  TX bytes:319219 (311.7 KiB)

решение1

Не совсем ответ, но некоторые наблюдения слишком длинные для комментария, которые могли бы быть полезны...

Во-первых, у вас естьbridge-utilsустановлен? Причина в том, чтоifupdownПакет, отвечающий за анализ /etc/network/interfacesи управление вашими сетевыми подключениями, представляет собой просто набор скриптов оболочки, вызывающих соответствующие инструменты более низкого уровня (например,iprouteи т. д.) , dhcp3-clientпоэтому, если у вас отсутствуют инструменты, которые отвечают за тяжелую работу по установке мостов, ifupdownв одиночку вы не сможете установить мост.

Во-вторых, вместо «перезапуска сети» вам следовало бы использовать интерактивные возможности, предлагаемые ifupdownв виде скриптов ifupи ifdownскриптов: чтобы проверить, может ли интерфейс моста запуститься, вы должны сделать следующее:

# ifup br0

и посмотрим, что произойдет. Пожалуйста, проконсультируйтесьсоответствующие страницы руководства.


В-третьих, пожалуйста, прекратите использовать

# /etc/init.d/<foo> <action>

и делай

# service <foo> <action>

вместо этого (доступно с Squeeze). Это имеет ряд преимуществ:

  • Он работает независимо от того, какая система инициализации установлена, то есть он работает даже с upstart, systemd, openrcи т. д., хотя каждая из этих систем предоставляет свои собственные инструменты для управления службами.

    Таким образом, использование serviceоблегчит ваш переход на другую систему инициализации в дальнейшем (Джесси переведет вашу систему на , как это systemdпроисходит по умолчанию), так как вам не придется быстро переучиваться, как управлять своими службами.

  • С sysvinit(тем, что вы сейчас используете) он должным образом очищает среду перед вызовом целевого сценария инициализации. Старый подход прямого вызова уязвим к влиянию состояния оболочки, вызвавшей сценарий. Скрипт serviceгарантирует, что вызываемый им сценарий инициализации видит среду с разумным $PATH, umask, рабочим каталогом и т. д.

Связанный контент