Esperando que este seja o fórum correto.
Eu tenho um servidor Linux (Centos 7) com Quagga (para BGP) e DNSMASQ (para DHCP) instalado. Estamos executando serviços DHCP através do BGP para redundância.
Atualmente, o cliente está entrando em contato com o servidor DHCP por meio do endereço IP do BGP (10.10.12.12) e enviando um pacote DISCOVER. O servidor DHCP o vê e faz uma OFERTA, no entanto a OFERTA não está voltando para o cliente porque o servidor DHCP está enviando de volta com um endereço de origem do IP interno do servidor DHCP (172.18.25.10 - Você pode ver a prova de isso abaixo no segundo pacote tcpdump) e não no endereço IP do BGP (10.10.12.12). 172.18.25.10 está sendo bloqueado pelo nosso firewall (e não queremos abri-lo).
Como posso definir o endereço de origem retornando ao cliente como o endereço BGP em vez do IP interno? Eu tenho brincado com configurações de roteamento IP, mas não consigo acertar. Alguma idéia?
Rotas
$ ip r
default via 172.18.25.1 dev ens256 proto static metric 100
172.18.25.0/24 dev ens256 proto kernel scope link src 172.18.25.10 metric 100
Interfaces
$ ifconfig
ens256: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.25.10 netmask 255.255.255.0 broadcast 172.18.25.255
(truncated for brevity...)
lo:10: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 10.10.12.12 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)
Configuração da interface virtual para lo: 10
DEVICE=lo:10
IPADDR=10.10.12.12
NETMASK=255.255.255.255
ONBOOT=yes
NAME=lo10
tcpdump do servidor DHCP
17:44:11.833026 IP (tos 0x0, ttl 62, id 4923, offset 0, flags [none], proto UDP (17), length 388)
192.168.69.1.67 > 10.10.12.12.67: [udp sum ok] BOOTP/DHCP, Request from a8:60:b6:0c:49:cd, length 360, hops 1, xid 0xad97213f, secs 8, Flags [none] (0x0000)
Gateway-IP 192.168.69.1
Client-Ethernet-Address a8:60:b6:0c:49:cd
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Parameter-Request Option 55, length 10:
Subnet-Mask, Classless-Static-Route, Default-Gateway, Domain-Name-Server
Domain-Name, Option 119, Option 252, LDAP
Netbios-Name-Server, Netbios-Node
MSZ Option 57, length 2: 1500
Client-ID Option 61, length 7: ether a8:60:b6:0c:49:cd
Lease-Time Option 51, length 4: 7776000
Hostname Option 12, length 9: "tests-MBP"
Agent-Information Option 82, length 57:
Circuit-ID SubOption 1, length 42: ToR-vc.corp.fake01:ge-0/0/20.0:dhcp-test-69
Remote-ID SubOption 2, length 11: ge-0/0/20.0
17:44:11.833196 IP (tos 0xc0, ttl 64, id 4315, offset 0, flags [none], proto UDP (17), length 394)
172.18.25.10.67 > 192.168.69.1.67: [bad udp cksum 0xcc4d -> 0xe7d1!] BOOTP/DHCP, Reply, length 366, hops 1, xid 0xad97213f, secs 8, Flags [none] (0x0000)
Your-IP 192.168.69.230
Server-IP 172.18.25.10
Gateway-IP 192.168.69.1
Client-Ethernet-Address a8:60:b6:0c:49:cd
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Offer
Server-ID Option 54, length 4: 172.18.25.10
Lease-Time Option 51, length 4: 300
RN Option 58, length 4: 150
RB Option 59, length 4: 262
Subnet-Mask Option 1, length 4: 255.255.255.0
BR Option 28, length 4: 192.168.69.255
Default-Gateway Option 3, length 4: 192.168.69.1
Domain-Name-Server Option 6, length 4: 172.18.25.10
Domain-Name Option 15, length 13: "example.com"
Agent-Information Option 82, length 57:
Circuit-ID SubOption 1, length 42: ToR-vc.corp.fake01:ge-0/0/20.0:dhcp-test-69
Remote-ID SubOption 2, length 11: ge-0/0/20.0