iproute2 и NetworkManager в Ubuntu15.04

Есть ли способ "правильно" настроить маршрут по умолчанию, используя iproute2 набор инструментов в системе Ubuntu?

Мой рабочий стол / сервер подключен через Ethernet к коммутатору; когда система загружается и сеть запускается, система "запутывается", поскольку наряду с шлюзом есть другие системы, подключенные к тому же коммутатору. В результате система Ubuntu 15.04 не может подключиться к внешней сети.

# ip route show
192.168.1.0/24 dev eth1 proto kernel scope link metric 100
...

Однажды я выпускаю

# ip route add default via 192.168.1.1 dev eth1

Я вижу кое-что о whoopsie в журнале сообщений и связи у меня есть сеть!

# ip r
default via 192.168.1.1 dev eth1 proto static metric 100
192.168.1.0/24 dev eth1 proto kernel scope link metric 100
...

Теперь, как мне сделать это постоянным в этой системе без, из-за отсутствия лучшего термина, жесткого кодирования его в /etc/network/ подкаталоги? С помощью NetworkManager и его инструмента nmcli, кажется, у меня нет возможности назначить соединение шлюзом, если я полностью не отключу DHCP! Это недостаток в NetworkManager или Ubuntu или iproute2?

я вижу /etc/iproute2 каталог; хотя на страницах руководства, похоже, нет указаний на то, как сделать изменения конфигурации постоянными. При поиске в сети StackExchange соответствующих сайтов вопросов и ответов я натолкнулся на различные предложения, которые на самом деле не определяют канонический способ достижения этой цели. Может быть, DHCP нужно отключить для этого в NetworkManager, я не уверен.

Systemd

Пока я добавляю строку в /etc/rc.local, Однако, это терпит неудачу во время загрузки, так как я предполагаю, что это выполняется прежде, чем сеть будет готова.

# systemctl status -l rc-local.service
...
...rc.local[1396]: RTNETLINK answers: Network is unreachable
...

Перезапуск службы после запуска системы устраняет ошибку. Идем вперед с systemd, AFAIK, идея состоит в том, чтобы прекратить использовать / поддерживать этот скрипт. Может быть, сервисы уровня пользователя должны быть использованы сейчас?

1 ответ

Вы можете сделать это, добавив ниже строку в /etc/network/interfaces

post-up route add default gw 192.168.1.1 

или же

post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

добавить это в нижней части определения интерфейса, как

auto eth0
iface eth0 inet static
        address 192.168.1.50
        netmask 255.255.255.0
        post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

или же

с помощью iproute2 Вы можете сделать следующие шаги: открыть файл /etc/iproute2/rt_tables и добавить 1 rt2 в конце это будет выглядеть так:

# reserved values
#
255 local
254 main
253 default
0   unspec
# local
#1  inr.ruhep
 1      rt2

и открыть /etc/network/interfaces файл и добавить

auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
post-up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.50 table rt2
post-up ip route add default via 192.168.1.1 dev eth0 table rt2
post-up ip rule add from 192.168.1.1 table rt2
post-up ip rule add to 192.168.1.1 table rt2

Если вы используете несколько интерфейсов, вы можете определить статическую маршрутизацию для всех интерфейсов. Надеюсь, это поможет.

Другие вопросы по тегам