pfSense CARP és pppoe tűzfal probléma

Fórumok

Sziasztok,

psense 2.4.4-p3-mal csináltam egy két nodeos tűzfalat, a pppoe-s internet kapcsolat tűzfalszabályaival van problémám, ami miatt nem is lehet használni jelenleg a tűzfalat tűzfalnak :(

a konfig:

a WAN interface mindkét nodeon sima ipv4 static típusú, 10.0.0.1 és 10.0.0.2 lett nekik beállítva, kapott CARP-ot 10.0.0.3 címmel. Ezután csináltam egy linkelt pppoe interfacet, ami a wan CARP-hoz van linkelve. Ez csodálatosan működik, master nodeon csatlakozik, kifelé forgalom működik, natol, ha a master leszakad/leáll akkor a backup node becsatlakozik a netre, kifelé kapcsolatok mennek tovább, minden szép és minden jó. 

Csakhogy. A WAN interface-n lévő tűzfalszabályok valahogy nem akarnak működni. Semmilyen bejövő portforwardolt kapcsolat nem megy, nyitott portok nem nyitottak kívülről nézve stb. Ha a PPPOE interfacen csinálok szabályokat akkor ott a portnyitások működnek, de működő portforwardot nem sikerült csinálni sehogyan sem. Próbaképpen a pppoe interfacen kinyitottam a nagyvilágnak teljesen, ekkor a tűzfal kívülről nézve egy LAN szerű képet mutatott, vagyis a standard 8443-as port volt nyitva (management gui), és 2022-es ssh port. Ami még érdekes, hogy miközben látszólag a wan interfacen lévő szabályok nem érvényesültek, egy 1:1 NAT-olt host elérése folyamatosan működött (dmz jellegű konfig, egy másik fix ip-n elérhető szolgáltatás van így beállítva)
 

a wan interfacen kikapcsoltam a privát hálózatok tiltását, hátha az okoz gondot, aztán a bogus networkoket is hátha az kavar be. Egyik sem hozott javulást.  wan address destination-re szóló szabályokat módosítottam PPPOE address-re (ez az interface kapja meg a fix ip-t becsatlakozáskor), próbáltam destination néküli szabályokat, egyik sem vezetett eredményre.

Mit ronthatok el? :)
 

Hozzászólások

Csak pár kérdés - hátha a válaszok haladást jelentenek a megoldás felé vezető úton...

Ha az internet kapcsolat pppoe alapokon húzódik ki, akkor
- miért van egy 10.x.x.x IP cím felhúzva a WAN interface-ra?
- egyáltalán: mi a WAN interface? Csak mert a pppoe esetén van egy fizikai interface, amelyen a pppoe csomagjai közlekednek, de erre az interface-re nem húzunk IP-t. Cserépe amikor a pppoe kapcsolat felépül, akkor lesz egy ppp interface, a WAN forgalom ezen bonyolódik - de az meg a túloldaltól kap IP-t, nem jellemző hogy kézből állítjuk be.
Tehát igazából már a WAN kapcsolat sem tisztult le...

CARP. Szép állat. A probléma összetett...
- mit lép a szolgáltató arra, hogy mindkét tűzfal ugyanazzal az usr/pwd párossal kihúzza a pppoe kapcsolatot? Engedi? IP címek?
- a CARP működéséből adódóan van egy interface-hez rendelt célszerűen fix IP és egy ugyanezen interface-hez rendelt CARP IP, amely mindig az aktív tagon van felhúzva. Ez esetedben azt jelentené, hogy a pppoe interface-n az aktív tagon két IP is lenne? A nem CARP IP-knek is illik különböznie a két gépen... Fog menni?

A WAN interface az a NIC ami össze van kötve a PPPOE modemmel. Azért van ip címe, mert csak ebben az esetben lehet CARP IP címet csinálni hozzá.  Hm. Lehet, hogy rátapintottál a probléma gyökerére, és a WAN interface nem megfelelő ebben a felállásban.

Négy komponensből tevődik össze a dolog:

  1. A fizikai összeköttetés a PPPOE modemmel - ez nálam most a WAN interface
  2. CARP konfig a fizikai NIC-en (egy-egy fix ip a két nodeon + CARP IP)
  3. Egy PPP kapcsolat ami a CARP IP-re linkelt
  4. Egy OPT interface ami a PPP kapcsolatot használja (ez kapja meg a fix ip címet az ISP-től amikor a PPPOE kapcsolat felépül)

Na most, hogy ezt így sorba vettem, lehet, hogy megvan a probléma... Nekem valójában az OPT interface a WAN kapcsolatom csak nem ez van beállítva a pfSense-nek hanem a fizikai kapcsolatot biztosító NIC...  Erre teszek egy próbát, csak találni kell egy karbantartási ablakot...

CARP:

Az a rész működik, hogy egyidőben csak az egyik gép van becsatlakozva, ehhez kellett a PPPOE-t a CARP IP-hez linkelni, master becsatlakozik PPPOE-n ha lekapcsolom a mastert akkor a backup aktiválja magát és becsatlakozik ő, a kifelé forgalom működik is. Pl. egy ilyen node váltáskor még az ssh kapcsolatok is életben maradtak (megakadt amikor a master leállt, és néhány másodperc múlva felépült a kapcsolat a backupon, az ssh újra válaszolt és ment tovább a session).

Desktop: Windows10 | Server: CentOS

OpenBSD alatt ha pppoe interface bármilyen okból változik, akkor PF-et mindig erősen javasolt újra tölteni.
Elég egy pfctl -f ...., state-k maradhatnak.

PF az interface IP címeket nem kezeli dinamikusan, amikor betöltőd a rule-okat, akkor nézi csak meg adott interface-t, később már nem.
Ha pl. boot-kor pppoe-n lassabban kap IP-t, közben pedig PF-et már betöltötte, akkor hasonlóakat produkál mint amit írtál.

CARP-hoz van ifstated, ezzel tudsz scripteket futtatni ha CARP állapot valahol változik, próbáld meg azt hogy ha adott gép master állapotba kerül, akkor pár másodperccel később húzza újra PF-et. (azért kell pár másodperc hogy biztosan legyen már IP címe pppoe-nak!)

Sziasztok!

Köszönöm a segítséget, sikerült a beállítás @Zs kérdései vezettek a megoldáshoz, ami a következő:

  1. Azzal a NIC-kel ami fizikailag összekötetésben van a modemmel kell egy IPv4 interface valamileyn fix ip címmel ami még véletlenül se a WAN interface legyen!
  2. CARP IP erre a modem interfacere
  3. PPPOE kapcsolat (interfaces / PPPs fülön) a CARP IP-re linkelve
  4. WAN kapcsolat beállítása a CARP IP-s PPPOE interfacet használva
  5. Profit

Desktop: Windows10 | Server: CentOS