[freebsd] setfib и 2-й провайдер

Eugene Grosbein eugen at grosbein.net
Mon Jul 24 14:27:36 EEST 2017


On 24.07.2017 18:09, Alexey Krylov wrote:
> Здравствуйте.
> 
> Я так понимаю, что тема эта избита, но никак не могу понять в чем проблема.
> Есть сервер с 2-мя интернетами со статическими адресами.
> 
> /etc/rc.conf
> # Internet 1
> ifconfig_re2="inet xx.xx.xx.xx netmask 255.255.255.252 fib 0"
> route_inet1="default xx.xx.xx.x1 -fib 0"
> 
> # Internet 2
> ifconfig_re1="yy.yy.yy.yy netmask 255.255.255.128 fib 1"
> route_westelecom="default yy.yy.yy.y1 -fib 1"
> 
> ifconfig_gif0_name="flm1"
> ifconfig_flm1="inet 172.16.0.25 172.16.0.26 netmask 255.255.255.252 tunnel yy.yy.yy.yy rr.rr.rr.rr fib 1"
> 
> =======================
> rr.rr.rr.rr-ip удаленного сервера
> 
> setfib 0 ping 172.16.0.25
> пакеты не ходят
> 
> setfib 1 ping 172.16.0.25
> PING 172.16.0.25 (172.16.0.25): 56 data bytes
> 64 bytes from 172.16.0.25: icmp_seq=0 ttl=255 time=0.014 ms
> 
> setfib 0 ping 172.16.0.26
> PING 172.16.0.26 (172.16.0.26): 56 data bytes
> ping: sendto: No route to host
> 
> setfib 1 ping 172.16.0.26
> PING 172.16.0.26 (172.16.0.26): 56 data bytes
> ping: sendto: No route to host
> а должно же работать...
> 
> setfib 1 netstat -rn
> Routing tables (fib: 1)
> 
> Internet:
> Destination        Gateway            Flags      Netif Expire
> default            yy.yy.yy.y1        UGS         re1
> 172.16.0.25        link#10            UHS         lo0
> 172.16.0.26        link#10            UH         flm1
> ...
> 
> netstat -rn
> Routing tables
> 
> Internet:
> Destination        Gateway            Flags      Netif Expire
> default            xx.xx.xx.x1        UGS         re2
> 172.16.0.26        link#10            UH         flm1
> а тут lo интерфейса нет почему-то

Первым делом, нужно понимать, что в FreeBSD не существует никакого
"наследования" fib-ов. Вланы не "наследуют" fib от родительского интерфейса
и по дефолту используют нулевой fib, если не переопределить.

Интерфейсные адреса не "наследуют" fib от интерфейса, на котором они назначены
и принадлежат нулевому fib, если не переопределить (fib интерфейса используется
при роутинге транзитных пакетов).

Инкапсулированные пакеты gif не "наследуют" fib оригинальных пакетов.
Поэтому делай лучше так (обрати внимание на tunnelfib):

ifconfig_re2="fib 0"
ifconfig_re2_alias0="inet xx.xx.xx.xx netmask 255.255.255.252 fib 0"
route_inet1="default xx.xx.xx.x1 -fib 0"

ifconfig_re1="fib 1"
ifconfig_re1_alias0="yy.yy.yy.yy netmask 255.255.255.128 fib 1"
route_westelecom="default yy.yy.yy.y1 -fib 1"

ifconfig_gif0_name="flm1"
ifconfig_flm1="fib 1 tunnelfib 1"
ifconfig_flm1_alias0="inet 172.16.0.25 172.16.0.26 netmask 255.255.255.252 tunnel yy.yy.yy.yy rr.rr.rr.rr fib 1"

А вообще, неплохо бы для начала объяснить исходную задачу,
чтобы можно было отвечать не формально, а по сути.



More information about the freebsd mailing list