изменить маршрут в соответствии с шлюзом от DHCP
Я настроил BGP на своем маршрутизаторе (с помощью Entware) для отправки некоторых маршрутов через VPN. Это сработало. Но теперь мне нужно было исключить из него одно устройство (оно должно идти не через VPN-туннель).
Моя конфигурация птицы
log syslog all;
log stderr all;
router id x.x.x.x;
function martians()
{
return net ~ [ 100.64.0.0/10+,
169.254.0.0/16+,
172.16.0.0/12+,
192.168.0.0/16+,
10.0.0.0/8+,
127.0.0.0/8+,
224.0.0.0/4+,
240.0.0.0/4+,
0.0.0.0/32-,
0.0.0.0/0{0,7}
];
}
protocol device {
scan time 15;
}
protocol kernel kernel_routes {
scan time 60;
import none;
export all;
kernel table 1000; # kernel routing table number
}
protocol static static_routes {
import all;
#route 192.168.2.62/32 via "eth3";
}
protocol bgp antifilter {
import filter {
if martians() then reject;
gw = 1.0.0.1; # override route nexthop
accept;
};
export none;
local as 64999; # local default as-number
neighbor y.y.y.y as 65432;
multihop;
hold time 240;
}
таблица 1000 создается при появлении VPN-соединения
ip rule add iif br0 table 1000
Для SBR я попробовал выполнить следующие команды:
ip rule add from 192.168.2.62 table 120
ip route add default dev eth3 table 120
Но результат: «Сеть недоступна».
Теперь я попробовал это
ip rule add from 192.168.2.62 table 120
ip route add default via x.x.x.x dev eth3 table 120
И это сработало. Но я не знаю шлюза от оператора связи не во время выполнения. Это происходит по DHCP. Как изменить маршрут по умолчанию в таблице 120 в соответствии с новой информацией от DHCP? Или как исключить это в конфиге птицы
1 ответ
Вы можете просто запроситьmain
таблица для хостов, которым нужен маршрут DHCP по умолчанию:
ip rule add pref 100 from 192.168.2.62 table main
ip rule add pref 200 iif br0 table 1000