Como les habré comentado a algunos, estamos en plena migración de sistema de correos (Exchange 2007 a 2013), y como toda migración siempre hay cosas nuevas que probar y aprender 😀
Hoy me toco migrar un Receive Connector que usamos de SMTP Relay (uno en el ambiente viejo) y configurarlo balanceado entre 4 servidores (todos en el ambiente nuevo) Para esto tenía que copiar a mano unos 130 registros. 130 registros. A 4 servidores. NO.
Primero busque una manera rápida de exportar la lista de ips que estaban habilitadas.
SERVIDORBASE es el nombre del server que tiene el Receive Connector del que vamos a copiar la lista de ips.
RC-A-COPIAR es el nombre del Receive Connector del que vamos a copiar esta lista.
$ips=(Get-ReceiveConnector "SERVIDORBASE\RC-A-COPIAR").remoteipranges |
Perfecto! Con eso tenemos una array de ips (y rangos de ips, si es que usamos) completamente importables. (Cabe aclarar que lo probé tanto desde un Receive Connector armado en 2007 como en uno armado en 2013. No sé si habrá algún cambio de estructura en cuanto a tipo de dato, pero exportándolo así quedan igualitos)
El paso siguiente fue un poquito más largo. Tenía que crear los RC, configurarlos para hacer Relay y agregarles las ips que ya había exportado.
SERVIDORTARGET es el nombre del server en donde vamos a configurar el RC nuevo.
New-ReceiveConnector -Server SERVIDORTARGET -name "Relay SERVIDORTARGET" -Usage custom -AuthMechanism externalauthoritative -PermissionGroups ExchangeServers -Bindings 0.0.0.0:25 -TransportRole FrontEndTransport -RemoteIPRanges $ips |
Pero momento, justo antes de empezar a crear los RC nuevos, se me ocurrió revisar todos los RC que ya existían… Menos mal, porque de 4 servidores, dos ya tenían creados un RC destinado a Relay.
(Asumo que todos son ordenados y que nombran adecuadamente los RC. Si no es así, ordénenlos, no sean giles)
Get-ReceiveConnector | where {$_.name -like "*relay*"} |

Bien, vamos por partes entonces. Primero usé el código que puse antes (Crear RC nuevos) y armé los dos que no existen. Listo? Bueno, ahora a modificar los que me faltan.
(En mi caso, quería modificar todos los RC cuyo nombre empezara con Relay. Si tuviera que modificar solo un RC lo especificaría en la primer parte del código que pongo más abajo)
Get-ReceiveConnector | where {$_.name -like "relay*"} | Set-ReceiveConnector -RemoteIPRanges $ips |
Listo!
Si necesitan verificar que haya quedado bien se pueden ver los datos de cada RC de manera sencilla, como test rápido vamos a revisar que tengamos la misma cantidad de ips habilitadas en todos los RC cuyo nombre comience con Relay.
Get-ReceiveConnector | where {$_.name -like "relay*"} | select name, @{Expression={$_.remoteipranges.count};Label="cantidad"} |

Con esto termina el post de hoy. Hasta la próxima!