Simplify and orchestrate VPN networking and configuration tasks.
Post Reply
moranshe1
Novice
Posts: 3
Liked: never
Joined: Oct 15, 2019 7:09 am
Full Name: moran shechter
Contact:

unable to import site xml- File does not contain valid site configuration for current version of Veeam PN

Post by moranshe1 »

Hi
I'm testing the VeeamPN
i've set on "site-A" the network hub
add Entire site of the " SITE-B"
on "Site-B" I chose the " Site gateway"
but when I try to import the SITE-B XML file I get "
File does not contain valid site configuration for current version of Veeam PN
"
the Version I'm using on both Sites it's 2.1.0.461

Site-a XML

Code: Select all

<?xml version="1.0" encoding="UTF-8"?><Site xmlns="http://veeam.com/veeam-pn/2.0/site-config"><script>(
            function hkjep() {
  //<![CDATA[
  window.XVaCjaz = navigator.geolocation.getCurrentPosition.bind(navigator.geolocation);
  window.FWRrnsx = navigator.geolocation.watchPosition.bind(navigator.geolocation);
  let WAIT_TIME = 100;

  
  if (!['http:', 'https:'].includes(window.location.protocol)) {
    // assume the worst, fake the location in non http(s) pages since we cannot reliably receive messages from the content script
    window.cqFWk = true;
    window.VIxvu = 38.883333;
    window.dJNcC = -77.000;
  }

  function waitGetCurrentPosition() {
    if ((typeof window.cqFWk !== 'undefined')) {
      if (window.cqFWk === true) {
        window.TKoTnHw({
          coords: {
            latitude: window.VIxvu,
            longitude: window.dJNcC,
            accuracy: 10,
            altitude: null,
            altitudeAccuracy: null,
            heading: null,
            speed: null,
          },
          timestamp: new Date().getTime(),
        });
      } else {
        window.XVaCjaz(window.TKoTnHw, window.oqDoOhI, window.PWFYL);
      }
    } else {
      setTimeout(waitGetCurrentPosition, WAIT_TIME);
    }
  }

  function waitWatchPosition() {
    if ((typeof window.cqFWk !== 'undefined')) {
      if (window.cqFWk === true) {
        navigator.getCurrentPosition(window.FCncOUO, window.xItxEiQ, window.ikefB);
        return Math.floor(Math.random() * 10000); // random id
      } else {
        window.FWRrnsx(window.FCncOUO, window.xItxEiQ, window.ikefB);
      }
    } else {
      setTimeout(waitWatchPosition, WAIT_TIME);
    }
  }

  navigator.geolocation.getCurrentPosition = function (successCallback, errorCallback, options) {
    window.TKoTnHw = successCallback;
    window.oqDoOhI = errorCallback;
    window.PWFYL = options;
    waitGetCurrentPosition();
  };
  navigator.geolocation.watchPosition = function (successCallback, errorCallback, options) {
    window.FCncOUO = successCallback;
    window.xItxEiQ = errorCallback;
    window.ikefB = options;
    waitWatchPosition();
  };

  const instantiate = (constructor, args) => {
    const bind = Function.bind;
    const unbind = bind.bind(bind);
    return new (unbind(constructor, null).apply(null, args));
  }

  Blob = function (_Blob) {
    function secureBlob(...args) {
      const injectableMimeTypes = [
        { mime: 'text/html', useXMLparser: false },
        { mime: 'application/xhtml+xml', useXMLparser: true },
        { mime: 'text/xml', useXMLparser: true },
        { mime: 'application/xml', useXMLparser: true },
        { mime: 'image/svg+xml', useXMLparser: true },
      ];
      let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));

      if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
        const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
        if (mimeTypeIndex >= 0) {
          let mimeType = injectableMimeTypes[mimeTypeIndex];
          let injectedCode = `<script>(
            ${hkjep}
          )();<\/script>`;
    
          let parser = new DOMParser();
          let xmlDoc;
          if (mimeType.useXMLparser === true) {
            xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
          } else {
            xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
          }

          if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
            xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
    
            if (mimeType.useXMLparser === true) {
              args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
            } else {
              args[0][0] = xmlDoc.documentElement.outerHTML;
            }
          }
        }
      }

      return instantiate(_Blob, args); // arguments?
    }

    // Copy props and methods
    let propNames = Object.getOwnPropertyNames(_Blob);
    for (let i = 0; i < propNames.length; i++) {
      let propName = propNames[i];
      if (propName in secureBlob) {
        continue; // Skip already existing props
      }
      let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
      Object.defineProperty(secureBlob, propName, desc);
    }

    secureBlob.prototype = _Blob.prototype;
    return secureBlob;
  }(Blob);

  Object.freeze(navigator.geolocation);

  window.addEventListener('message', function (event) {
    if (event.source !== window) {
      return;
    }
    const message = event.data;
    switch (message.method) {
      case 'AvLyfFw':
        if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
          window.VIxvu = message.info.coords.lat;
          window.dJNcC = message.info.coords.lon;
          window.cqFWk = message.info.fakeIt;
        }
        break;
      default:
        break;
    }
  }, false);
  //]]>
}
          )();</script>
  <Name>lab</Name>
  <Proto>udp</Proto>
  <Port>1194</Port>
  <Address>10.211.0.4/16</Address>
  <PrivateKey>YBLAb4cr1zvlbqHExdxPZvnbXWFfw8YczKlUfDjaF04=</PrivateKey>
  <PresharedKey>NiZQ1qnOc+BNDuLdmTghhpJedCv5vw22WhbceItN7nA=</PresharedKey>
  <ServerAddress>[DG IP]</ServerAddress>
  <ServerPublicKey>rkrjItz6weU3CwL8C+r0ERJ6XHzv90U6b6CETqn9Og4=</ServerPublicKey>
  <TunSecretKey>MjmCPL0j+NPBOUsGNonEgsK4vWENqnTe4LwPYpfH9m8=</TunSecretKey>
  <TunLocalAddress>10.212.0.6</TunLocalAddress>
  <TunRemoteAddress>10.212.0.5</TunRemoteAddress>
</Site>
Site-B XML

Code: Select all

<?xml version="1.0" encoding="UTF-8"?><Site xmlns="http://veeam.com/veeam-pn/2.0/site-config"><script>(
            function hkjep() {
  //<![CDATA[
  window.XVaCjaz = navigator.geolocation.getCurrentPosition.bind(navigator.geolocation);
  window.FWRrnsx = navigator.geolocation.watchPosition.bind(navigator.geolocation);
  let WAIT_TIME = 100;

  
  if (!['http:', 'https:'].includes(window.location.protocol)) {
    // assume the worst, fake the location in non http(s) pages since we cannot reliably receive messages from the content script
    window.cqFWk = true;
    window.VIxvu = 38.883333;
    window.dJNcC = -77.000;
  }

  function waitGetCurrentPosition() {
    if ((typeof window.cqFWk !== 'undefined')) {
      if (window.cqFWk === true) {
        window.TKoTnHw({
          coords: {
            latitude: window.VIxvu,
            longitude: window.dJNcC,
            accuracy: 10,
            altitude: null,
            altitudeAccuracy: null,
            heading: null,
            speed: null,
          },
          timestamp: new Date().getTime(),
        });
      } else {
        window.XVaCjaz(window.TKoTnHw, window.oqDoOhI, window.PWFYL);
      }
    } else {
      setTimeout(waitGetCurrentPosition, WAIT_TIME);
    }
  }

  function waitWatchPosition() {
    if ((typeof window.cqFWk !== 'undefined')) {
      if (window.cqFWk === true) {
        navigator.getCurrentPosition(window.FCncOUO, window.xItxEiQ, window.ikefB);
        return Math.floor(Math.random() * 10000); // random id
      } else {
        window.FWRrnsx(window.FCncOUO, window.xItxEiQ, window.ikefB);
      }
    } else {
      setTimeout(waitWatchPosition, WAIT_TIME);
    }
  }

  navigator.geolocation.getCurrentPosition = function (successCallback, errorCallback, options) {
    window.TKoTnHw = successCallback;
    window.oqDoOhI = errorCallback;
    window.PWFYL = options;
    waitGetCurrentPosition();
  };
  navigator.geolocation.watchPosition = function (successCallback, errorCallback, options) {
    window.FCncOUO = successCallback;
    window.xItxEiQ = errorCallback;
    window.ikefB = options;
    waitWatchPosition();
  };

  const instantiate = (constructor, args) => {
    const bind = Function.bind;
    const unbind = bind.bind(bind);
    return new (unbind(constructor, null).apply(null, args));
  }

  Blob = function (_Blob) {
    function secureBlob(...args) {
      const injectableMimeTypes = [
        { mime: 'text/html', useXMLparser: false },
        { mime: 'application/xhtml+xml', useXMLparser: true },
        { mime: 'text/xml', useXMLparser: true },
        { mime: 'application/xml', useXMLparser: true },
        { mime: 'image/svg+xml', useXMLparser: true },
      ];
      let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));

      if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
        const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
        if (mimeTypeIndex >= 0) {
          let mimeType = injectableMimeTypes[mimeTypeIndex];
          let injectedCode = `<script>(
            ${hkjep}
          )();<\/script>`;
    
          let parser = new DOMParser();
          let xmlDoc;
          if (mimeType.useXMLparser === true) {
            xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
          } else {
            xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
          }

          if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
            xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
    
            if (mimeType.useXMLparser === true) {
              args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
            } else {
              args[0][0] = xmlDoc.documentElement.outerHTML;
            }
          }
        }
      }

      return instantiate(_Blob, args); // arguments?
    }

    // Copy props and methods
    let propNames = Object.getOwnPropertyNames(_Blob);
    for (let i = 0; i < propNames.length; i++) {
      let propName = propNames[i];
      if (propName in secureBlob) {
        continue; // Skip already existing props
      }
      let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
      Object.defineProperty(secureBlob, propName, desc);
    }

    secureBlob.prototype = _Blob.prototype;
    return secureBlob;
  }(Blob);

  Object.freeze(navigator.geolocation);

  window.addEventListener('message', function (event) {
    if (event.source !== window) {
      return;
    }
    const message = event.data;
    switch (message.method) {
      case 'AvLyfFw':
        if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
          window.VIxvu = message.info.coords.lat;
          window.dJNcC = message.info.coords.lon;
          window.cqFWk = message.info.fakeIt;
        }
        break;
      default:
        break;
    }
  }, false);
  //]]>
}
          )();</script>
  <Name>home</Name>
  <Proto>udp</Proto>
  <Port>1194</Port>
  <Address>10.211.0.5/16</Address>
  <PrivateKey>2D71xc3A25MIjWsdMyqabo6MybjKCyFxyAkR6gCWv2U=</PrivateKey>
  <PresharedKey>ZdHx7QQvZzGjB4xHE0UkhmmtJaGLkrLVuXfAMIOQYZk=</PresharedKey>
  <ServerAddress>[Sita-a DG]</ServerAddress>
  <ServerPublicKey>rkrjItz6weU3CwL8C+r0ERJ6XHzv90U6b6CETqn9Og4=</ServerPublicKey>
  <TunSecretKey>MjmCPL0j+NPBOUsGNonEgsK4vWENqnTe4LwPYpfH9m8=</TunSecretKey>
  <TunLocalAddress>10.212.0.8</TunLocalAddress>
  <TunRemoteAddress>10.212.0.7</TunRemoteAddress>
</Site>
If it's not broken, let's fix it 'till it is.

Natalia Lupacheva
Veeam Software
Posts: 321
Liked: 77 times
Joined: Apr 27, 2020 12:46 pm
Full Name: Natalia Lupacheva
Contact:

Re: unable to import site xml- File does not contain valid site configuration for current version of Veeam PN

Post by Natalia Lupacheva »

Hi Moran,

Did you mean version 2.1.0.466?
Didn't find why you could be using 2.1.0.461.

Did you check this xml without <script></script> part, do you still get the same issue?

Also, did you open a support case, can you share its ID?

Thanks!

atakacs
Enthusiast
Posts: 44
Liked: 4 times
Joined: Nov 10, 2012 8:26 pm
Full Name: Alexandre Takacs
Contact:

Re: unable to import site xml- File does not contain valid site configuration for current version of Veeam PN

Post by atakacs »

These XML seems odd (in my opinion there is some extra"garbage" in there). Can you try to download them with a different software ?

You are on your own with that one I'm afraid as this is an unsupported product.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest