У меня есть хост виртуальной машины, который действует как маршрутизатор quagga. Он объявляет маршруты к своим размещенным виртуальным машинам (я не использую мосты, только маршрутизированные виртуальные машины)
Это хорошо работает, когда интерфейс tun настроен с / 30; например :
$ ip a
4: gentoo: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
link/ether 2a:c8:0a:ae:cc:c1 brd ff:ff:ff:ff:ff:ff
inet 10.42.1.5/30 brd 10.42.1.7 scope global gentoo
inet6 fe80::5c23:52ff:fec1:f2b7/128 scope link
valid_lft forever preferred_lft forever
inet6 fe80::28c8:aff:feae:ccc1/64 scope link
valid_lft forever preferred_lft forever
Но я хочу разместить несколько IP-адресов с публичной маршрутизацией на некоторых виртуальных машинах, не тратя 3 IP для сети, широковещательной передачи и IP-адреса хоста; например :
$ ip ro
94.23.110.211 dev gentoo scope link
Маршрут показан в команде quagga "show ip route"
arrakeen# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
I - ISIS, B - BGP, > - selected route, * - FIB route
O 0.0.0.0/0 [110/110] via 10.42.42.1, eth0, 00:01:24
K>* 0.0.0.0/0 via 10.42.42.1, eth0
O>* 10.0.0.0/24 [110/20] via 10.42.42.1, eth0, 00:01:25
C>* 10.0.42.21/32 is directly connected, eth0
O>* 10.42.0.0/24 [110/20] via 10.42.42.1, eth0, 00:01:25
O 10.42.1.4/30 [110/10] is directly connected, gentoo, 00:01:35
C>* 10.42.1.4/30 is directly connected, gentoo
K>* 10.42.1.6/32 via 10.42.1.5, gentoo
O 10.42.42.0/24 [110/10] is directly connected, eth0, 00:01:35
C>* 10.42.42.0/24 is directly connected, eth0
O>* 10.242.0.1/32 [110/30] via 10.42.42.1, eth0, 00:01:25
O>* 10.255.0.1/32 [110/30] via 10.42.42.1, eth0, 00:01:25
O>* 10.255.0.2/32 [110/20] via 10.42.42.1, eth0, 00:01:25
O 94.23.110.210/32 [110/10] is directly connected, eth0, 00:01:35
C>* 94.23.110.210/32 is directly connected, eth0
K>* 94.23.110.211/32 is directly connected, gentoo
C>* 127.0.0.0/8 is directly connected, lo
Но, как видите, это не выдумка OSPF
arrakeen# show ip ospf route
============ OSPF network routing table ============
N 10.0.0.0/24 [20] area: 0.0.0.0
via 10.42.42.1, eth0
N 10.42.0.0/24 [20] area: 0.0.0.0
via 10.42.42.1, eth0
N 10.42.1.4/30 [10] area: 0.0.0.0
directly attached to gentoo
N 10.42.1.36/30 [10] area: 0.0.0.0
N 10.42.42.0/24 [10] area: 0.0.0.0
directly attached to eth0
via 10.42.42.1, eth0
N 10.242.0.1/32 [30] area: 0.0.0.0
via 10.42.42.1, eth0
N 10.255.0.1/32 [30] area: 0.0.0.0
via 10.42.42.1, eth0
N 10.255.0.2/32 [20] area: 0.0.0.0
via 10.42.42.1, eth0
N 94.23.110.210/32 [10] area: 0.0.0.0
directly attached to eth0
N 94.23.110.218/32 [30] area: 0.0.0.0
via 10.42.42.1, eth0
============ OSPF router routing table =============
R 10.42.42.1 [10] area: 0.0.0.0, ASBR
via 10.42.42.1, eth0
============ OSPF external routing table ===========
N E1 0.0.0.0/0 [110] tag: 0
via 10.42.42.1, eth0
Есть ли способ заставить их войти в ospf?
Вот файл ospfd.conf:
! -*- ospf -*-
!
hostname arrakeen
!
interface eth0
!
router ospf
ospf router-id 10.42.42.21
redistribute static
redistribute connected
network 10.42.1.0/24 area 0
network 10.42.42.0/24 area 0
network 94.23.110.210/28 area 0
!
log file /var/log/quagga/ospfd.log
Спасибо,
redistribute kernel
сделал трюк